Charles Greathouse on Tue, 07 Feb 2017 17:58:50 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
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/ Talence (France) http://pari.math.u-bordeaux.
F-33405fr/ [PARI/GP]
`