[BUGLET] in Float>raisedTo: (small correction)

Florin Mateoc Florin at integral.com
Sat Feb 20 00:53:30 UTC 1999


Sorry, in the last message I missed two right brackets.

The method now also returns the same kind of zero as the original
base. (So 0.0 raisedTo: 0.75 now returns 0.0 (not 0, as in the
previous version, nor -0.0 as in the original bug (but the check
self=0 here is not for dealing with that bug, it's for the two
error conditions specific to raiseTo:. Obviously Float>>ln still
fails to fail for negative numbers, but that's a primitive problem)))


raisedTo: aNumber
	self = 0 ifTrue: [
		aNumber negative
			ifTrue: [^self error: 'attempt to divide by zero']
			ifFalse: [
				aNumber = 0
					ifTrue: [^self error: '0 raisedTo:
0']
					ifFalse: [^self]]].
	(aNumber = aNumber asInteger)
		ifTrue: ["Do the special case of integer power"
				^self raisedToInteger: aNumber asInteger].
	^(aNumber asFloat * self ln) exp



Florin





More information about the Squeak-dev mailing list