Goal -- Separate the precision for matrices and vectors from the approximation of their entries.
Type -- precision handling, basic features
Priority -- High
Difficulty -- Hard
Prerequisites -- None
Background -- linear algebra
Contributors -- Xavier Caruso, David Roe
Progress - Xavier Caruso and David Roe have been working on precision for matrices and vectors, and improving the algorithms for computing hermite form, smith form for matrices over quasi-DVRs.
Related Tickets --
Discussion
Tasks
Write categories QuoDVRs, MatrixAlgebrasOverQuoDVRs, FreeModulesOverQuoDVRs. Here QuoDVR stands for "quotient of a discrete valuation ring."
Write LUP_decomposition in MatrixAlgebrasOverQuasiDVRs.ElementMethods. See http://en.wikipedia.org/wiki/LU_decomposition
- Define precision classes for vectors (e.g. flat, jagged, concave, submodule) and for matrices (e.g. flat, jagged, planar, column (submodule of codomain), row (submodule of domain))
Define a vector class that separates data from precision. The approximation could be a vector over another QuoDVR or over ZZ for example. Override vector operations to compute an approximation separately from the precision of the answer (mostly arithmetic).
Define a matrix class that separates data from precision. The appoximation could be a matrix over another (finite) QuoDVR or over ZZ for example. Override necessary matrix methods (quite a few).