Hi everyone,

I'm trying to use the new-ish LLL implementation for domain matrices, but 
it's failing assertions in some of my use cases. Specifically, when the 
input matrix has really big integers in it.

Here's an example from a recent session:

In [2]: r = sp.sqrt(2).evalf(100)

In [3]: v = [[1, 0, 0, sp.floor(10**100 * r**2)]]

In [4]: v += [[0, 1, 0, sp.floor(10**100 * r**1)]]

In [5]: v += [[0, 0, 1, sp.floor(10**100)]]

In [6]: m = DomainMatrix.from_list(v, ZZ)
...
In [8]: m.lll()
...
assert all([mu_small(i, j) for i in range(m) for j in range(i)])
AssertionError:

Here, m has integers with ~100 digits, and for some reason the 
implementation does not actually reduce the Gram-Schmidt coefficients mu to 
be less than 1/2 in absolute value. It does it perfectly if the entries of 
m have ~5 or ~10 digits.

Am I doing something stupid here, or does the implementation need fixing?

Robert

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/695ef34e-ea30-495e-af4d-ffe29c5a71a0n%40googlegroups.com.

Reply via email to