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

    • Method Detail

      • getMonomialOrder

        public Comparator<DegreeVector> getMonomialOrder()
        The monomial order used for Groebner basis
      • 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
      • 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
      • 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
      • quotient

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

        public int hashCode()
        Overrides:
        hashCode 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)