| hermann on Wed, 16 Sep 2026 19:36:13 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: Is my understanding on how my 0-based vector access works correct? |
On 2026-09-16 12:07, Bill Allombert wrote:
Yes, but you could also do my(cf=contfrac(sqrt(d)), a=i->cf[i+1]); (this way cf is part of the context of the closure a)
Thanks, that is definitely better and I changed to it. Also the findfunction now is named ..._m1() and returns 0-based positions for use with a(i):
https://github.com/Hermann-SW/uni-heidelberg/blob/main/scripts/pell.gp
In you code, you are computing contfrac(sqrt(d)) using floating point. ? contfrac(sqrt(23))%5 = [4,1,3,1,8,1,3,1,8,1,3,1,8,1,3,1,8,1,3,1,8,1,3,1,8,1,3,1,8,1,3,1,8,1,3,1,8,1,3,1,8,1,3,1,9]With 2.18.1, you can compute it exactly: ? contfrac(quadgen(4*23)) %8 = [[4],[1,3,1,8]] which means it is 4 followed by 1,3,1,8 repeating infinitely.
That is great, not for code for oeis.org or a repo because it will not work for backlevel versions of gp for others.But really impressive for my work, succeeds where previous approach just fails!
hermann@8840hs:~/pari-2.18.1.alpha$ ./gp -q ? contfrac(sqrt(nextprime(10^5)))[316, 4, 3, 3, 10, 1, 3, 1, 5, 2, 2, 9, 30, 90, 3, 7, 2, 1, 1, 1, 2, 32, 1, 9, 1, 2, 1, 210]
? contfrac(quadgen(4*nextprime(10^5)))[[316], [4, 3, 3, 10, 1, 3, 1, 5, 2, 2, 9, 30, 90, 3, 7, 2, 1, 1, 1, 2, 32, 1, 9, 1, 2, 1, 210, 12, 1, 9, 3, 1, 1, 2, 18, 4, 1, 2, 2, 1, 9, 2, 1, 29, 2, 3, 1, 1, 1, 3, 1, 5, 2, 10, 1, 1, 1, 2, 1, 10, 1, 69, 2, 1, 3, 1, 1, 1, 2, 1, 3, 6, 2, 5, 1, 2, 1, 4, 3, 1, 1, 2, 1, 3, 1, 1, 9, 2, 11, 1, 12, 1, 1, 6, 3, 1, 1, 5, 34, 1, 22, 2, 4, 1, 4, 1, 2, 1, 2, 2, 1, 1, 4, 1, 1, 4, 14, 1, 5, 4, 1, 5, 1, 2, 2, 36, 1, 3, 1, 1, 19, 1, 5, 1, 1, 104, 1, 6, 1, 4, 2, 16, 5, 3, 1, 14, 1, 1, 1, 44, 1, 1, 14, 1, 1, 4, 4, 1, 11, 1, 1, 2, 5, 6, 1, 1, 1, 1, 1, 1, 315, 1, 1, 1, 1, 1, 1, 6, 5, 2, 1, 1, 11, 1, 4, 4, 1, 1, 14, 1, 1, 44, 1, 1, 1, 14, 1, 3, 5, 16, 2, 4, 1, 6, 1, 104, 1, 1, 5, 1, 19, 1, 1, 3, 1, 36, 2, 2, 1, 5, 1, 4, 5, 1, 14, 4, 1, 1, 4, 1, 1, 2, 2, 1, 2, 1, 4, 1, 4, 2, 22, 1, 34, 5, 1, 1, 3, 6, 1, 1, 12, 1, 11, 2, 9, 1, 1, 3, 1, 2, 1, 1, 3, 4, 1, 2, 1, 5, 2, 6, 3, 1, 2, 1, 1, 1, 3, 1, 2, 69, 1, 10, 1, 2, 1, 1, 1, 10, 2, 5, 1, 3, 1, 1, 1, 3, 2, 29, 1, 2, 9, 1, 2, 2, 1, 4, 18, 2, 1, 1, 3, 9, 1, 12, 210, 1, 2, 1, 9, 1, 32, 2, 1, 1, 1, 2, 7,
3, 90, 30, 9, 2, 2, 5, 1, 3, 1, 10, 3, 3, 4, 632]] ? Regards, Hermann.