| Bill Allombert on Tue, 8 Oct 2002 16:11:05 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: precision and contfrac() |
On Tue, Oct 08, 2002 at 02:43:50PM +0200, Thomas Baruchel wrote:
> Brest, le mardi 8 octobre
>
> Hi, I wonder how I should set the precision \p in order to
> have n exact terms in the continued fraction expansion of
> sqrt(x) (x being exact).
It is a difficult question. The precision exhausted depend on the size of the
partial quotients, which are very hard to control.
>
> For instance, what precision is needed in order to be sure that I
> have 500 exact terms ? 2,000 ? 10,000 ?
You do not need to use reals for this computation:
Try this script, similar to examples/contrac.gp
cf(D,n) output the n first partial quotient of sqrt(D),
without relying on real numbers.
cf(D,n) =
{
local(a,r,u,v);
if (type(D) != "t_INT" || D < 2, return(-1));
u = sqrtint(D); v = D-u^2;
if (!v, return(0));
r = u;
vector(n,i,
if(i==1,u,a=(u+r)\v;
u = (r+u)\v * v - u;
v = (D-u^2)\v;a
));
}
Cheers,
Bill.