edu.jas.application
Class Ideal<C extends RingElem<C>>

java.lang.Object
  extended by edu.jas.application.Ideal<C>
All Implemented Interfaces:
java.io.Serializable

public class Ideal<C extends RingElem<C>>
extends java.lang.Object
implements java.io.Serializable

Ideal implements some methods for ideal arithmetic, e.g. intersection and quotient.

Author:
Heinz Kredel
See Also:
Serialized Form

Field Summary
protected  GroebnerBase<C> bb
          Groebner base engine.
protected  boolean isGB
          Indicator if list is a Groebner Base.
protected  PolynomialList<C> list
          The data structure is a PolynomialList.
protected  Reduction<C> red
          Reduction engine.
protected  boolean testGB
          Indicator if test has been performed if this is a Groebner Base.
 
Constructor Summary
Ideal(GenPolynomialRing<C> ring, java.util.List<GenPolynomial<C>> F)
          Constructor.
Ideal(GenPolynomialRing<C> ring, java.util.List<GenPolynomial<C>> F, boolean gb)
          Constructor.
Ideal(PolynomialList<C> list)
          Constructor.
Ideal(PolynomialList<C> list, boolean gb)
          Constructor.
Ideal(PolynomialList<C> list, boolean gb, GroebnerBase<C> bb, Reduction<C> red)
          Constructor.
Ideal(PolynomialList<C> list, GroebnerBase<C> bb, Reduction<C> red)
          Constructor.
 
Method Summary
 boolean contains(Ideal<C> B)
          Ideal containment.
 boolean equals(java.lang.Object b)
          Comparison with any other object.
 Ideal<C> GB()
          Groebner Base.
 java.util.List<GenPolynomial<C>> getList()
          Get the List of GenPolynomials.
 GenPolynomialRing<C> getRing()
          Get the GenPolynomialRing.
 int hashCode()
          Hash code for this ideal.
 Ideal<C> infiniteQuotient(GenPolynomial<C> h)
          Infinite quotient.
 Ideal<C> infiniteQuotient(Ideal<C> H)
          Infinite Quotient.
 Ideal<C> infiniteQuotientOld(GenPolynomial<C> h)
          Infinite quotient.
 Ideal<C> infiniteQuotientRab(GenPolynomial<C> h)
          Infinite quotient.
 Ideal<C> infiniteQuotientRab(Ideal<C> H)
          Infinite Quotient.
 Ideal<C> intersect(GenPolynomialRing<C> R)
          Intersection.
 Ideal<C> intersect(Ideal<C> B)
          Intersection.
 GenPolynomial<C> inverse(GenPolynomial<C> h)
          Inverse for element modulo this ideal.
 boolean isGB()
          Test if this is a Groebner base.
 boolean isONE()
          Test if ONE ideal.
 boolean isUnit(GenPolynomial<C> h)
          Test if element is a unit modulo this ideal.
 boolean isZERO()
          Test if ZERO ideal.
 GenPolynomial<C> normalform(GenPolynomial<C> h)
          Normalform for element.
 Ideal<C> product(Ideal<C> B)
          Product.
 Ideal<C> quotient(GenPolynomial<C> h)
          Quotient.
 Ideal<C> quotient(Ideal<C> H)
          Quotient.
 Ideal<C> sum(Ideal<C> B)
          Summation.
 java.lang.String toString()
          String representation of the ideal.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

list

protected PolynomialList<C extends RingElem<C>> list
The data structure is a PolynomialList.


isGB

protected boolean isGB
Indicator if list is a Groebner Base.


testGB

protected boolean testGB
Indicator if test has been performed if this is a Groebner Base.


bb

protected GroebnerBase<C extends RingElem<C>> bb
Groebner base engine.


red

protected Reduction<C extends RingElem<C>> red
Reduction engine.

Constructor Detail

Ideal

public Ideal(GenPolynomialRing<C> ring,
             java.util.List<GenPolynomial<C>> F)
Constructor.

Parameters:
ring - polynomial ring
F - list of polynomials

Ideal

public Ideal(GenPolynomialRing<C> ring,
             java.util.List<GenPolynomial<C>> F,
             boolean gb)
Constructor.

Parameters:
ring - polynomial ring
F - list of polynomials
gb - true if F is known to be a Groebner Base, else false

Ideal

public Ideal(PolynomialList<C> list)
Constructor.

Parameters:
list - polynomial list

Ideal

public Ideal(PolynomialList<C> list,
             GroebnerBase<C> bb,
             Reduction<C> red)
Constructor.

Parameters:
list - polynomial list
bb - Groebner Base engine
red - Reduction engine

Ideal

public Ideal(PolynomialList<C> list,
             boolean gb)
Constructor.

Parameters:
list - polynomial list
gb - true if list is known to be a Groebner Base, else false

