Float.st
changeset 1695 465e1eba8e8e
parent 1688 8a42db1eea60
child 1879 26df273349c4
--- a/Float.st	Sat Oct 05 13:59:15 1996 +0200
+++ b/Float.st	Mon Oct 07 19:47:43 1996 +0200
@@ -12,7 +12,7 @@
 
 LimitedPrecisionReal variableByteSubclass:#Float
 	instanceVariableNames:''
-	classVariableNames:'LastErrorNumber'
+	classVariableNames:''
 	poolDictionaries:''
 	category:'Magnitude-Numbers'
 !
@@ -71,9 +71,6 @@
 
     [Class Variables:]
 
-        LastErrorNumber <Integer>       value of errno (after a trig- or other math err)
-
-
     [see also:]
         Number
         ShortFloat Fraction Integer
@@ -98,7 +95,7 @@
 %{  /* NOCONTEXT */
     OBJ newFloat;
 
-    __qMKFLOAT(newFloat, 0.0, SENDER);
+    __qMKFLOAT(newFloat, 0.0);
     RETURN (newFloat);
 %}
 
@@ -261,17 +258,6 @@
     ^ self == Float
 
     "Modified: 23.4.1996 / 15:59:04 / cg"
-!
-
-lastErrorNumber
-    "return the value of errno after an error"
-
-    ^ LastErrorNumber
-
-    "
-     2 arcSin.
-     OperatingSystem errorTextForNumber:(Float lastErrorNumber)
-    "
 ! !
 
 !Float methodsFor:'arithmetic'!
@@ -287,7 +273,7 @@
     if (__isSmallInteger(aNumber)) {
 	result = __floatVal(self) * (double)(__intVal(aNumber));
 retResult:
-	__qMKFLOAT(newFloat, result, SENDER);
+	__qMKFLOAT(newFloat, result);
 	RETURN ( newFloat );
     }
     if (__isFloatLike(aNumber)) {
@@ -310,7 +296,7 @@
     if (__isSmallInteger(aNumber)) {
 	result = __floatVal(self) + (double)(__intVal(aNumber));
 retResult:
-	__qMKFLOAT(newFloat, result, SENDER);
+	__qMKFLOAT(newFloat, result);
 	RETURN ( newFloat );
     }
     if (__isFloatLike(aNumber)) {
@@ -333,7 +319,7 @@
     if (__isSmallInteger(aNumber)) {
 	result = __floatVal(self) - (double)(__intVal(aNumber));
 retResult:
-	__qMKFLOAT(newFloat, result, SENDER);
+	__qMKFLOAT(newFloat, result);
 	RETURN ( newFloat );
     }
     if (__isFloatLike(aNumber)) {
@@ -357,7 +343,7 @@
 	if (aNumber != __MKSMALLINT(0)) {
 	    result = __floatVal(self) / ( (double)__intVal(aNumber)) ;
 retResult:
-	    __qMKFLOAT(newFloat, result, SENDER);
+	    __qMKFLOAT(newFloat, result);
 	    RETURN ( newFloat );
 	}
     } else {
@@ -388,7 +374,7 @@
     OBJ newFloat;
     double rslt = - __floatVal(self);
 
-    __qMKFLOAT(newFloat, rslt, SENDER);
+    __qMKFLOAT(newFloat, rslt);
     RETURN ( newFloat );
 %}
 ! !
@@ -439,7 +425,7 @@
     OBJ newFloat;
     float fVal = (float)__floatVal(self);
 
-    __qMKSFLOAT(newFloat, fVal, SENDER);
+    __qMKSFLOAT(newFloat, fVal);
     RETURN ( newFloat );
 %}
 !
@@ -584,8 +570,7 @@
     if (__isFloatLike(aNumber)) {
 	RETURN ( (__floatVal(self) != __floatVal(aNumber)) ? true : false );
     }
-%}
-.
+%}.
     ^ self retry:#~= coercing:aNumber
 ! !
 
@@ -597,15 +582,16 @@
 %{  /* NOCONTEXT */
 
     double acos();
-    double result;
+    double rslt;
+    OBJ newFloat;
 
     errno = 0;
-    result = acos(__floatVal(self));
-    if (errno == 0)
-	RETURN ( __MKFLOAT(result COMMA_SND) );
-    Float_LastErrorNumber = __MKSMALLINT(errno);
-%}
-.
+    rslt = acos(__floatVal(self));
+    if (errno == 0) {
+        __qMKFLOAT(newFloat, rslt);
+	RETURN ( newFloat );
+    }
+%}.
     ^ DomainErrorSignal raise
 !
 
@@ -615,15 +601,16 @@
 %{  /* NOCONTEXT */
 
     double asin();
-    double result;
+    double rslt;
+    OBJ newFloat;
 
     errno = 0;
-    result = asin(__floatVal(self));
-    if (errno == 0)
-	RETURN ( __MKFLOAT(result COMMA_SND) );
-    Float_LastErrorNumber = __MKSMALLINT(errno);
-%}
-.
+    rslt = asin(__floatVal(self));
+    if (errno == 0) {
+	__qMKFLOAT(newFloat, rslt);
+	RETURN ( newFloat );
+    }
+%}.
     ^ DomainErrorSignal raise
 !
 
