QuadFloat.st
changeset 4994 246159e1784d
parent 4993 c7956a3ab780
child 4997 55c76587b49c
equal deleted inserted replaced
4993:c7956a3ab780 4994:246159e1784d
  1012     ^ Pi
  1012     ^ Pi
  1013 
  1013 
  1014     "Created: / 06-06-2019 / 17:09:51 / Claus Gittinger"
  1014     "Created: / 06-06-2019 / 17:09:51 / Claus Gittinger"
  1015 ! !
  1015 ! !
  1016 
  1016 
       
  1017 !QuadFloat methodsFor:'double dispatching'!
       
  1018 
       
  1019 sumFromQuadFloat:aQuadFloat
       
  1020 %{
       
  1021     OBJ newFloat;
       
  1022     float128_t result, myVal, argVal;
       
  1023 
       
  1024     myVal = __quadFloatVal(self);
       
  1025     argVal = __quadFloatVal(aQuadFloat);
       
  1026     f128M_add( &myVal, &argVal, &result );
       
  1027     __qMKQFLOAT(newFloat, result);
       
  1028     RETURN ( newFloat );
       
  1029 %}
       
  1030 ! !
       
  1031 
       
  1032 !QuadFloat methodsFor:'arithmetic'!
       
  1033 
       
  1034 * aNumber
       
  1035     "return the product of the receiver and the argument."
       
  1036 
       
  1037     ^ aNumber productFromQuadFloat:self
       
  1038 !
       
  1039 
       
  1040 + aNumber
       
  1041     "return the sum of the receiver and the argument, aNumber"
       
  1042 
       
  1043     ^ aNumber sumFromQuadFloat:self
       
  1044 !
       
  1045 
       
  1046 - aNumber
       
  1047     "return the difference of the receiver and the argument, aNumber"
       
  1048 
       
  1049     ^ aNumber differenceFromQuadFloat:self
       
  1050 !
       
  1051 
       
  1052 / aNumber
       
  1053     "return the quotient of the receiver and the argument, aNumber"
       
  1054 
       
  1055     aNumber isZero ifTrue:[
       
  1056 	"
       
  1057 	 No, you shalt not divide by zero
       
  1058 	"
       
  1059 	^ ZeroDivide raiseRequestWith:thisContext.
       
  1060     ].
       
  1061     ^ aNumber quotientFromQuadFloat:self
       
  1062 !
       
  1063 
       
  1064 rem: aNumber
       
  1065     "return the floating point remainder of the receiver and the argument, aNumber"
       
  1066 
       
  1067     aNumber isZero ifTrue:[
       
  1068 	"
       
  1069 	 No, you shalt not divide by zero
       
  1070 	"
       
  1071 	^ ZeroDivide raiseRequestWith:thisContext.
       
  1072     ].
       
  1073     ^ aNumber remainderFromLongFloat:self
       
  1074 ! !
       
  1075 
  1017 !QuadFloat class methodsFor:'documentation'!
  1076 !QuadFloat class methodsFor:'documentation'!
  1018 
  1077 
  1019 version_CVS
  1078 version_CVS
  1020     ^ '$Header$'
  1079     ^ '$Header$'
  1021 ! !
  1080 ! !