Denis Simon on Mon, 01 Nov 2021 16:45:02 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: size of the coefficients returned by bnfisnorm()


Dear max,

For a generic ternary quadratic form, qfparam gives the smallest dsicriminants and resultants.
These discriminants and resultants can be expressed by simple formulae from the coefficients of G.
See https://jtnb.centre-mersenne.org/item/10.5802/jtnb.543.pdf

In specific cases, they can be improved, as in your example.
Before trying to minimze the parametrization, you can try to minimze the determinant your equation.
In the case of a diagonal equation, it consists in dividing the coefficients by squares.
In your example, you can divide G[2,2] and G[3,3] by the square (17*19)^2, whence your smaller parametrization.

Denis SIMON.


De: "Max Alekseyev" <maxale@gmail.com>
À: "pari-users" <pari-users@pari.math.u-bordeaux.fr>
Envoyé: Lundi 1 Novembre 2021 03:07:40
Objet: Re: size of the coefficients returned by bnfisnorm()
Thanks for confirming the equivalence of M and M2, although I believe the value of P should be:
P = [323, 775; 0, -1];
to have M2*sym2sq(P)==-M.

In fact, my primary concern is not the value of elements of qfparam() per se, but gcd of the pairwise resultants of the parametrized solution elements:

mygcd(Q) = my(q=Q*[x^2,x,1]~); gcd( polresultant(q[1],q[2]), polresultant(q[1],q[3]) );

For M and M2, we have:

? mygcd(M)
%1 = 2952490316888551400

? mygcd(M2)
%2 = 271255400

It can be seen that mygcd(Q*sym2sq(P)) = mygcd(Q) * matdet(P)^4, and so by choosing a suitable P we can try to eliminate the prime fourth powers in the gcd.
In our example, we have

factor( mygcd(M) )
[2, 3; 5, 2; 13, 1; 17, 6; 19, 6]

factor( mygcd(M2) )
[2, 3; 5, 2; 13, 1; 17, 2; 19, 2]

implying that mygcd(M2) is the minimum we can achieve here via multiplication by sym2sq(P).
Also, to get from M to some newM=M*sym2sq(P) with minimum mygcd(newM) (== mygcd(M2)) we need to take P such that (i) matdet(P) = 1/(17*19), and (ii) M*sym2sq(P) has integer elements.
It turns out, in our example

newM = M * sym2sq([1/(17*19),0;0,1])
[-323, -500650, -194002198; -5, -7700, -2964370; -25, -38760, -15023350]

would do the job, although in general case it'll take some effort to satisfy condition (ii).

P.S. It'd be nice to have a notion of "minimal" solution here, but that's just out of curiosity.

Regards,
Max


On Sun, Oct 31, 2021 at 6:18 PM Bill Allombert <Bill.Allombert@math.u-bordeaux.fr> wrote:
Le Sun, Oct 31, 2021 at 09:40:49AM +0100, Bill Allombert a écrit :
> Le Sat, Oct 30, 2021 at 10:12:07PM -0400, Max Alekseyev a écrit :
> > Dear Bill,
> >
> > I did not have a chance to thank you for your suggestion on reducing
> > coefficients of bnfisnorm() based on qfparam(), but now I have a similar
> > question about qfparam() itself.
> > Consider an example:
> >
> > ? G = matdiagonal([650, -104329, -104329]);
> > ? M = qfparam(G, qfsolve(G))
> > %1 =
> > [-33698267 -161709950 -194002198]
> > [  -521645   -2487100   -2964370]
> > [ -2608225  -12519480  -15023350]
> >
> > I claim that the following matrix works equally well (i.e. it could have
> > been returned by qfparam), but it has much smaller entries:
> >
> > ? M2 = [323, 0, 323; 5, 50, -5; 25,- 10, - 25]
>
> As I understand, your solution is not a full parametrization since it
> does not reach all the rational solutions:

This was not correct, sorry! I forgot that the solutions were
projective.

Let
sym2sq(M)=my([a,b]=M[1,],[c,d]=M[2,]);[a^2,2*b*a,b^2;c*a,d*a+c*b,d*b;c^2,2*d*c,d^2]
the symmetric square function

The transfer matrix is
P=[1,-62;5,13]
We have
M2*sym2sq(P)==-M

So indeed M2 and M are equivalent as far as qfparam is concerned.

Cheers,
Bill.