#REFACTORING by cg
class: QuadFloat class
added:
#negativeInfinity
#positiveInfinity
--- a/QuadFloat.st Sat Jun 08 13:35:43 2019 +0200
+++ b/QuadFloat.st Sat Jun 08 14:06:07 2019 +0200
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
"{ Package: 'stx:libbasic2' }"
"{ NameSpace: Smalltalk }"
@@ -2201,6 +2203,31 @@
"Created: / 06-06-2019 / 17:01:54 / Claus Gittinger"
!
+negativeInfinity
+ "return a quadFloat which represents -INF"
+
+ |inf|
+
+ NegativeInfinity isNil ifTrue:[
+%{ /* NOCONTEXT */
+#ifdef SUPPORT_QUADFLOAT
+ {
+ OBJ newFloat;
+ float128_t qf;
+
+ softfloat_commonNaNToF128M( NULL, (uint32_t*)(&qf) );
+ __qMKQFLOAT(newFloat, qf); /* OBJECT ALLOCATION */
+ inf = newFloat;
+ }
+#endif /* SUPPORT_QUADFLOAT */
+%}.
+ NegativeInfinity := inf
+ ].
+ ^ NegativeInfinity
+
+ "Created: / 08-06-2019 / 14:05:50 / Claus Gittinger"
+!
+
pi
"return the constant pi as quadFloat"
@@ -2214,6 +2241,31 @@
"Created: / 06-06-2019 / 17:09:51 / Claus Gittinger"
!
+positiveInfinity
+ "return a quadFloat which represents +INF"
+
+ |inf|
+
+ PositiveInfinity isNil ifTrue:[
+%{ /* NOCONTEXT */
+#ifdef SUPPORT_QUADFLOAT
+ {
+ OBJ newFloat;
+ float128_t qf;
+
+ softfloat_commonNaNToF128M( NULL, (uint32_t*)(&qf) );
+ __qMKQFLOAT(newFloat, qf); /* OBJECT ALLOCATION */
+ inf = newFloat;
+ }
+#endif /* SUPPORT_QUADFLOAT */
+%}.
+ PositiveInfinity := inf
+ ].
+ ^ PositiveInfinity
+
+ "Created: / 08-06-2019 / 14:05:26 / Claus Gittinger"
+!
+
unity
"return the neutral element for multiplication (1.0) as QuadFloat"