Discussion

Tasks

  1. Write categories QuoDVRs, MatrixAlgebrasOverQuoDVRs, FreeModulesOverQuoDVRs. Here QuoDVR stands for "quotient of a discrete valuation ring."

  2. Write LUP_decomposition in MatrixAlgebrasOverQuasiDVRs.ElementMethods. See http://en.wikipedia.org/wiki/LU_decomposition

  3. 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))
  4. 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).

  5. 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).