Ideal

public Ideal(PolynomialList<C> list,
             boolean gb,
             GroebnerBase<C> bb,
             Reduction<C> red)
Constructor.

Parameters:
list - polynomial list
gb - true if list is known to be a Groebner Base, else false
bb - Groebner Base engine
red - Reduction engine
Method Detail

getList

public java.util.List<GenPolynomial<C>> getList()
Get the List of GenPolynomials.

Returns:
list.list

getRing

public GenPolynomialRing<C> getRing()
Get the GenPolynomialRing.

Returns:
list.ring

toString

public java.lang.String toString()
String representation of the ideal.

Overrides:
toString in class java.lang.Object
See Also:
Object.toString()

equals

public boolean equals(java.lang.Object b)
Comparison with any other object. Note: If both ideals are not Groebner Bases, then false may be returned even the ideals are equal.

Overrides:
equals in class java.lang.Object
See Also:
Object.equals(java.lang.Object)

hashCode

public int hashCode()
Hash code for this ideal.

Overrides:
hashCode in class java.lang.Object
See Also:
Object.hashCode()

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 ideal.

Returns:
true, if this is the 1 ideal, else false

isGB

public boolean isGB()
Test if this is a Groebner base.

Returns:
true, if this is a Groebner base, else false

GB

public Ideal<C> GB()
Groebner Base. Get a Groebner Base for this ideal.

Returns:
GB(this)

contains

public boolean contains(Ideal<C> B)
Ideal containment. Test if B is contained in this ideal. Note: this is eventually modified to become a Groebner Base.

Parameters:
B - ideal
Returns:
true, if B is contained in this, else false

sum

public Ideal<C> sum(Ideal<C> B)
Summation. Generators for the sum of ideals. Note: if both ideals are Groebner bases, a Groebner base is returned.

Parameters:
B - ideal
Returns:
ideal(this+B)

product

public Ideal<C> product(Ideal<C> B)
Product. Generators for the product of ideals. Note: if both ideals are Groebner bases, a Groebner base is returned.

Parameters:
B - ideal
Returns:
ideal(this*B)

intersect

public Ideal<C> intersect(Ideal<C> B)
Intersection. Generators for the intersection of ideals.

Parameters:
B - ideal
Returns:
ideal(this \cap B), a Groebner base

intersect

public Ideal<C> intersect(GenPolynomialRing<C> R)
Intersection. Generators for the intersection of a ideal with a polynomial ring. The polynomial ring of this ideal must be a contraction of R and the TermOrder must be an elimination order.

Parameters:
R - polynomial ring
Returns:
ideal(this \cap R)

quotient

public Ideal<C> quotient(GenPolynomial<C> h)
Quotient. Generators for the ideal quotient.

Parameters:
h - polynomial
Returns:
ideal(this : h), a Groebner base

quotient

public Ideal<C> quotient(Ideal<C> H)
Quotient. Generators for the ideal quotient.

Parameters:
H - ideal
Returns:
ideal(this : H), a Groebner base

infiniteQuotientRab

public Ideal<C> infiniteQuotientRab(GenPolynomial<C> h)
Infinite quotient. Generators for the infinite ideal quotient.

Parameters:
h - polynomial
Returns:
ideal(this : hs), a Groebner base

infiniteQuotient

public Ideal<C> infiniteQuotient(GenPolynomial<C> h)
Infinite quotient. Generators for the infinite ideal quotient.

Parameters:
h - polynomial
Returns:
ideal(this : hs), a Groebner base

infiniteQuotientOld

public Ideal<C> infiniteQuotientOld(GenPolynomial<C> h)
Infinite quotient. Generators for the infinite ideal quotient.

Parameters:
h - polynomial
Returns:
ideal(this : hs), a Groebner base

infiniteQuotient

public Ideal<C> infiniteQuotient(Ideal<C> H)
Infinite Quotient. Generators for the ideal infinite quotient.

Parameters:
H - ideal
Returns:
ideal(this : Hs), a Groebner base

infiniteQuotientRab

public Ideal<C> infiniteQuotientRab(Ideal<C> H)
Infinite Quotient. Generators for the ideal infinite quotient.

Parameters:
H - ideal
Returns:
ideal(this : Hs), a Groebner base

normalform

public GenPolynomial<C> normalform(GenPolynomial<C> h)
Normalform for element.

Parameters:
h - polynomial
Returns:
normalform of h with respect to this

inverse

public GenPolynomial<C> inverse(GenPolynomial<C> h)
Inverse for element modulo this ideal.

Parameters:
h - polynomial
Returns:
inverse of h with respect to this, if defined

isUnit

public boolean isUnit(GenPolynomial<C> h)
Test if element is a unit modulo this ideal.

Parameters:
h - polynomial
Returns:
true if h is a unit with respect to this, else false