But I’m disappointed to find that POSIX::pow has the same limitations as **. So the more general question remains open.
I like the module Math::Prime::Util::GMP a lot because of its many functions that also go beyond prime numbers.
$ perl -MMath::Prime::Util::GMP=rootreal -le 'print rootreal(-8, 3)'
-2.000000000000000000000000000000000000000
Use 0+rootreal(...) to get just -2 in this case. powreal(-8, 1/3) suffers a bit from the floating-point inaccuracies in 1/3. Note both functions support an optional third argument to specify the number of significant digits, e.g. powreal(-8, 1/3, 5) is "-2.0000".
Update: However, note the issues raised by vr and syphilis here! |