Karim Belabas on Tue, 07 Feb 2017 09:40:44 +0100

 Re: bnfisintnorm

* Charles Greathouse [2017-02-07 08:55]:
> Given a prime p = 1 mod 3, how can I use bnfisintnorm to find a (the?)
> value of x such that p = x^2 + 3y^2? I don't understand the output format.

0) Just use

qfbsolve(Qfb(1,0,3), p)   \\ here, just Cornacchia

1) bnfisintnorm is (more general but) more complicated in this case
because it will solve x^2 - x*y* + y^2 = n and you have to deal with
changes of variables yourself.

2) Another possibility [ a little worse than qfbsolve in this case ]
is thue(x^2+3, p)  [ returns all solutions,  ]

(09:37) gp > thue(x^2+3,7)
%2 = [[-2, -1], [-2, 1], [2, -1], [2, 1]]

(09:37) gp > p = nextprime(10^1000);
(09:37) gp >  thue(x^2+3, p);
time = 957 ms.
(09:37) gp > qfbsolve(Qfb(1,0,3), p);
time = 901 ms.

N.B. Update from master before trying thue() on this one: an oversight
caused it to return half-integers in this case [ until 5 minutes ago].

Cheers,

K.B.
--
Karim Belabas, IMB (UMR 5251)  Tel: (+33) (0)5 40 00 26 17
Universite de Bordeaux         Fax: (+33) (0)5 40 00 21 23
351, cours de la Liberation    http://www.math.u-bordeaux.fr/~kbelabas/
F-33405 Talence (France)       http://pari.math.u-bordeaux.fr/  [PARI/GP]
`

• Follow-Ups:
• References:
• bnfisintnorm
• From: Charles Greathouse <charles.greathouse@case.edu>