Reducing Vectors Relative to a Subspace#

ReduceVector(W, v): ModTupRng, ModTupRngElt -> ModTupRngElt#

(Function.) Given a vector \(v\) from a tuple module \(V\) and a submodule \(W\) of \(V\), return the reduction of \(v\) with respect to \(W\) (that is, the canonical representative of the coset \(v + W\)).

Note that the reduction is done with respect to the standard inner product.

ReduceVector(W, ~v): ModTupRng, ModTupRngElt#

(Procedure.) Given a vector \(v\) from a tuple module \(V\) and a submodule \(W\) of \(V\), replace \(v\) with its reduction of with respect to \(W\) (that is, the canonical representative of the coset \(v + W\)).

Note that the reduction is done with respect to the standard inner product.

DecomposeVector(U, v): ModTupRng, ModTupRngElt -> ModTupRngElt, ModTupRngElt#

Given a vector \(v\) from a tuple module \(V\) and a submodule \(U\) of \(V\), return the unique \(u\) in \(U\) and \(w\) in the complement to \(U\) in \(U + <v>\) such that \(v = u + w\).

Note that the reduction is done with respect to the standard inner product, and the complement noted above need not be orthogonal.