--- a/QuadFloat.st Fri Jun 07 03:18:14 2019 +0200
+++ b/QuadFloat.st Fri Jun 07 03:25:27 2019 +0200
@@ -2100,6 +2100,29 @@
"Created: / 07-06-2019 / 02:44:39 / Claus Gittinger"
! !
+!QuadFloat class methodsFor:'queries'!
+
+numBitsInMantissa
+ "answer the number of bits in the mantissa
+ the hidden bit is not counted here:
+
+ This is an 128bit quadfloat,
+ where 112 bits are available in the mantissa:
+ seeeeeee eeeeeeee mmmmmmmm mmmmmmmm mmmmmmmm mmmmmmmm mmmmmmmm mmmmmmmm mmmmmmmm mmmmmmmm mmmmmmmm mmmmmmmm mmmmmmmm mmmmmmmm mmmmmmmm mmmmmmmm...
+ "
+
+ ^ 112
+
+ "
+ 1.0 class numBitsInMantissa
+ 1.0 asShortFloat class numBitsInMantissa
+ 1.0 asLongFloat class numBitsInMantissa
+ 1.0 asQuadFloat class numBitsInMantissa
+ "
+
+ "Created: / 07-06-2019 / 03:24:20 / Claus Gittinger"
+! !
+
!QuadFloat methodsFor:'arithmetic'!
* aNumber
@@ -2162,8 +2185,8 @@
self errorUnsupported
!
-sumFromQuadFloat:aQuadFloat
- "sent when aQuadFloat does not know how to add the receiver, self"
+equalFromQuadFloat:aQuadFloat
+ "sent when aQuadFloat does not know how to compare agaist the receiver, self"
%{
#ifdef SUPPORT_QUADFLOAT
@@ -2172,14 +2195,31 @@
myVal = __quadFloatVal(self);
argVal = __quadFloatVal(aQuadFloat);
- f128M_add( &myVal, &argVal, &result );
- __qMKQFLOAT(newFloat, result);
+ return (f128M_eq( &argVal, &result ) ? true : false);
RETURN ( newFloat );
#endif // SUPPORT_QUADFLOAT
%}.
self errorUnsupported
!
+lessFromQuadFloat:aQuadFloat
+ "sent when aQuadFloat does not know how to compare agaist the receiver, self"
+
+%{
+#ifdef SUPPORT_QUADFLOAT
+ OBJ newFloat;
+ float128_t result, myVal, argVal;
+
+ myVal = __quadFloatVal(self);
+ argVal = __quadFloatVal(aQuadFloat);
+ return (f128M_lt( &argVal, &result ) ? true : false);
+ RETURN ( newFloat );
+#endif // SUPPORT_QUADFLOAT
+%}.
+ self errorUnsupported
+
+!
+
productFromQuadFloat:aQuadFloat
"sent when aQuadFloat does not know how to multiply the receiver, self"
@@ -2216,8 +2256,8 @@
self errorUnsupported
!
-equalFromQuadFloat:aQuadFloat
- "sent when aQuadFloat does not know how to compare agaist the receiver, self"
+sumFromQuadFloat:aQuadFloat
+ "sent when aQuadFloat does not know how to add the receiver, self"
%{
#ifdef SUPPORT_QUADFLOAT
@@ -2226,29 +2266,12 @@
myVal = __quadFloatVal(self);
argVal = __quadFloatVal(aQuadFloat);
- return (f128M_eq( &argVal, &result ) ? true : false);
+ f128M_add( &myVal, &argVal, &result );
+ __qMKQFLOAT(newFloat, result);
RETURN ( newFloat );
#endif // SUPPORT_QUADFLOAT
%}.
self errorUnsupported
-!
-
-lessFromQuadFloat:aQuadFloat
- "sent when aQuadFloat does not know how to compare agaist the receiver, self"
-
-%{
-#ifdef SUPPORT_QUADFLOAT
- OBJ newFloat;
- float128_t result, myVal, argVal;
-
- myVal = __quadFloatVal(self);
- argVal = __quadFloatVal(aQuadFloat);
- return (f128M_lt( &argVal, &result ) ? true : false);
- RETURN ( newFloat );
-#endif // SUPPORT_QUADFLOAT
-%}.
- self errorUnsupported
-
! !
!QuadFloat methodsFor:'error reportng'!
@@ -2264,3 +2287,4 @@
version_CVS
^ '$Header$'
! !
+