Karim BELABAS on Mon, 9 Nov 1998 13:20:22 +0100 (MET) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: idealred returns ideal with different norm |
[Peter-Lawrence Montgomery writes:] > idealred is returning an ideal with different norm than its input. > Is this the way it is supposed to behave? I think so. Idealred returns an ideal in the same ideal _class_ as the input, which gives a much more efficient reduction (since the norm is usually diminished...). This function is really used to find relations in the class group, not simply to reduce the size of the ideal components. If you want to keep the same ideal and just reduce the corresponding lattice, use the standard qflll* functions. >From the manual (entry for idealred): "[...] Note that this is not the same as the LLL reduction of the lattice x since ideal operations are involved. The result is the Hermite normal form of the LLL-reduced ideal, which is usually, but not always, a reduced ideal. x may also be a 2-component vector, the first being as above, and the second containing a matrix of Archimedean information. In that case, this matrix is suitably updated." This says (in an admittedly very cryptic style) that by using as input what PARI calls (wrongly) an "idele", i.e 2-component vector containing [the ideal, a vector with r1+r2 scalar components (embeddings)], the second component will keep track of the principal ideals that are lost in the main component (see Henri Cohen's book for details). Side notes: > c5 = 200 > fX = c5*X^5 + 102*X^4 + 315*X^3 - 11*X^2 - 262*X + 5 > fXM = subst(fX*c5^4, X, XM/c5) /* fXM is monic in XM */ fXM = polredabs(fXM) would be a good idea at this point. > [...] > ideal2fac = idealfactor(nf, idealprincipal(nf, 2)) /* Factor ideal (2) */ simpler: ideal2fac = idealprimedec(nf, 2) /* Factor ideal (2) */ > [...] > The empty factorization prints a cryptic matrix(0,2,j,k,0). matrix(0,2,j,k,0) = 0 by 2 matrix filled with 0s (irrelevant since it has no entries, but syntactically mandatory... this is annoying since omitting the last field "should" initialize everything with zeroes, I'm changing that) This is printed so that it can be copy-pasted back to GP and produce a valid object... ([;] is really an abreviation for matrix(0,0,j,k,0)) Best, Karim. -- Karim Belabas email: Karim.Belabas@math.u-psud.fr Dep. de Mathematiques, Bat. 425 Universite Paris-Sud Tel: (00 33) 1 69 15 57 48 F-91405 Orsay (France) Fax: (00 33) 1 69 15 60 19 -- PARI/GP Home Page: http://pari.home.ml.org