HP Forums

Full Version: Python math powers?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
CASIO fx-CG50 MicroPython v1.9.4 (but may not be specific to this calculator and Python version)

125**(1/3)
4.99999999999999

pow(125,1/3)
4.99999999999999

(-125)**(1/3)
(2.500000000000001+4.330127018922194j)

abs((-125)**(1/3))
5.00000000000001

pow(-125,1/3)
ValueError: math domain error

(-27)**(1/3)
(1.5+2.598076211353316j)

abs((-27)**(1/3))
3.0

- Rob
Here's what my Prime G2 does:

(11-15-2021 02:14 PM)robve Wrote: [ -> ]CASIO fx-CG50 MicroPython v1.9.4 (but may not be specific to this calculator and Python version)
125**(1/3)
4.99999999999999
Prime: 5.0
Quote:pow(125,1/3)
4.99999999999999
Prime: 5.0
Quote:(-125)**(1/3)
(2.500000000000001+4.330127018922194j)
Prime: same
Quote:abs((-125)**(1/3))
5.00000000000001
Prime: 5.0
Quote:pow(-125,1/3)
ValueError: math domain error
Prime: as in (-125)**(1/3)

I think that's almost all correct. Either 4.99.... or 5.0 probably depends on the specific implementation. There has been a lengthy discussion about 3rd root and operators precedence not so long ago.

I've checked the inputs in two other Python interpreters, one on my Samsung Tablet the other on in Windows. They show the same results except that none gives a clear 5.0 like the (probably cheating) Prime.

But all return a valid result for pow(-125,1/3) therefor I'd think this MicroPython on the CASIO is not complete.

HTH Günter
(11-15-2021 09:57 PM)Guenter Schink Wrote: [ -> ]Here's what my Prime G2 does:

(11-15-2021 02:14 PM)robve Wrote: [ -> ]CASIO fx-CG50 MicroPython v1.9.4 (but may not be specific to this calculator and Python version)
125**(1/3)
4.99999999999999
Prime: 5.0
Quote:pow(125,1/3)
4.99999999999999
Prime: 5.0
Quote:(-125)**(1/3)
(2.500000000000001+4.330127018922194j)
Prime: same
Quote:abs((-125)**(1/3))
5.00000000000001
Prime: 5.0
Quote:pow(-125,1/3)
ValueError: math domain error
Prime: as in (-125)**(1/3)

I think that's almost all correct. Either 4.99.... or 5.0 probably depends on the specific implementation. There has been a lengthy discussion about 3rd root and operators precedence not so long ago.

I've checked the inputs in two other Python interpreters, one on my Samsung Tablet the other on in Windows. They show the same results except that none gives a clear 5.0 like the (probably cheating) Prime.

But all return a valid result for pow(-125,1/3) therefor I'd think this MicroPython on the CASIO is not complete.

HTH Günter

TI-nspire CX II:

125**(1/3)
5.000000000000002
pow(125,1/3)
5.000000000000002
(-125)**(1/3)
(2.500000000000001+4.330127018922195j)
abs((-125)**(1/3))
5.000000000000001
pow(-125,1/3)
(2.500000000000001+4.330127018922195j)
Reference URL's