QuadFloat.st
changeset 4994 246159e1784d
parent 4993 c7956a3ab780
child 4997 55c76587b49c
--- a/QuadFloat.st	Thu Jun 06 23:01:38 2019 +0200
+++ b/QuadFloat.st	Thu Jun 06 23:13:03 2019 +0200
@@ -1014,6 +1014,65 @@
     "Created: / 06-06-2019 / 17:09:51 / Claus Gittinger"
 ! !
 
+!QuadFloat methodsFor:'double dispatching'!
+
+sumFromQuadFloat:aQuadFloat
+%{
+    OBJ newFloat;
+    float128_t result, myVal, argVal;
+
+    myVal = __quadFloatVal(self);
+    argVal = __quadFloatVal(aQuadFloat);
+    f128M_add( &myVal, &argVal, &result );
+    __qMKQFLOAT(newFloat, result);
+    RETURN ( newFloat );
+%}
+! !
+
+!QuadFloat methodsFor:'arithmetic'!
+
+* aNumber
+    "return the product of the receiver and the argument."
+
+    ^ aNumber productFromQuadFloat:self
+!
+
++ aNumber
+    "return the sum of the receiver and the argument, aNumber"
+
+    ^ aNumber sumFromQuadFloat:self
+!
+
+- aNumber
+    "return the difference of the receiver and the argument, aNumber"
+
+    ^ aNumber differenceFromQuadFloat:self
+!
+
+/ aNumber
+    "return the quotient of the receiver and the argument, aNumber"
+
+    aNumber isZero ifTrue:[
+	"
+	 No, you shalt not divide by zero
+	"
+	^ ZeroDivide raiseRequestWith:thisContext.
+    ].
+    ^ aNumber quotientFromQuadFloat:self
+!
+
+rem: aNumber
+    "return the floating point remainder of the receiver and the argument, aNumber"
+
+    aNumber isZero ifTrue:[
+	"
+	 No, you shalt not divide by zero
+	"
+	^ ZeroDivide raiseRequestWith:thisContext.
+    ].
+    ^ aNumber remainderFromLongFloat:self
+! !
+
 !QuadFloat class methodsFor:'documentation'!
 
 version_CVS