[BUGLET] in Float>raisedTo:

Florin Mateoc Florin at integral.com
Sat Feb 20 00:02:57 UTC 1999


You are right, but it's more than that. It is also not correct to raise
a negative number to a float and if we take care of the integer powers
first #ln will take care of enforcing just that (so abs is not necessary).
Revised version:


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


Florin


-----Original Message-----
From: sqrmax at cvtci.com.ar [mailto:sqrmax at cvtci.com.ar]
Sent: Friday, February 19, 1999 6:01 PM
To: squeak at cs.uiuc.edu
Subject: Re: RE: [BUGLET] in Float>raisedTo:


Hi.

>I would vote for something like: [...]
>	^(aNumber asFloat * self abs ln) exp * self sign
>"Otherwise raise it to the power using logarithms"

Don't forget to check if self = 0.0... it's not correct to send ln to 0.0.

Andres.





More information about the Squeak-dev mailing list