CanonicalBasis( V )
returns the canonical basis of the row space V. This is a special semi-echelonized basis (see SemiEchelonBasis), with the additional properties that for j > i the position of the pivot of row j is bigger than that of the pivot of row i, and that the pivot columns contain exactly one nonzero entry.
gap> v:= GF(2)^2; v.name:= "v";; RowSpace( GF(2), [ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ] ) gap> cb:= CanonicalBasis( v ); CanonicalBasis( v ) gap> cb.vectors; [ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ]
The canonical basis is obtained on applying a full Gaussian elimination to
the generators of V, using BaseMat BaseMat
.
If the component V.semiEchelonBasis
is bound then this basis is used to
compute the canonical basis, otherwise TriangulizeMat
is called.
GAP 3.4.4