Class AMonomial<Term extends AMonomial<Term>>

java.lang.Object
cc.redberry.rings.poly.multivar.DegreeVector
cc.redberry.rings.poly.multivar.AMonomial<Term>
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
Monomial, MonomialZp64

public abstract class AMonomial<Term extends AMonomial<Term>>
extends DegreeVector
Abstract monomial (degree vector + coefficient). The parent class for MonomialZp64 and Monomial. Instances are immutable. Algebraic operations on monomials (multiplication and division) are specified in IMonomialAlgebra.
Since:
2.3
See Also:
DegreeVector, IMonomialAlgebra, Serialized Form
  • Constructor Details

    • AMonomial

      protected AMonomial​(int[] exponents, int totalDegree)
      Parameters:
      exponents - exponents
      totalDegree - total degree (sum of exponents)
    • AMonomial

      protected AMonomial​(int[] exponents)
      Parameters:
      exponents - exponents
    • AMonomial

      protected AMonomial​(DegreeVector degreeVector)
      Parameters:
      degreeVector - DegreeVector
  • Method Details

    • dv

      public final DegreeVector dv()
      Drop the coefficient
      Overrides:
      dv in class DegreeVector
    • setCoefficientFrom

      public abstract Term setCoefficientFrom​(Term oth)
      Sets coefficient of this with coefficient of oth
    • setDegreeVector

      public abstract Term setDegreeVector​(DegreeVector oth)
      Sets the degree vector
    • setDegreeVector

      public abstract Term setDegreeVector​(int[] exponents, int totalDegree)
      Sets the degree vector
    • forceSetDegreeVector

      public abstract Term forceSetDegreeVector​(int[] exponents, int totalDegree)
      Sets the degree vector
    • setDegreeVector

      public final Term setDegreeVector​(int[] exponents)
      Sets the degree vector
    • multiply

      public final Term multiply​(DegreeVector oth)
      Multiplies this by oth
    • multiply

      public final Term multiply​(int[] oth)
      Multiplies this by oth
    • divideOrNull

      public final Term divideOrNull​(DegreeVector divider)
      Gives quotient this / oth or null if exact division is not possible (e.g. a^2*b^3 / a^3*b^5)
    • divideOrNull

      public final Term divideOrNull​(int[] divider)
      Gives quotient this / oth or null if exact division is not possible (e.g. a^2*b^3 / a^3*b^5)
    • joinNewVariable

      public final Term joinNewVariable()
      Joins new variable (with zero exponent) to degree vector
    • joinNewVariables

      public final Term joinNewVariables​(int n)
      Joins new variables (with zero exponents) to degree vector
    • joinNewVariables

      public final Term joinNewVariables​(int newNVariables, int[] mapping)
      internal API
    • setNVariables

      public final Term setNVariables​(int n)
      Sets the number of variables
    • select

      public final Term select​(int var)
      Sets exponents of all variables except the specified variable to zero
    • select

      public final Term select​(int[] variables)
      Set's exponents of all variables except specified variables to zero
    • dropSelect

      public final Term dropSelect​(int[] variables)
      Picks only specified exponents
    • range

      public final Term range​(int from, int to)
      Selects range from this
      Parameters:
      from - from inclusive
      to - to exclusive
    • setZero

      public final Term setZero​(int var)
      Set exponent of specified var to zero
    • toZero

      public final Term toZero()
      Set all exponents to zero
    • setZero

      public final Term setZero​(int[] variables)
      Set exponents of specified variables to zero
    • without

      public final Term without​(int variable)
      Drops specified variable (number of variables will be reduced)
    • without

      public final Term without​(int[] variables)
      Drops specified variables (number of variables will be reduced)
    • insert

      public final Term insert​(int variable)
      Inserts new variable (with zero exponent)
    • insert

      public final Term insert​(int variable, int count)
      Inserts new variables (with zero exponent)
    • map

      public final Term map​(int nVariables, int[] mapping)
      Renames old variables to new according to mapping
      Parameters:
      nVariables - new total number of variables
      mapping - mapping from old variables to new variables
    • set

      public final Term set​(int variable, int exponent)
      Set's exponent of specified variable to specified value
      Parameters:
      variable - the variable
      exponent - new exponent
    • dvToString

      public final String dvToString​(String[] vars)
    • dvToString

      public final String dvToString()