Hi Jan, it is my feeling that Nils is absolutely right with his remark. I looked myself quickly through http://www.sagemath.org/doc/reference/sage/matrix/matrix_integer_dense.html and what is written there about LLL --- there are at least two number theoretic packages mentioned there, that Sage relies on ("... NTL library by Victor Shoup or fpLLL library by Damien Stehle ...") and several choices of which floating point number representations to use, each of which has its purpose ('fp' - double precision: NTL’s FP or fpLLL’s double, 'qd' - quad doubles: NTL’s QP, 'xd' - extended exponent: NTL’s XD or fpLLL’s dpe, 'rr' - arbitrary precision: NTL’RR or fpLLL’s MPFR"). So my first guess had been, that it is not only important to allow for several different internal algorithms and different internal representations, but to let the user choose them.
Then I read the post from Nils, and I think that he's absolutely right about the fact that what you really want from the structure of RR^n is "only" the inner product --- so indeed you need not to store the location of the basis vectors "inside RR^n", but your basis vectors are just the standard ones ([1, 0, 0, ...], [0, 1, 0, ...], ...) in ZZ^n, and all you need to carry around is the Gram matrix (i.e. the information about the inner product), in order to be able to calculate and compare the "length" of vectors, the volume of a Voronoi cell, and such. After all, if you finally want to go for something like "lattices over general Dedekind domains" and apply algorithms to find "shortest length vectors", you'll need a notion of "length" there ... and the general way to encode such information are "inner products". So I guess I leave this discussion and let the others continue, that know more about the topic. Cheers, Georg -- To post to this group, send an email to [email protected] To unsubscribe from this group, send an email to [email protected] For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org
