QuadFloat.st
changeset 5012 bd4e0475f9ea
parent 5011 889548e8808e
child 5013 00262ae1cef1
--- 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"