This is not sso different from the situation with (say) finite abelian groups, where the user might start with 2 generators of orders 2 and 3 and internally you work with one generator of order 6. Now th object has .use_defined_gens() and some sort of .canonical_gens().
For lattices, one could agree never to change the basis returned by L.basis(), but store other bases (with respective transformations) which would be accessed by L.LLL_basis() etc. After all, LLL is not a "lattice reduction algorithm" -- it does not change the lattice! -- but it as "lattice basis reduction" algorithm. It hardy seems necessary to have a separate class for lattice bases though. John On 4 April 2014 11:36, Volker Braun <vbraun.n...@gmail.com> wrote: > On Friday, April 4, 2014 11:19:11 AM UTC+1, Martin Albrecht wrote: >> >> existing one. However, in my case it would seem natural to improve the >> basis >> during the lifetime of an object. > > > IMHO that is always going to cause tears later on as the end-user isn't > going to be aware that this modified all references to the lattice. The only > downside of returning new objects is memory, and I'm pretty sure your > problem runs of CPU before RAM. If you don't like that your lattice has a > built-in basis then you could return new BasisOfLattice (say) objects. > > -- > 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. -- 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.