Hi Martin,
 

> I asked about it because it seems no one seems to have touched those data 
> structures in years and because I failed to interact with it the way I 
> wanted. 
> In my world I think of a lattice as given by a basis and my bases are over 
> the 
> integers. I failed to construct that. However, revisiting that, it seems I 
> was 
> an idiot and I merely need: 
>
> sage: ZZn = FreeModule(ZZ, 10) 
> sage: B = random_matrix(ZZ, 10, 10) # <- my basis 
> sage: L = ZZn.submodule(B) 
>   
> I guess I could move my new class (specialising to ZZ) at 
> http://trac.sagemath.org/ticket/15976 to fit into there and add a 
> short-hand 
> constructor? 
>
> Probably the constructor you want (to preserve the data of B) is: 

sage: L = ZZn.submodule_with_basis(B)

and the LLL or BKZ reductions should use this constructor to 
return a submodule (equal to the original) with the preferred 
reduced basis.

I had hoped that someone would pick up the quadratic module 
class and add functionality.  In Magma the lattice class was (in 
my view) too rigid in not admitting lattices which were anything 
but positive definite, and -- even over the integers -- in order to 
implement local invariants (over ZZ_p) using the general free 
modules class.  This would be fine if lattices were a special 
subtype of the general class, but they don't (or didn't) behave 
the same as other free modules.

--David

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to