--- 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 $'
! !