Common Lisp Package: COM.SUPERADDITIVE.CL-BUCHBERGER

README:

FUNCTION

Public

DEGREE (M)

Returns the total degree of a monomial

GREVLEX> (M1 M2)

Graded Reverse Lex Order

GRLEX> (M1 M2)

Graded Lex Order

GROEBNER (POLYNOMIALS)

Returns a Groebner basis for the ideal generated by the specified array of polynomials.

LEX> (M1 M2)

Lexicographic Order

MAKE-IDEAL (GENERATORS)

Create a new ideal generated by the elements contained in the `generators' list.

MAPTERM (FUNCTION POLYNOMIAL)

Apply FUNCTION to successive terms of POLYNOMIAL. Return list of FUNCTION return values.

REDUCE-GB (G)

Returns a reduced Groebner basis.

REDUCED-GROEBNER (F)

Computes and reduces a Groebner basis of the ideal generated by F.

S-POLY (F G)

Returns the S-polynomial of f and g

Undocumented

MAKE-POLYNOMIAL (TERM-LIST &KEY (RING *RING*))

Private

CRITERION (G B I J FI FJ)

Returns t if S_{ij} has to be considered

VECTOR+ (V1 V2)

Returns the sum of the two vectors V1 and V2.

VECTOR- (V1 V2)

Returns the difference of the two vectors V1 and V2.

VECTOR-ZERO-P (V)

Returns T if every compoment in V is zero.

VECTOR= (V1 V2)

Returns T if both vectors V1 and V2 have the same components, NIL otherwise.

VECTOR> (V1 V2)

Returns T if every component in V1 is greater than the corresponding component in V2, NIL otherwise.

Undocumented

MAKE-INDEX-SET (S)

NORMAL-FORM (F G)

PAIR-MEMBER (L M B)

TERMS->LIST (POLY)

MACRO

Public

Undocumented

DOTERMS ((VAR POLY &OPTIONAL (RESULTFORM 'NIL)) &BODY BODY)

WITH-MONOMIAL-ORDERING (ORDERING &BODY BODY)

WITH-POLYNOMIAL-RING (RING &BODY BODY)

GENERIC-FUNCTION

Public

BASIS (IDEAL)

Returns an array of generators for `ideal'.

LC (POLY)

Returns the leading coefficient of a polynomial

LM (POLY)

Returns the leading monomial of a polynomial. That is, the leading term with 1 as coefficient

LT (POLY)

Returns the leading term of a polynomial.

MULTIDEG (POLY)

Returns the multidegree of a polynomial

RING-EQUAL-P (E1 E2)

Returns t if e1 equals e2, nil otherwise

RING-IDENTITY-P (ELEMENT)

Returns t if element is the multiplicative identity, nil otherwise

RING-LCM (E1 E2)

Returns the LCM of e1 and e2

RING-ZERO-P (ELEMENT)

Returns t if element is zero, nil otherwise

Undocumented

MEMBER-P (ELEMENT IDEAL)

RING* (ELEMENT &REST MORE-ELEMENTS)

RING+ (ELEMENT &REST MORE-ELEMENTS)

RING- (ELEMENT &REST MORE-ELEMENTS)

RING/ (ELEMENT &REST MORE-ELEMENTS)

Private

ADD (E1 E2)

Adds ring elements

DIV (E1 E2)

Divides ring elements

DIVIDES-P (E1 E2)

Returns t if e1 divides e2 in the base ring

DIVMOD (ELEMENT DIVISORS)

Returns quotient(s) and remainder if we are working in an Euclidean ring.

ELEMENT->STRING (ELEMENT &KEY RING LEADING-TERM &ALLOW-OTHER-KEYS)

Returns a human-readable string representation of an element

MUL (E1 E2)

Multiplies ring elements

RING-COPY (ELEMENT)

Returns a deep copy of an element

SUB (E1 E2)

Subtracts ring elements

Undocumented

OPERANDS (CONDITION)

RING-MOD (ELEMENT &REST MORE-ELEMENTS)

SLOT-ACCESSOR

Private

Undocumented

BASE-FIELD (OBJECT)

BASE-RING (OBJECT)

SETFBASE-RING (NEW-VALUE OBJECT)

COEFFICIENT (OBJECT)

SETFCOEFFICIENT (NEW-VALUE OBJECT)

GENERATORS (OBJECT)

SETFGENERATORS (NEW-VALUE OBJECT)

MONOMIAL (OBJECT)

SETFMONOMIAL (NEW-VALUE OBJECT)

RING (OBJECT)

SETFRING (NEW-VALUE OBJECT)

TERMS (OBJECT)

SETFTERMS (NEW-VALUE OBJECT)

VARIABLES (OBJECT)

VARIABLE

Public

*MONOMIAL-ORDERING*

Specifies the ordering of monomials in a polynomial

*RING*

Default polynomial ring

CLASS

Public

Undocumented

POLYNOMIAL

POLYNOMIAL-RING

Private

RING (OBJECT)

Base class for rings.

RING-ELEMENT

Base class for ring elements.

Undocumented

IDEAL

TERM

CONDITION

Private

Undocumented

RING-DIVISION-BY-ZERO