Re: S-Unit questions
Aurel Page <[email protected]> Thu, 12 Mar 2026 15:41:07 +0100
| Newsgroups | gmane.comp.mathematics.pari.user |
|---|---|
| Message-ID | <[email protected]> |
On 3/12/26 15:36, [email protected] wrote: >>> So how to solve this equation using PARI/GP with its Baker(?) >>> algorithm? >>> >>> ±2^{a1}*3^{b1}±2^{a2}*3^{b2}=1 > This is the script proposed by Gemini, which errors on bnfuniteqn() > not existing: > > ? { > \\ 1. Initialize Q > bnf = bnfinit(x - 1); > > \\ 2. Define S = {2, 3} correctly > S = concat([idealprimedec(bnf, 2), idealprimedec(bnf, 3)]); > > \\ 3. Get the S-unit structure AND the map (the '1' at the end is > vital) > s_struct = bnfsunit(bnf, S); > > \\ 4. Solve the S-unit equation epsilon_1 + epsilon_2 = 1 > \\ This returns the solutions as exponent vectors relative to the > S-unit generators > solutions_vecs = bnfuniteqn(s_struct); > > \\ 5. Convert exponent vectors back into actual rational numbers > \\ s_struct[1] contains the generators: [-1, 2, 3] > gens = s_struct[1]; > > print("Solutions (x, y) where x + y = 1:"); > for(i = 1, #solutions_vecs, > sol = solutions_vecs[i]; > \\ The solution is a pair [x, y] > x = nfeltfactorback(bnf, gens, sol[1]); > y = nfeltfactorback(bnf, gens, sol[2]); > print([x, y]); > ); > } > *** at top-level: ...it(bnf,S);solutions_vecs=bnfuniteqn(s_struct); > *** ^--------------------- > *** not a function in function call > *** Break loop: type 'break' to go back to GP prompt > break> This solution is a hallucination: we do not currently have an S-unit equation solver in PARI, though it would be interesting to have one. Cheers, Aurel