Class Ideal<Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>>

java.lang.Object
cc.redberry.rings.poly.multivar.Ideal<Term,​Poly>
All Implemented Interfaces:
Stringifiable<Poly>, Serializable

public final class Ideal<Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>>
extends Object
implements Stringifiable<Poly>, Serializable
Ideal represented by its Groebner basis.
Since:
2.3
See Also:
Serialized Form
  • Field Details

  • Method Details

    • getMonomialOrder

      public Comparator<DegreeVector> getMonomialOrder()
      The monomial order used for Groebner basis
    • changeOrder

      public Ideal<Term,​Poly> changeOrder​(Comparator<DegreeVector> newMonomialOrder)
      Set the monomial order used for Groebner basis of this ideal
    • normalForm

      public Poly normalForm​(Poly poly)
      Reduces poly modulo this ideal
    • getOriginalGenerators

      public List<Poly> getOriginalGenerators()
      Returns the list of original generators
    • getGroebnerBasis

      public List<Poly> getGroebnerBasis()
      Groebner basis of this ideal
    • nBasisGenerators

      public int nBasisGenerators()
      Returns the number of elements in Groebner basis
    • getBasisGenerator

      public Poly getBasisGenerator​(int i)
      Returns i-th element of Groebner basis
    • isTrivial

      public boolean isTrivial()
      Whether this ideal is the whole ring (basis consists of pne constant polynomial)
    • isProper

      public boolean isProper()
      Whether this is a proper ideal
    • isEmpty

      public boolean isEmpty()
      Whether this ideal is empty
    • isPrincipal

      public boolean isPrincipal()
      Whether this ideal is principal
    • isHomogeneous

      public boolean isHomogeneous()
      Whether this ideal is homogeneous
    • isMonomial

      public boolean isMonomial()
      Whether this ideal is monomial
    • isMaximal

      public boolean isMaximal()
      Returns true if this ideal is maximal (that is its affine variety has only one point)
    • ltIdeal

      public Ideal<Term,​Poly> ltIdeal()
      Ideal of leading terms
    • contains

      public boolean contains​(Poly poly)
      Tests whether specified poly is an element of this ideal
    • contains

      public boolean contains​(Ideal<Term,​Poly> oth)
      Whether this ideal contains the specified one
    • hilbertSeries

      public GroebnerBases.HilbertSeries hilbertSeries()
      Hilbert-Poincare series of this ideal
    • dimension

      public int dimension()
      Returns the affine dimension of this ideal
    • degree

      public int degree()
      Returns the affine degree of this ideal
    • containsProduct

      public boolean containsProduct​(Ideal<Term,​Poly> a, Ideal<Term,​Poly> b)
      Whether this ideal contains the product of two specified ideals
    • radicalContains

      public boolean radicalContains​(Poly poly)
      Tests whether poly belongs to the radical of this
    • union

      public Ideal<Term,​Poly> union​(Poly oth)
      Returns the union of this and oth
    • union

      public Ideal<Term,​Poly> union​(Ideal<Term,​Poly> oth)
      Returns the union of this and oth
    • multiply

      public Ideal<Term,​Poly> multiply​(Ideal<Term,​Poly> oth)
      Returns the product of this and oth
    • square

      public Ideal<Term,​Poly> square()
      Returns squared ideal
    • pow

      public Ideal<Term,​Poly> pow​(int exponent)
      Returns this in a power of exponent
    • multiply

      public Ideal<Term,​Poly> multiply​(Poly oth)
      Returns the product of this and oth
    • intersection

      public Ideal<Term,​Poly> intersection​(Ideal<Term,​Poly> oth)
      Returns the intersection of this and oth
    • quotient

      public Ideal<Term,​Poly> quotient​(Poly oth)
      Returns the quotient this : oth
    • quotient

      public Ideal<Term,​Poly> quotient​(Ideal<Term,​Poly> oth)
      Returns the quotient this : oth
    • equals

      public boolean equals​(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString​(IStringifier<Poly> stringifier)
      Description copied from interface: Stringifiable
      convert this to string with the use of stringifier
      Specified by:
      toString in interface Stringifiable<Term extends AMonomial<Term>>
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • create

      public static <Term extends AMonomial<Term>,​ Poly extends AMultivariatePolynomial<Term,​ Poly>> Ideal<Term,​Poly> create​(List<Poly> generators)
      Creates ideal given by a list of generators. Groebner basis with respect to GREVLEX order will be used.
    • create

      public static <Term extends AMonomial<Term>,​ Poly extends AMultivariatePolynomial<Term,​ Poly>> Ideal<Term,​Poly> create​(Poly... generators)
      Creates ideal given by a list of generators. Groebner basis with respect to GREVLEX order will be used.
    • create

      public static <Term extends AMonomial<Term>,​ Poly extends AMultivariatePolynomial<Term,​ Poly>> Ideal<Term,​Poly> create​(List<Poly> generators, Comparator<DegreeVector> monomialOrder)
      Creates ideal given by a list of generators. Groebner basis with respect to specified monomialOrder will be used.
      Parameters:
      monomialOrder - monomial order for unique Groebner basis of the ideal
    • trivial

      public static <Term extends AMonomial<Term>,​ Poly extends AMultivariatePolynomial<Term,​ Poly>> Ideal<Term,​Poly> trivial​(Poly factory)
      Creates trivial ideal (ideal = ring)
    • trivial

      public static <Term extends AMonomial<Term>,​ Poly extends AMultivariatePolynomial<Term,​ Poly>> Ideal<Term,​Poly> trivial​(Poly factory, Comparator<DegreeVector> monomialOrder)
      Creates trivial ideal (ideal = ring)
    • empty

      public static <Term extends AMonomial<Term>,​ Poly extends AMultivariatePolynomial<Term,​ Poly>> Ideal<Term,​Poly> empty​(Poly factory)
      Creates empty ideal
    • empty

      public static <Term extends AMonomial<Term>,​ Poly extends AMultivariatePolynomial<Term,​ Poly>> Ideal<Term,​Poly> empty​(Poly factory, Comparator<DegreeVector> monomialOrder)
      Creates empty ideal
    • parse

      public static <E> Ideal<Monomial<E>,​MultivariatePolynomial<E>> parse​(String[] generators, Ring<E> field, String[] variables)
      Shortcut for parse
    • parse

      public static <E> Ideal<Monomial<E>,​MultivariatePolynomial<E>> parse​(String[] generators, Ring<E> field, Comparator<DegreeVector> monomialOrder, String[] variables)
      Shortcut for parse