Interface Monomial

All Superinterfaces:
NumericExpression, RationalExpression, SymbolicExpression, SymbolicObject
All Known Subinterfaces:
Constant, Monic, Polynomial, Primitive, PrimitivePower

public interface Monomial extends RationalExpression
A Monomial is the product of a constant and a Monic. The constant is called the "constant factor" of the monomial; the monic is called the "monic factor" of the monomial.
  • Method Details

    • monomialConstant

      Constant monomialConstant(IdealFactory factory)
      Returns the constant factor of this monomial.
      Parameters:
      factory - the ideal factory responsible for this monomial
      Returns:
      the constant factor of this monomial
    • monic

      Monic monic(IdealFactory factory)
      Returns the monic factor of this monomial.
      Parameters:
      factory - the ideal factory responsible for this monomial
      Returns:
      the monic factor of this monomial
    • monomialDegree

      IntegerNumber monomialDegree(NumberFactory factory)
      Returns the degree of the monic where each factor is considered to have degree 1. For example, (X^2+Y^2)^3*Z^2 has monomial degree 5: it has two factors, one of degree 3 and one of degree 2.
      Parameters:
      factory - the NumberFactory used for this operation
      Returns:
      The IntegerNumber represents the monomial degree with NO expansion
    • totalDegree

      IntegerNumber totalDegree(NumberFactory factory)
      The degree of this monomial if it were fully expanded to a polynomial in which the variables cannot be expressed as the sum, product, difference, or quotient of expressions. For example, (X^2+Y^2)^3*Z^2 has total degree 8.
      Parameters:
      factory - the NumberFactory used for this operation
      Returns:
      The IntegerNumber represents total degree of this monomial after full expansion to a polynomial
    • expand

      Monomial[] expand(IdealFactory factory)
      Returns the expansion of this monomial.
      Parameters:
      factory - the ideal factory responsible for this monomial
      Returns:
      term map whose sum is equivalent to this but with no Polynomials.
      See Also:
    • hasNontrivialExpansion

      boolean hasNontrivialExpansion(IdealFactory factory)
      Determines whether or not this monomial could possibly have a non-trivial expansion. A trivial expansion is one consisting of exactly one term.
      Parameters:
      factory - the ideal factory responsible for this monomial
      Returns:
      if false is returned then this monomial has only a trivial expansion, otherwise is might have a nontrivial one
    • termMap

      Monomial[] termMap(IdealFactory factory)
      Returns the term map of this monomial.
      Parameters:
      factory - the ideal factory responsible for this monomial
      Returns:
      a term map whose sum is equivalent to this monomial
      See Also:
    • monomialOrder

      int monomialOrder(IdealFactory factory)
      Computes the "monomial order" of this Monomial. This is defined as follows:

      Another interpretation: consider this symbolic expressions as a rooted tree. Along any path from the root to a leaf, count the number of "+" (addition) operators to occur. (Note that each Polynomial introduces a single addition operator whose argument is a set of terms.) The maximum plus-count (over all paths) is the monomial order.

      Parameters:
      factory - the IdealFactory responsible for this Monomial
      Returns:
      the monomial order of this Monomial
    • lower

      Monomial[] lower(IdealFactory factory)

      Computes a term map from performing a single outer-level expansion. This is in contrast with expand(IdealFactory), which performs a full expansion.

      Suppose the monomial order of this Monomial is d. Then the Monomials occurring in the returned map will have monomial order at most d-1. Furthermore, if this is a Polynomial, the

      invalid reference
      Monomials
      occurring in the returned map will have monomial order at most d-2 (assuming d>=2).

      Parameters:
      factory - the IdealFactory responsible for this Monomial
      Returns:
      a term map with lower monomial order.
    • powerInt

      Monomial powerInt(IdealFactory factory, IntegerNumber exponent)
      Description copied from interface: RationalExpression
      Computes an expression equivalent to raising this expression to the exponent power. In this case the exponent is an IntegerNumber.
      Specified by:
      powerInt in interface RationalExpression
      Parameters:
      factory - the ideal factory responsible for this expression
      exponent - the power to which this expression should be raised, must be positive
      Returns:
      an expression equivalent to raising this expression to the exponent power
    • maxDegreeOf

      IntegerNumber maxDegreeOf(NumberFactory factory, Primitive primitive)
      Computes the maximum degree to which primitive occurs in this Monomial. For example the primitive X occurs with max degree 11 in XY(X+Z)^10.
      Parameters:
      factory - the NumberFactory used for this operation
      primitive - the Primitive which must have same type as this; it is possible the primitive does not occur at all in this, in which case the result is 0
      Returns:
      The IntegerNumber represents the maximum degree to which primitive occurs in this
    • getTruePrimitives

      Set<Primitive> getTruePrimitives()
      Returns the Primitives which are not Polynomials occurring in this Monomial. These are essentially the "variables" occurring in the polynomial expression.
      Returns:
      the set of primitives that are not polynomials occurring herein