Karim Belabas on Fri, 19 Mar 2004 16:32:09 +0100

 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]

```

• References:
• Re: sqrt(9)
• From: Bill Allombert <allomber@math.u-bordeaux.fr>