Package edu.jas.application
Class SolvableIdeal<C extends GcdRingElem<C>>
java.lang.Object
edu.jas.application.SolvableIdeal<C>
- All Implemented Interfaces:
Serializable
,Comparable<SolvableIdeal<C>>
public class SolvableIdeal<C extends GcdRingElem<C>>
extends Object
implements Comparable<SolvableIdeal<C>>, Serializable
Solvable Ideal implements some methods for ideal arithmetic, for example sum,
intersection, quotient. Note: only left ideals at the moment.
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final SolvableGroebnerBaseAbstract
<C> Groebner base engine.private static final boolean
protected boolean
Indicator if list is a Groebner Base.protected boolean
Indicator if list has optimized term order.protected PolynomialList
<C> The data structure is a PolynomialList.private static final org.apache.logging.log4j.Logger
protected final SolvableReduction
<C> Reduction engine.protected SolvableIdeal.Side
Indicator of side of Groebner Base.protected boolean
Indicator if test has been performed if this is a Groebner Base. -
Constructor Summary
ConstructorsConstructorDescriptionConstructor.SolvableIdeal
(GenSolvablePolynomialRing<C> ring, List<GenSolvablePolynomial<C>> F) Constructor.SolvableIdeal
(GenSolvablePolynomialRing<C> ring, List<GenSolvablePolynomial<C>> F, boolean gb) Constructor.SolvableIdeal
(GenSolvablePolynomialRing<C> ring, List<GenSolvablePolynomial<C>> F, boolean gb, boolean topt) Constructor.SolvableIdeal
(GenSolvablePolynomialRing<C> ring, List<GenSolvablePolynomial<C>> F, boolean gb, SolvableIdeal.Side s) Constructor.SolvableIdeal
(GenSolvablePolynomialRing<C> ring, List<GenSolvablePolynomial<C>> F, SolvableIdeal.Side s) Constructor.SolvableIdeal
(PolynomialList<C> list) Constructor.SolvableIdeal
(PolynomialList<C> list, boolean gb) Constructor.SolvableIdeal
(PolynomialList<C> list, boolean gb, boolean topt) Constructor.SolvableIdeal
(PolynomialList<C> list, boolean gb, boolean topt, SolvableIdeal.Side s) Constructor.SolvableIdeal
(PolynomialList<C> list, boolean gb, boolean topt, SolvableGroebnerBaseAbstract<C> bb) Constructor.SolvableIdeal
(PolynomialList<C> list, boolean gb, boolean topt, SolvableGroebnerBaseAbstract<C> bb, SolvableReduction<C> red) Constructor.SolvableIdeal
(PolynomialList<C> list, boolean gb, boolean topt, SolvableGroebnerBaseAbstract<C> bb, SolvableReduction<C> red, SolvableIdeal.Side s) Constructor.SolvableIdeal
(PolynomialList<C> list, boolean gb, SolvableIdeal.Side s) Constructor.SolvableIdeal
(PolynomialList<C> list, boolean gb, SolvableGroebnerBaseAbstract<C> bb) Constructor.SolvableIdeal
(PolynomialList<C> list, boolean gb, SolvableGroebnerBaseAbstract<C> bb, SolvableReduction<C> red) Constructor.SolvableIdeal
(PolynomialList<C> list, SolvableGroebnerBaseAbstract<C> bb, SolvableReduction<C> red) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionAnnihilator for ideal modulo this ideal.Annihilator for element modulo this ideal.int
Ideal common zero test.int
compareTo
(SolvableIdeal<C> L) SolvableIdeal comparison.Construct univariate polynomials of minimal degree in all variables in zero dimensional ideal(G).constructUnivariate
(int i) Construct univariate polynomial of minimal degree in variable i in zero dimensional ideal(G).boolean
contains
(SolvableIdeal<C> B) Solvable ideal containment.boolean
Solvable ideal containment.boolean
Solvable ideal containment.copy()
Clone this.Ideal dimension.void
doGB()
Do Groebner Base.Eliminate.boolean
Comparison with any other object.GB()
Groebner Base.getList()
Get the List of GenSolvablePolynomials.getONE()
Get the one ideal.getRing()
Get the GenSolvablePolynomialRing.getZERO()
Get the zero ideal.int
hashCode()
Hash code for this solvable ideal.Infinite Quotient.Infinite quotient.int
Infinite quotient exponent.Infinite Quotient.Infinite quotient.intersect
(SolvableIdeal<C> B) Intersection.Intersection.intersect
(List<SolvableIdeal<C>> Bl) Intersection.Inverse for element modulo this ideal.boolean
isAnnihilator
(SolvableIdeal<C> H, SolvableIdeal<C> A) Test for annihilator of ideal modulo this ideal.boolean
Test for annihilator of element modulo this ideal.boolean
isGB()
Test if this is a left Groebner base.boolean
Test if this ideal is maximal.boolean
isONE()
Test if ONE is contained in the ideal.boolean
Radical membership test.boolean
Test if this is a right Groebner base.boolean
Test if this is a twosided Groebner base.boolean
Test if element is a unit modulo this ideal.boolean
isZERO()
Test if ZERO ideal.Left product.Normalform for element.Normalform for list of solvable elements.power
(int d) Power.product
(SolvableIdeal<C> B) Product.Product.quotient
(SolvableIdeal<C> H) Quotient.Quotient.rightGB()
Groebner Base.sum
(SolvableIdeal<C> B) Solvable ideal summation.Solvable summation.sum
(List<GenSolvablePolynomial<C>> L) Solvable summation.toScript()
Get a scripting compatible string representation.toString()
String representation of the solvable ideal.Groebner Base.Univariate head term degrees.
-
Field Details
-
logger
private static final org.apache.logging.log4j.Logger logger -
debug
private static final boolean debug -
list
The data structure is a PolynomialList. -
isGB
protected boolean isGBIndicator if list is a Groebner Base. -
sided
Indicator of side of Groebner Base. -
testGB
protected boolean testGBIndicator if test has been performed if this is a Groebner Base. -
isTopt
protected boolean isToptIndicator if list has optimized term order. -
bb
Groebner base engine. -
red
Reduction engine.
-
-
Constructor Details
-
SolvableIdeal
Constructor.- Parameters:
ring
- solvable polynomial ring
-
SolvableIdeal
Constructor.- Parameters:
ring
- solvable polynomial ringF
- list of solvable polynomials
-
SolvableIdeal
public SolvableIdeal(GenSolvablePolynomialRing<C> ring, List<GenSolvablePolynomial<C>> F, boolean gb) Constructor.- Parameters:
ring
- solvable polynomial ringF
- list of solvable polynomialsgb
- true if F is known to be a Groebner Base, else false
-
SolvableIdeal
public SolvableIdeal(GenSolvablePolynomialRing<C> ring, List<GenSolvablePolynomial<C>> F, boolean gb, boolean topt) Constructor.- Parameters:
ring
- solvable polynomial ringF
- list of solvable polynomialsgb
- true if F is known to be a Groebner Base, else falsetopt
- true if term order is optimized, else false
-
SolvableIdeal
public SolvableIdeal(GenSolvablePolynomialRing<C> ring, List<GenSolvablePolynomial<C>> F, SolvableIdeal.Side s) Constructor.- Parameters:
ring
- solvable polynomial ringF
- list of solvable polynomialss
- side variant of ideal or Groebner Base
-
SolvableIdeal
public SolvableIdeal(GenSolvablePolynomialRing<C> ring, List<GenSolvablePolynomial<C>> F, boolean gb, SolvableIdeal.Side s) Constructor.- Parameters:
ring
- solvable polynomial ringF
- list of solvable polynomialsgb
- true if F is known to be a Groebner Base, else falses
- side variant of ideal or Groebner Base
-
SolvableIdeal
Constructor.- Parameters:
list
- solvable polynomial list
-
SolvableIdeal
public SolvableIdeal(PolynomialList<C> list, SolvableGroebnerBaseAbstract<C> bb, SolvableReduction<C> red) Constructor.- Parameters:
list
- solvable polynomial listbb
- Groebner Base enginered
- Reduction engine
-
SolvableIdeal
Constructor.- Parameters:
list
- solvable polynomial listgb
- true if list is known to be a Groebner Base, else false
-
SolvableIdeal
Constructor.- Parameters:
list
- solvable polynomial listgb
- true if list is known to be a Groebner Base, else falsetopt
- true if term order is optimized, else false
-
SolvableIdeal
Constructor.- Parameters:
list
- solvable polynomial listgb
- true if list is known to be a Groebner Base, else falses
- side variant of ideal or Groebner Base
-
SolvableIdeal
Constructor.- Parameters:
list
- solvable polynomial listgb
- true if list is known to be a Groebner Base, else falsetopt
- true if term order is optimized, else falses
- side variant of ideal or Groebner Base
-
SolvableIdeal
public SolvableIdeal(PolynomialList<C> list, boolean gb, SolvableGroebnerBaseAbstract<C> bb, SolvableReduction<C> red) Constructor.- Parameters:
list
- solvable polynomial listgb
- true if list is known to be a Groebner Base, else falsebb
- Groebner Base enginered
- Reduction engine
-
SolvableIdeal
Constructor.- Parameters:
list
- solvable polynomial listgb
- true if list is known to be a Groebner Base, else falsebb
- Groebner Base engine
-
SolvableIdeal
public SolvableIdeal(PolynomialList<C> list, boolean gb, boolean topt, SolvableGroebnerBaseAbstract<C> bb) Constructor.- Parameters:
list
- solvable polynomial listgb
- true if list is known to be a Groebner Base, else falsetopt
- true if term order is optimized, else falsebb
- Groebner Base engine
-
SolvableIdeal
public SolvableIdeal(PolynomialList<C> list, boolean gb, boolean topt, SolvableGroebnerBaseAbstract<C> bb, SolvableReduction<C> red) Constructor.- Parameters:
list
- solvable polynomial listgb
- true if list is known to be a Groebner Base, else falsetopt
- true if term order is optimized, else falsebb
- Groebner Base enginered
- Reduction engine
-
SolvableIdeal
public SolvableIdeal(PolynomialList<C> list, boolean gb, boolean topt, SolvableGroebnerBaseAbstract<C> bb, SolvableReduction<C> red, SolvableIdeal.Side s) Constructor.- Parameters:
list
- solvable polynomial listgb
- true if list is known to be a Groebner Base, else falsetopt
- true if term order is optimized, else falsebb
- Groebner Base enginered
- Reduction engines
- side variant of ideal or Groebner Base
-
-
Method Details
-
copy
Clone this.- Returns:
- a copy of this.
-
getList
Get the List of GenSolvablePolynomials.- Returns:
- (cast) list.list
-
getRing
Get the GenSolvablePolynomialRing.- Returns:
- (cast) list.ring
-
getZERO
Get the zero ideal.- Returns:
- ideal(0)
-
getONE
Get the one ideal.- Returns:
- ideal(1)
-
toString
String representation of the solvable ideal. -
toScript
Get a scripting compatible string representation.- Returns:
- script compatible representation for this Element.
- See Also:
-
equals
Comparison with any other object. Note: If not both ideals are Groebner Bases, then false may be returned even the ideals are equal. -
compareTo
SolvableIdeal comparison.- Specified by:
compareTo
in interfaceComparable<C extends GcdRingElem<C>>
- Parameters:
L
- other solvable ideal.- Returns:
- compareTo() of polynomial lists.
-
hashCode
public int hashCode()Hash code for this solvable ideal. -
isZERO
public boolean isZERO()Test if ZERO ideal.- Returns:
- true, if this is the 0 ideal, else false
-
isONE
public boolean isONE()Test if ONE is contained in the ideal. To test for a proper ideal use! id.isONE()
.- Returns:
- true, if this is the 1 ideal, else false
-
isGB
public boolean isGB()Test if this is a left Groebner base.- Returns:
- true, if this is a left/right/twosided Groebner base, else false
-
doGB
public void doGB()Do Groebner Base. compute the left Groebner Base for this ideal. -
GB
Groebner Base. Get a left Groebner Base for this ideal.- Returns:
- leftGB(this)
-
isTwosidedGB
public boolean isTwosidedGB()Test if this is a twosided Groebner base.- Returns:
- true, if this is a twosided Groebner base, else false
-
twosidedGB
Groebner Base. Get a twosided Groebner Base for this ideal.- Returns:
- twosidedGB(this)
-
isRightGB
public boolean isRightGB()Test if this is a right Groebner base.- Returns:
- true, if this is a right Groebner base, else false
-
rightGB
Groebner Base. Get a right Groebner Base for this ideal.- Returns:
- rightGB(this)
-
contains
Solvable ideal containment. Test if B is contained in this ideal. Note: this is eventually modified to become a Groebner Base.- Parameters:
B
- solvable ideal- Returns:
- true, if B is contained in this, else false
-
contains
Solvable ideal containment. Test if b is contained in this left/right/twosided ideal. Note: this is eventually modified to become a Groebner Base.- Parameters:
b
- solvable polynomial- Returns:
- true, if b is contained in this, else false
-
contains
Solvable ideal containment. Test if each b in B is contained in this left/right/twosided ideal. Note: this is eventually modified to become a Groebner Base.- Parameters:
B
- list of solvable polynomials- Returns:
- true, if each b in B is contained in this, else false
-
sum
Solvable ideal summation. Generators for the sum of ideals. Note: if both ideals are Groebner bases, a Groebner base is returned.- Parameters:
B
- solvable ideal- Returns:
- ideal(this+B)
-
sum
Solvable summation. Generators for the sum of ideal and a polynomial. Note: if this ideal is a Groebner base, a Groebner base is returned.- Parameters:
b
- solvable polynomial- Returns:
- ideal(this+{b})
-
sum
Solvable summation. Generators for the sum of this ideal and a list of polynomials. Note: if this ideal is a Groebner base, a Groebner base is returned.- Parameters:
L
- list of solvable polynomials- Returns:
- ideal(this+L)
-
product
Product. Generators for the product of ideals. Note: if both ideals are Groebner bases, a Groebner base is returned.- Parameters:
B
- solvable ideal- Returns:
- ideal(this*B)
-
product
Product. Generators for the product of this by a polynomial.- Parameters:
b
- solvable polynomial- Returns:
- ideal(this*b)
-
leftProduct
Left product. Generators for the product of a polynomial by this.- Parameters:
b
- solvable polynomial- Returns:
- ideal(b*this)
-
intersect
Intersection. Generators for the intersection of ideals. Using an iterative algorithm.- Parameters:
Bl
- list of solvable ideals- Returns:
- ideal(cap_i B_i), a Groebner base
-
intersect
Intersection. Generators for the intersection of ideals.- Parameters:
B
- solvable ideal- Returns:
- ideal(this \cap B), a Groebner base
-
intersect
Intersection. Generators for the intersection of a ideal with a polynomial ring. The polynomial ring R must be a contraction of this ideal and the TermOrder must be an elimination order.- Parameters:
R
- solvable polynomial ring- Returns:
- ideal(this \cap R)
-
eliminate
Eliminate. Generators for the intersection of this ideal with a solvable polynomial ring. The solvable polynomial ring of this ideal must be a contraction of R and the TermOrder must be an elimination order.- Parameters:
R
- solvable polynomial ring- Returns:
- ideal(this \cap R)
-
quotient
Quotient. Generators for the solvable ideal quotient.- Parameters:
h
- solvable polynomial- Returns:
- ideal(this : h), a Groebner base
-
quotient
Quotient. Generators for the solvable ideal quotient.- Parameters:
H
- solvable ideal- Returns:
- ideal(this : H), a Groebner base
-
infiniteQuotientRab
Infinite quotient. Generators for the infinite solvable ideal quotient.- Parameters:
h
- solvable polynomial- Returns:
- ideal(this : hs), a Groebner base
-
infiniteQuotientExponent
Infinite quotient exponent.- Parameters:
h
- solvable polynomialQ
- quotient this : h^\infinity- Returns:
- s with Q = this : hs
-
infiniteQuotient
Infinite quotient. Generators for the infinite solvable ideal quotient.- Parameters:
h
- solvable polynomial- Returns:
- ideal(this : hs), a Groebner base
-
isRadicalMember
Radical membership test.- Parameters:
h
- solvable polynomial- Returns:
- true if h is contained in the radical of ideal(this), else false.
-
infiniteQuotient
Infinite Quotient. Generators for the solvable ideal infinite quotient.- Parameters:
H
- solvable ideal- Returns:
- ideal(this : Hs), a Groebner base
-
infiniteQuotientRab
Infinite Quotient. Generators for the solvable ideal infinite quotient.- Parameters:
H
- solvable ideal- Returns:
- ideal(this : Hs), a Groebner base
-
power
Power. Generators for the power of this solvable ideal. Note: if this ideal is a Groebner base, a Groebner base is returned.- Parameters:
d
- integer- Returns:
- ideal(this^d)
-
normalform
Normalform for element.- Parameters:
h
- solvable polynomial- Returns:
- left/right/twosided normalform of h with respect to this
-
normalform
Normalform for list of solvable elements.- Parameters:
L
- solvable polynomial list- Returns:
- list of left normalforms of the elements of L with respect to this
-
annihilator
Annihilator for element modulo this ideal.- Parameters:
h
- solvable polynomial- Returns:
- annihilator of h with respect to this
-
isAnnihilator
Test for annihilator of element modulo this ideal.- Parameters:
h
- solvable polynomialA
- solvable ideal- Returns:
- true, if A is the annihilator of h with respect to this
-
annihilator
Annihilator for ideal modulo this ideal.- Parameters:
H
- solvable ideal- Returns:
- annihilator of H with respect to this
-
isAnnihilator
Test for annihilator of ideal modulo this ideal.- Parameters:
H
- solvable idealA
- solvable ideal- Returns:
- true, if A is the annihilator of H with respect to this
-
inverse
Inverse for element modulo this ideal.- Parameters:
h
- solvable polynomial- Returns:
- inverse of h with respect to this, if defined
-
isUnit
Test if element is a unit modulo this ideal.- Parameters:
h
- solvable polynomial- Returns:
- true if h is a unit with respect to this, else false
-
commonZeroTest
public int commonZeroTest()Ideal common zero test.- Returns:
- -1, 0 or 1 if dimension(this) &eq; -1, 0 or ≥ 1.
-
isMaximal
public boolean isMaximal()Test if this ideal is maximal.- Returns:
- true, if this is certainly maximal and not one, false, if this is one, has dimension ≥ 1 or it is not jet determined if it is maximal.
-
univariateDegrees
Univariate head term degrees.- Returns:
- a list of the degrees of univariate head terms.
-
dimension
Ideal dimension.- Returns:
- a dimension container (dim,maxIndep,list(maxIndep),vars).
-
constructUnivariate
Construct univariate polynomials of minimal degree in all variables in zero dimensional ideal(G).- Returns:
- list of univariate solvable polynomial of minimal degree in each variable in ideal(G)
-
constructUnivariate
Construct univariate polynomial of minimal degree in variable i in zero dimensional ideal(G).- Parameters:
i
- variable index.- Returns:
- univariate solvable polynomial of minimal degree in variable i in ideal(G)
-