This is very preliminary documentation. These functions are about matrices
which define term orderings. They expect and return matrices over
MakeTermOrd(ConstMatrixView M)-- produce a matrix (with non-neg integer entries and having same number of columns as
M) which defines a term ordering refining the partial ordering defined by the input matrix
M; error if this cannot be done.
MakeTermOrd(ConstMatrixView M, MachineInt GrDim)-- Same as
MakeTermOrd(M)except that the first
GrDimrows of the output matrix are equal to the first
LexMat(MachineInt n)returns a
ConstMatrixfor "lex" ordering
StdDegLexMat(MachineInt n)returns a
ConstMatrixfor "DegLex" ordering
StdDegRevLexMat(MachineInt n)returns a
ConstMatrixfor "DegRevLex" orderig
XelMat(MachineInt n)returns a
ConstMatrixfor "Xel" ordering
RevLexMat(MachineInt n)returns a
ConstMatrixfor "RevLex" ordering (not a term order!)
ElimMat(IndetsToElim, NumIndets)-- returns a matrix defining an elimination ordering for
ElimHomogMat(IndetsToElim, GradingM)-- returns a matrix defining an elimination ordering for
IndetsToElimwith the added knowledge that it will be used with an ideal homogeneous wrt
IsTermOrdering(M)-- true iff matrix
Mdefines a term ordering
IsPositiveGrading(M)-- true iff
Mdefines a positive grading (i.e. no null columns and first non-zero entry in each column is positive)
The impl for
LexMat is trivial: it is just an
ConstMatrix is available, the impls for
StdDegRevLex are quite
straightforward (but a bit lengthy).
Currently we use the "sparse" matrix for
StdDevRevLex; we may later
change it to the non-neg matrix.
IsTermOrdering is essentially the same as testing
on the whole matrix; this is what the impl does!
Doc is woefully incomplete.
HomogElimMathas been renamed
StdDegRevLexMat(names are now coherent with their counterparts in CoCoA-5)