QDouble.st
changeset 5339 e4b0a559dc89
parent 5336 24b6605706cb
child 5340 0149284ed67c
--- a/QDouble.st	Sun Dec 01 16:12:35 2019 +0100
+++ b/QDouble.st	Mon Dec 02 08:43:54 2019 +0100
@@ -3792,8 +3792,34 @@
    "
 !
 
+equalFromFloat:aFloat
+%{  /* NOCONTEXT */
+    if (__isFloat(aFloat)) {
+        double *a = __QDoubleInstPtr(self)->d_qDoubleValue;
+        double b = __floatVal(aFloat);
+
+        RETURN ((a[0] == b
+                && a[1] == 0.0
+                && a[2] == 0.0
+                && a[3] == 0.0) ? true : false);
+    }
+%}.
+    ^ (self d0 = aFloat)
+      and:[ (self d1 = 0.0)
+      and:[ (self d2 = 0.0)
+      and:[ (self d3 = 0.0) ]]]
+
+    "
+     (QDouble fromFloat:1.0) = 1.0
+     (QDouble fromFloat:1.0) = 1.0
+     1.0 = (QDouble fromFloat:1.0)
+     1.1 = (QDouble fromFloat:1.0)
+     1.1 = (QDouble fromFloat:1.1)
+    "
+!
+
 equalFromQDouble:aQDouble
-%{
+%{  /* NOCONTEXT */
     if (__Class(aQDouble) == QDouble) {
         double *a = __QDoubleInstPtr(self)->d_qDoubleValue;
         double *b = __QDoubleInstPtr(aQDouble)->d_qDoubleValue;
@@ -3812,7 +3838,9 @@
     "
      (QDouble fromFloat:1.0) = (QDouble fromFloat:1.0)
      (QDouble fromFloat:1.0) = 1.0
-     1.0 = (QDouble fromFloat:1.0)
+     1.0 = (QDouble fromFloat:1.0)  
+     1e20 = 1e20 asQDouble          
+     1e20 = (1e20 asQDouble + 1e-20)  
    "
 
     "Created: / 13-06-2017 / 03:01:19 / cg"