creation
make (vars: ARRAY[INDETERMINATE]; weights: ARRAY2[INTEGER])
n x n array of integers
does not copy weights or vars; change the original object, and you change this term_ordering!
require
vars /= Void;
weights /= Void;
vars.count = weights.column_count;
weights.line_count = weights.column_count
make_lex (vars: ARRAY[INDETERMINATE])
makes a purely lexicographic term ordering
vars[1] > vars[2] > ... > vars[vars.length]
does not copy vars; change the original object, and you change this term_ordering!
require
vars /= Void
make_grlex (vars: ARRAY[INDETERMINATE])
makes a total-degree term ordering
vars[1] > vars[2] > ... > vars[vars.length]
does not copy vars; change the original object, and you change this term_ordering!
require
vars /= Void
make_tdeg (vars: ARRAY[INDETERMINATE])
make_tdeg is a synonym for make_grlex
feature(s) from TERM_ORDERING
variables: ARRAY[INDETERMINATE]
weight_matrix: ARRAY2[INTEGER]
make (vars: ARRAY[INDETERMINATE]; weights: ARRAY2[INTEGER])
n x n array of integers
does not copy weights or vars; change the original object, and you change this term_ordering!
require
vars /= Void;
weights /= Void;
vars.count = weights.column_count;
weights.line_count = weights.column_count
make_lex (vars: ARRAY[INDETERMINATE])
makes a purely lexicographic term ordering
vars[1] > vars[2] > ... > vars[vars.length]
does not copy vars; change the original object, and you change this term_ordering!
require
vars /= Void
make_grlex (vars: ARRAY[INDETERMINATE])
makes a total-degree term ordering
vars[1] > vars[2] > ... > vars[vars.length]
does not copy vars; change the original object, and you change this term_ordering!
require
vars /= Void
make_tdeg (vars: ARRAY[INDETERMINATE])
make_tdeg is a synonym for make_grlex
weight_of (m: MONOMIAL): ARRAY[INTEGER]
does not require that m be simplified
require
m /= Void
max (m1: MONOMIAL; m2: MONOMIAL): MONOMIAL
returns Void if m1=m2
require
m1 /= Void;
m2 /= Void
ensure
Result = Void implies m1.is_equal(m2)
leading_monomial (f: POLYNOMIAL): MONOMIAL
infix "//" (polys: ARRAY[POLYNOMIAL]): ARRAY[POLYNOMIAL]
polys @ 1 is the polynomial THAT you want to reduce
polys @ 2, ..., polys @ polys.count are the polynomials OVER WHICH you want to reduce
Result @ 1 is the remainder
Result @ 2, ..., Result @ polys.count are the quotients corresponding to polys @ 2, ..., polys @ polys.count
require
polys /= Void;
all_nonzero(polys)
infix "\\" (polys: ARRAY[POLYNOMIAL]): POLYNOMIAL
returns a remainder on division of Current by polys
this remainder is not unique for more than one variable, unless polys is a Gr�bner basis
choosing a different order for polys could change the remainder
require
all_nonzero(polys)
all_nonzero (polys: ARRAY[POLYNOMIAL]): BOOLEAN
indicates whether all the polynomials of polys are nonzero
print_text
print_latex
end of TERM_ORDERING