| Karim Belabas on Fri, 19 Mar 2004 16:32:09 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: sqrt(9) |
* Bill Allombert [2004-03-19 16:07]:
> On Fri, Mar 19, 2004 at 01:26:59PM -0000, Jon Perry wrote:
> > I would expect 9^(1/2)=3.0000000000000, or even 3.
>
> It give 3.000000000000000000000000000 with the CVS version.
It is specified (and documented) that
1) "transcendental functions" return floating point results
2) sqrt is a "transcendental functions"
So "the integer 3" is not a valid answer, although arguably more "natural".
Also both 3.00000000 and 2.9999999 are valid answers (up to the working
realprecision, they in fact agree).
You may use something like this:
nthroot(x, n) = local(y,z); y = round( z = x^(1/n) ); if (y^n == x, y, z)
Cheers,
Karim.
--
Karim Belabas Tel: (+33) (0)1 69 15 57 48
Dep. de Mathematiques, Bat. 425 Fax: (+33) (0)1 69 15 60 19
Universite Paris-Sud http://www.math.u-psud.fr/~belabas/
F-91405 Orsay (France) http://pari.math.u-bordeaux.fr/ [PARI/GP]