--- a/Float.st Thu Jun 22 15:14:51 2017 +0200
+++ b/Float.st Thu Jun 22 16:11:44 2017 +0200
@@ -1935,36 +1935,36 @@
OBJ newFloat;
if (__isFloatLike(n)) {
- __threadErrno = 0;
- rslt = pow(__floatVal(self), __floatVal(n));
- if (! isnan(rslt)) /* Currently all our systems support isnan() */
- {
- if (__threadErrno == 0) {
- __qMKFLOAT(newFloat, rslt);
- RETURN ( newFloat );
- }
- }
+ __threadErrno = 0;
+ rslt = pow(__floatVal(self), __floatVal(n));
+ if (! isnan(rslt)) /* Currently all our systems support isnan() */
+ {
+ if (__threadErrno == 0) {
+ __qMKFLOAT(newFloat, rslt);
+ RETURN ( newFloat );
+ }
+ }
}
%}.
- "/ the c-library pow functin, has a bug:
+ "/ the c-library pow function, has a bug:
"/ it does not deal correctly with negative numbers.
"/ I.e. it raises an error on -8^(1/3) instead of returning a negative -2
"/ work around with a kludge:
self < 0 ifTrue:[
- ^ (self negated raisedTo:n) negated
+ ^ (self negated raisedTo:n) negated
].
"
an invalid argument (not convertable to float ?)
"
^ self class
- raise:#domainErrorSignal
- receiver:self
- selector:#raisedTo:
- arguments:(Array with:aNumber)
- errorString:'bad receiver/arg in raisedTo:'
-
- "Modified: / 16.11.2001 / 14:16:51 / cg"
+ raise:#domainErrorSignal
+ receiver:self
+ selector:#raisedTo:
+ arguments:(Array with:aNumber)
+ errorString:'bad receiver/arg in raisedTo:'
+
+ "Modified: / 22-06-2017 / 15:55:09 / cg"
!
sqrt