Bill Allombert on Fri, 23 Jan 2004 19:10:26 +0100


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

Re: qflll


On Fri, Jan 23, 2004 at 06:20:30PM +0100, Denis Simon wrote:
> 
> Hi,
> 
> I suspect a problem with qflll with non integral entries:
>        GP/PARI CALCULATOR Version 2.2.8 (development CHANGES-1.896)
>                 i686 running linux (ix86 kernel) 32-bit version
>           compiled: Jan 23 2004, gcc-3.2 (Mandrake Linux 9.0 3.2-1mdk)
>   ? qflll(Mat([1.,1.]),4)
>   ***   not an integral matrix in lllgramint

As far as I understand, flag=4 imply the entries ar integral:

? ??qflll
qflll(x,{flag = 0}):
...
   If  flag  =  4,  x is assumed to have integral entries,  but needs not be of
maximal rank.  The result is a two-component vector of matrices: the columns of
the first matrix represent a basis of the integer kernel of x  (not necessarily
LLL-reduced) and the second matrix is the transformation matrix T such that x.T
is an LLL-reduced Z-basis of the image of the matrix x.

So the behaviour is correct, barring the fact our error reporting system
does not allow us to find the real GP name.

Maybe the short help message could be improved, though:

qflll(x,{flag=0}): LLL reduction of the vectors forming the matrix x (gives
the unimodular transformation matrix). flag is optional, and can be 0:
default, 1: lllint algorithm for integer matrices, 2: lllintpartial algorithm
for integer matrices, 4: lllkerim giving the kernel and the LLL reduced image,
5: lllkerimgen same but if the matrix has polynomial coefficients, 8: lllgen,
same as qflll when the coefficients are polynomials.

Cheers,
Bill.