summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoffrey Washburn <geoffrey.washburn@epfl.ch>2008-04-03 13:50:12 +0000
committerGeoffrey Washburn <geoffrey.washburn@epfl.ch>2008-04-03 13:50:12 +0000
commit70ac4996ae77082888f32d0a2b608a9e1d1bd5d7 (patch)
tree8a9ef66333bd389d6a4faabb6d424777c6bc83aa
parent1258a12712ca48907e70c4e870571eff30f4bfbb (diff)
downloadscala-70ac4996ae77082888f32d0a2b608a9e1d1bd5d7.tar.gz
scala-70ac4996ae77082888f32d0a2b608a9e1d1bd5d7.tar.bz2
scala-70ac4996ae77082888f32d0a2b608a9e1d1bd5d7.zip
Added signum functions.
to be about as efficient as calling the ones that are provided by Java 1.5.
-rw-r--r--src/library/scala/Math.scala15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/library/scala/Math.scala b/src/library/scala/Math.scala
index c60f49cc8c..da1e3bd367 100644
--- a/src/library/scala/Math.scala
+++ b/src/library/scala/Math.scala
@@ -175,14 +175,25 @@ object Math {
def min(x: Float, y: Float): Float = java.lang.Math.min(x, y)
def min(x: Double, y: Double): Double = java.lang.Math.min(x, y)
+ def signum(x: Double): Double = x match { case 0 => 0
+ case _ if x < 0 => -1.0
+ case _ if x > 0 => 1.0 }
+ def signum(x: Float): Float = x match { case 0f => 0f
+ case _ if x < 0f => -1.0f
+ case _ if x > 0f => 1.0f }
+ def signum(x: Long): Long = x match { case 0l => 0l
+ case _ if x < 0l => -1l
+ case _ if x > 0l => 1l }
+ def signum(x: Int): Int = x match { case 0 => 0
+ case _ if x < 0 => -1
+ case _ if x > 0 => 1}
+
// from Java 1.5
// def log10(x: Double): Double = java.lang.Math.log10(x)
// def cbrt(x: Double): Double = java.lang.Math.cbrt(x)
// def ulp(x: Double): Double = java.lang.Math.ulp(x)
// def ulp(x: Float): Float = java.lang.Math.ulp(x)
-// def signum(x: Double): Double = java.lang.Math.signum(x)
-// def signum(x: Float): Float = java.lang.Math.signum(x)
// def sinh(x: Double): Double = java.lang.Math.sinh(x)
// def cosh(x: Double): Double = java.lang.Math.cosh(x)
// def tanh(x: Double):Double = java.lang.Math.tanh(x)