--- 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!