I stand corrected. Note however that lllgramint  = qflllgram(-, 1) is 
suggested by pari itself:

? lllgramint(D)
  ***   at top-level: lllgramint(D)
  ***                 ^-------------
  ***   not a function in function call
A function with that name existed in GP-1.39.15; to run in backward 
compatibility mode, type "default(compatible,3)", or set "compatible = 3" 
in 
your GPRC file.

New syntax: lllgramint(x) ===> qflllgram(x,1)

qflllgram(G,{flag=0}): LLL reduction of the lattice whose gram matrix is G 
(gives the unimodular transformation matrix). flag is optional and can be 
0: 
default,1: assumes x is integral, 4: assumes x is integral, returns [K,T], 
where K is the integer kernel of x and T the LLL reduced image, 5: same as 
4 
but x may have polynomial coefficients, 8: same as 0 but x may have 
polynomial 
coefficients.



Since the pari function does not check for positive-definition maybe we 
should before calling the pari function? Perhaps allowing a flag to disable 
the check for people who need top-speed and know what they are doing.

Cheers,
J

On Monday, January 21, 2013 1:52:42 PM UTC, Volker Braun wrote:
>
> Its not a bug, its undefined behavior for invalid input.
>
> Also, I don't think we should ever use lllgramint  = qflllgram(-, 1). 
> Thats the toy implementation, you want the adaptive floating point 
> implementation (flag=0) for real work.
>
> http://permalink.gmane.org/gmane.comp.mathematics.pari.devel/2480
>
>
> On Monday, January 21, 2013 1:48:22 PM UTC, Javier López Peña wrote:
>>
>> Hi Volker,
>>
>> I think lllgramint() is deprecated, we should call gflllgram(D,1) instead.
>> The bug remains the same though.
>>
>> Cheers,
>> J
>>
>> On Monday, January 21, 2013 1:41:35 PM UTC, Volker Braun wrote:
>>>
>>>
>>>
>>> On Wednesday, December 19, 2012 11:07:03 PM UTC, William wrote:
>>>>
>>>> > sage: D=Matrix(IntegerModRing(), 
>>>> [[-1,1,0,1,1,0],[1,-3,1,0,0,0],[0,1,-2,0,0,0],[1,0,0,-3,0,0],[1,0,0,0,-4,1],[0,0,0,0,1,-5]]);D
>>>>
>>>> > [-1  1  0  1  1  0]
>>>> > [ 1 -3  1  0  0  0]
>>>> > [ 0  1 -2  0  0  0]
>>>> > [ 1  0  0 -3  0  0]
>>>> > [ 1  0  0  0 -4  1]
>>>> > [ 0  0  0  0  1 -5]
>>>> > sage: X = D.LLL_gram(); 
>>>>
>>>
>>> This uses Pari lllgramint(), which assumes that the matrix is positive 
>>> definite. If the matrix is not positive definite, Pari may not return.
>>>
>>> sage: D.is_positive_definite()
>>> False
>>>
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To post to this group, send email to sage-support@googlegroups.com.
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-support?hl=en.


Reply via email to