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 Details
-
ordering
monomial order used for standard basis
-
-
Method Details
-
getMonomialOrder
The monomial order used for Groebner basis -
changeOrder
Set the monomial order used for Groebner basis of this ideal -
normalForm
Reducespoly
modulo this ideal -
getOriginalGenerators
Returns the list of original generators -
getGroebnerBasis
Groebner basis of this ideal -
nBasisGenerators
public int nBasisGenerators()Returns the number of elements in Groebner basis -
getBasisGenerator
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
Ideal of leading terms -
contains
Tests whether specified poly is an element of this ideal -
contains
Whether this ideal contains the specified one -
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
Whether this ideal contains the product of two specified ideals -
radicalContains
Tests whetherpoly
belongs to the radical of this -
union
Returns the union of this and oth -
union
Returns the union of this and oth -
multiply
Returns the product of this and oth -
square
Returns squared ideal -
pow
Returns this in a power of exponent -
multiply
Returns the product of this and oth -
intersection
Returns the intersection of this and oth -
quotient
Returns the quotient this : oth -
quotient
Returns the quotient this : oth -
equals
-
hashCode
public int hashCode() -
toString
Description copied from interface:Stringifiable
convert this to string with the use of stringifier- Specified by:
toString
in interfaceStringifiable<Term extends AMonomial<Term>>
-
toString
-
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
-