@@ -633,15 +620,16 @@
 %{  /* NOCONTEXT */
 
     double atan();
-    double result;
+    double rslt;
+    OBJ newFloat;
 
     errno = 0;
-    result = atan(__floatVal(self));
-    if (errno == 0)
-	RETURN ( __MKFLOAT(result COMMA_SND) );
-    Float_LastErrorNumber = __MKSMALLINT(errno);
-%}
-.
+    rslt = atan(__floatVal(self));
+    if (errno == 0) {
+	__qMKFLOAT(newFloat, rslt);
+	RETURN ( newFloat );
+    }
+%}.
     ^ DomainErrorSignal raise
 !
 
@@ -651,15 +639,16 @@
 %{  /* NOCONTEXT */
 
     double cos();
-    double result;
+    double rslt;
+    OBJ newFloat;
 
     errno = 0;
-    result = cos(__floatVal(self));
-    if (errno == 0)
-	RETURN ( __MKFLOAT(result COMMA_SND) );
-    Float_LastErrorNumber = __MKSMALLINT(errno);
-%}
-.
+    rslt = cos(__floatVal(self));
+    if (errno == 0) {
+	__qMKFLOAT(newFloat, rslt);
+	RETURN ( newFloat );
+    }
+%}.
     ^ DomainErrorSignal raise
 !
 
@@ -669,15 +658,16 @@
 %{  /* NOCONTEXT */
 
     double exp();
-    double result;
+    double rslt;
+    OBJ newFloat;
 
     errno = 0;
-    result = exp(__floatVal(self));
-    if (errno == 0)
-	RETURN ( __MKFLOAT(result COMMA_SND) );
-    Float_LastErrorNumber = __MKSMALLINT(errno);
-%}
-.
+    rslt = exp(__floatVal(self));
+    if (errno == 0) {
+	__qMKFLOAT(newFloat, rslt);
+	RETURN ( newFloat );
+    }
+%}.
     ^ DomainErrorSignal raise
 !
 
@@ -687,15 +677,16 @@
 %{  /* NOCONTEXT */
 
     double log();
-    double result;
+    double rslt;
+    OBJ newFloat;
 
     errno = 0;
-    result = log(__floatVal(self));
-    if (errno == 0)
-	RETURN ( __MKFLOAT(result COMMA_SND) );
-    Float_LastErrorNumber = __MKSMALLINT(errno);
-%}
-.
+    rslt = log(__floatVal(self));
+    if (errno == 0) {
+	__qMKFLOAT(newFloat, rslt);
+	RETURN ( newFloat );
+    }
+%}.
     "
      an invalid value for logarithm
     "
@@ -709,18 +700,19 @@
     n := aNumber asFloat.
 %{
     double pow();
-    double result;
+    double rslt;
+    OBJ newFloat;
 
     if (__isFloatLike(n)) {
 	errno = 0;
-	result = pow(__floatVal(self), __floatVal(n));
+	rslt = pow(__floatVal(self), __floatVal(n));
 	errno = 0;  /* XXXX */
-	if (errno == 0)
-	    RETURN ( __MKFLOAT(result) );
-	Float_LastErrorNumber = __MKSMALLINT(errno);
+        if (errno == 0) {
+	    __qMKFLOAT(newFloat, rslt);
+	    RETURN ( newFloat );
+        }
     }
-%}
-.
+%}.
     "
      an invalid argument (not convertable to float ?)
     "
@@ -733,15 +725,16 @@
 %{  /* NOCONTEXT */
 
     double sin();
-    double result;
+    double rslt;
+    OBJ newFloat;
 
     errno = 0;
-    result = sin(__floatVal(self));
-    if (errno == 0)
-	RETURN ( __MKFLOAT(result COMMA_SND) );
-    Float_LastErrorNumber = __MKSMALLINT(errno);
-%}
-.
+    rslt = sin(__floatVal(self));
+    if (errno == 0) {
+	__qMKFLOAT(newFloat, rslt);
+	RETURN ( newFloat );
+    }
+%}.
     ^ DomainErrorSignal raise
 !
 
@@ -751,15 +744,16 @@
 %{  /* NOCONTEXT */
 
     double sqrt();
-    double result;
+    double rslt;
+    OBJ newFloat;
 
     errno = 0;
-    result = sqrt(__floatVal(self));
-    if (errno == 0)
-	RETURN ( __MKFLOAT(result COMMA_SND) );
-    Float_LastErrorNumber = __MKSMALLINT(errno);
-%}
-.
+    rslt = sqrt(__floatVal(self));
+    if (errno == 0) {
+	__qMKFLOAT(newFloat, rslt);
+	RETURN ( newFloat );
+    }
+%}.
     ^ DomainErrorSignal raise
 !
 
@@ -769,15 +763,16 @@
 %{  /* NOCONTEXT */
 
     double tan();
-    double result;
+    double rslt;
+    OBJ newFloat;
 
     errno = 0;
-    result = tan(__floatVal(self));
-    if (errno == 0)
-	RETURN ( __MKFLOAT(result COMMA_SND) );
-    Float_LastErrorNumber = __MKSMALLINT(errno);
-%}
-.
+    rslt = tan(__floatVal(self));
+    if (errno == 0) {
+	__qMKFLOAT(newFloat, rslt);
+	RETURN ( newFloat );
+    }
+%}.
     ^ DomainErrorSignal raise
 ! !
 
@@ -1091,5 +1086,5 @@
 !Float  class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Float.st,v 1.42 1996-10-02 11:32:32 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Float.st,v 1.43 1996-10-07 17:47:12 cg Exp $'
 ! !