Package cc.redberry.rings.poly.multivar
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 Summary
Fields Modifier and Type Field Description Comparator<DegreeVector>
ordering
monomial order used for standard basis
-
Method Summary
Modifier and Type Method Description Ideal<Term,Poly>
changeOrder(Comparator<DegreeVector> newMonomialOrder)
Set the monomial order used for Groebner basis of this idealboolean
contains(Ideal<Term,Poly> oth)
Whether this ideal contains the specified oneboolean
contains(Poly poly)
Tests whether specified poly is an element of this idealboolean
containsProduct(Ideal<Term,Poly> a, Ideal<Term,Poly> b)
Whether this ideal contains the product of two specified idealsstatic <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Ideal<Term,Poly>create(List<Poly> generators)
Creates ideal given by a list of generators.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.static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Ideal<Term,Poly>create(Poly... generators)
Creates ideal given by a list of generators.int
degree()
Returns the affine degree of this idealint
dimension()
Returns the affine dimension of this idealstatic <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Ideal<Term,Poly>empty(Poly factory)
Creates empty idealstatic <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Ideal<Term,Poly>empty(Poly factory, Comparator<DegreeVector> monomialOrder)
Creates empty idealboolean
equals(Object o)
Poly
getBasisGenerator(int i)
Returns i-th element of Groebner basisList<Poly>
getGroebnerBasis()
Groebner basis of this idealComparator<DegreeVector>
getMonomialOrder()
The monomial order used for Groebner basisList<Poly>
getOriginalGenerators()
Returns the list of original generatorsint
hashCode()
GroebnerBases.HilbertSeries
hilbertSeries()
Hilbert-Poincare series of this idealIdeal<Term,Poly>
intersection(Ideal<Term,Poly> oth)
Returns the intersection of this and othboolean
isEmpty()
Whether this ideal is emptyboolean
isHomogeneous()
Whether this ideal is homogeneousboolean
isMaximal()
Returns true if this ideal is maximal (that is its affine variety has only one point)boolean
isMonomial()
Whether this ideal is monomialboolean
isPrincipal()
Whether this ideal is principalboolean
isProper()
Whether this is a proper idealboolean
isTrivial()
Whether this ideal is the whole ring (basis consists of pne constant polynomial)Ideal<Term,Poly>
ltIdeal()
Ideal of leading termsIdeal<Term,Poly>
multiply(Ideal<Term,Poly> oth)
Returns the product of this and othIdeal<Term,Poly>
multiply(Poly oth)
Returns the product of this and othint
nBasisGenerators()
Returns the number of elements in Groebner basisPoly
normalForm(Poly poly)
Reducespoly
modulo this idealstatic <E> Ideal<Monomial<E>,MultivariatePolynomial<E>>
parse(String[] generators, Ring<E> field, String[] variables)
Shortcut for parsestatic <E> Ideal<Monomial<E>,MultivariatePolynomial<E>>
parse(String[] generators, Ring<E> field, Comparator<DegreeVector> monomialOrder, String[] variables)
Shortcut for parseIdeal<Term,Poly>
pow(int exponent)
Returns this in a power of exponentIdeal<Term,Poly>
quotient(Ideal<Term,Poly> oth)
Returns the quotient this : othIdeal<Term,Poly>
quotient(Poly oth)
Returns the quotient this : othboolean
radicalContains(Poly poly)
Tests whetherpoly
belongs to the radical of thisIdeal<Term,Poly>
square()
Returns squared idealString
toString()
String
toString(IStringifier<Poly> stringifier)
convert this to string with the use of stringifierstatic <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Ideal<Term,Poly>trivial(Poly factory)
Creates trivial ideal (ideal = ring)static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Ideal<Term,Poly>trivial(Poly factory, Comparator<DegreeVector> monomialOrder)
Creates trivial ideal (ideal = ring)Ideal<Term,Poly>
union(Ideal<Term,Poly> oth)
Returns the union of this and othIdeal<Term,Poly>
union(Poly oth)
Returns the union of this and oth
-
-
-
Field Detail
-
ordering
public final Comparator<DegreeVector> ordering
monomial order used for standard basis
-
-
Method Detail
-
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
-
getOriginalGenerators
public List<Poly> getOriginalGenerators()
Returns the list of original generators
-
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)
-
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 whetherpoly
belongs to the radical of this
-
multiply
public Ideal<Term,Poly> multiply(Ideal<Term,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
-
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 interfaceStringifiable<Term extends AMonomial<Term>>
-
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 specifiedmonomialOrder
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
-
-