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 [email protected].
To unsubscribe from this group, send email to
[email protected].
Visit this group at http://groups.google.com/group/sage-support?hl=en.