Float.st
changeset 5411 c396c6640868
parent 5357 39860dd8b0f5
child 5436 f67d84b60f38
--- a/Float.st	Fri Jun 23 20:57:24 2000 +0200
+++ b/Float.st	Fri Jun 23 21:03:30 2000 +0200
@@ -10,6 +10,8 @@
  hereby transferred.
 "
 
+"{ Package: 'stx:libbasic' }"
+
 LimitedPrecisionReal variableByteSubclass:#Float
 	instanceVariableNames:''
 	classVariableNames:'DefaultPrintFormat'
@@ -675,6 +677,31 @@
     ^ aNumber quotientFromFloat:self
 !
 
+abs
+    "return the absolute value of the receiver
+     reimplemented here for speed"
+
+%{  /* NOCONTEXT */
+
+    OBJ newFloat;
+    double val =__floatVal(self);
+    double rslt;
+
+    if (val < 0.0) {
+        rslt = -val;
+        __qMKFLOAT(newFloat, rslt);
+        RETURN ( newFloat );
+    }
+    RETURN (self);
+%}.
+    ^ super abs
+
+    "
+     3.0 abs
+     -3.0 abs
+    "
+!
+
 negated
     "return myself negated"
 
@@ -685,7 +712,8 @@
 
     __qMKFLOAT(newFloat, rslt);
     RETURN ( newFloat );
-%}
+%}.
+    ^ 0.0 - self
 !
 
 uncheckedDivide:aNumber
@@ -1734,7 +1762,8 @@
 %{  /* NOCONTEXT */
 
     RETURN ( (__floatVal(self) < 0.0) ? true : false );
-%}
+%}.
+    ^ self < 0.0
 !
 
 numberOfBits
@@ -2046,6 +2075,6 @@
 !Float class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Float.st,v 1.108 2000-04-04 10:21:07 ps Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Float.st,v 1.109 2000-06-23 19:02:38 cg Exp $'
 ! !
 Float initialize!