summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorIsmael Juma <ismael@juma.me.uk>2011-12-03 00:24:13 +0000
committerIsmael Juma <ismael@juma.me.uk>2011-12-03 01:50:08 +0000
commit771f5ca5a11541866b57481ce0068fe8511c320d (patch)
treea1f1f5dfae400ac901b0d7fd21ba0b05320d2063 /src/library
parent2e14c128e725dfd8eb9ea3568f608c15a1d83658 (diff)
downloadscala-771f5ca5a11541866b57481ce0068fe8511c320d.tar.gz
scala-771f5ca5a11541866b57481ce0068fe8511c320d.tar.bz2
scala-771f5ca5a11541866b57481ce0068fe8511c320d.zip
Delegate to Java's implementation of signum for Long and Int.
The Java implementation is faster as it doesn't have branches. java.lang.Math includes implementations of signum for Double and Float, but I didn't change the ones in scala.math because there is a difference on how negative zero is handled.
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/math/package.scala12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/library/scala/math/package.scala b/src/library/scala/math/package.scala
index 8948722340..0417461f85 100644
--- a/src/library/scala/math/package.scala
+++ b/src/library/scala/math/package.scala
@@ -127,15 +127,9 @@ package object math {
else if (x > 0) 1.0f
else x // NaN
- def signum(x: Long): Long =
- if (x == 0l) 0l
- else if (x < 0) -1l
- else 1l
-
- def signum(x: Int): Int =
- if (x == 0) 0
- else if (x < 0) -1
- else 1
+ def signum(x: Long): Long = java.lang.Long.signum(x)
+
+ def signum(x: Int): Int = java.lang.Integer.signum(x)
// -----------------------------------------------------------------------
// root functions