diff options
author | Ismael Juma <ismael@juma.me.uk> | 2011-12-03 00:24:13 +0000 |
---|---|---|
committer | Ismael Juma <ismael@juma.me.uk> | 2011-12-03 01:50:08 +0000 |
commit | 771f5ca5a11541866b57481ce0068fe8511c320d (patch) | |
tree | a1f1f5dfae400ac901b0d7fd21ba0b05320d2063 /src/library | |
parent | 2e14c128e725dfd8eb9ea3568f608c15a1d83658 (diff) | |
download | scala-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.scala | 12 |
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 |