Package edu.jas.poly
Class GenExteriorPolynomialRing<C extends RingElem<C>>
- java.lang.Object
-
- edu.jas.poly.GenExteriorPolynomialRing<C>
-
- Type Parameters:
C
- coefficient type
- All Implemented Interfaces:
AbelianGroupFactory<GenExteriorPolynomial<C>>
,ElemFactory<GenExteriorPolynomial<C>>
,MonoidFactory<GenExteriorPolynomial<C>>
,RingFactory<GenExteriorPolynomial<C>>
,java.io.Serializable
public final class GenExteriorPolynomialRing<C extends RingElem<C>> extends java.lang.Object implements RingFactory<GenExteriorPolynomial<C>>
GenExteriorPolynomialRing generic antisymmetric polynomial factory implementing RingFactory; Factory for antisymmetric polynomials (in fact vectors) over C. Objects of this class are intended to be immutable. Only the coefficients are modeled with generic types, the "exponents" are fixed to IndexList. C can also be a non integral domain, e.g. a ModInteger, i.e. it may contain zero divisors, since multiply() does check for zero coefficients and index lists.- Author:
- Heinz Kredel
- See Also:
- "masnc.DIPE.mi from SAC2/MAS", Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description RingFactory<C>
coFac
The factory for the coefficients.IndexFactory
ixfac
The factory for the IndexList.GenExteriorPolynomial<C>
ONE
The constant polynomial 1 for this ring.IndexList
wone
The constant empty index lists exponent for this ring.GenExteriorPolynomial<C>
ZERO
The constant polynomial 0 for this ring.
-
Constructor Summary
Constructors Constructor Description GenExteriorPolynomialRing(GenPolynomialRing<C> fac)
The constructor creates a polynomial factory object.GenExteriorPolynomialRing(RingFactory<C> cf, GenExteriorPolynomialRing o)
The constructor creates a polynomial factory object.GenExteriorPolynomialRing(RingFactory<C> cf, IndexFactory wf)
The constructor creates a polynomial factory object with the default term order.GenExteriorPolynomialRing(RingFactory<C> cf, java.lang.String s)
The constructor creates a polynomial factory object.GenExteriorPolynomialRing(RingFactory<C> cf, java.lang.String[] s)
The constructor creates a polynomial factory object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.math.BigInteger
characteristic()
Characteristic of this ring.GenExteriorPolynomialRing<C>
copy()
Copy this factory.GenExteriorPolynomial<C>
copy(GenExteriorPolynomial<C> c)
Copy polynomial c.C
determinant(java.util.List<GenExteriorPolynomial<C>> A)
Determinant form exterior polynomial / matrix.boolean
equals(java.lang.Object other)
Comparison with any other object.GenExteriorPolynomial<C>
fromInteger(long a)
Get a (constant) GenExteriorPolynomial from a long value.GenExteriorPolynomial<C>
fromInteger(java.math.BigInteger a)
Get a (constant) GenExteriorPolynomial from a BigInteger value.java.util.List<GenExteriorPolynomial<C>>
fromMatrix(GenMatrix<C> A)
Get a list of GenExteriorPolynomials from a GenMatrix.GenExteriorPolynomial<C>
fromPolynomial(GenPolynomial<C> a)
Get a GenExteriorPolynomial from a univariate GenPolynomial.GenExteriorPolynomial<C>
fromVector(GenVector<C> a)
Get a GenExteriorPolynomial from a GenVector.java.util.List<GenExteriorPolynomial<C>>
generators()
Get a list of all generating elements.java.util.List<GenExteriorPolynomial<C>>
getGenerators()
Get the generating elements excluding the generators for the coefficient ring.GenExteriorPolynomial<C>
getIMAX()
Get a GenExteriorPolynomial maximal index list element.GenExteriorPolynomial<C>
getONE()
Get the one element.C
getONECoefficient()
Get the one element from the coefficients.GenExteriorPolynomial<C>
getZERO()
Get the zero element.C
getZEROCoefficient()
Get the zero element from the coefficients.int
hashCode()
Hash code for this polynomial ring.boolean
isAssociative()
Query if this ring is associative.boolean
isCommutative()
Query if this ring is commutative.boolean
isField()
Query if this ring is a field.boolean
isFinite()
Is this structure finite or infinite.GenExteriorPolynomial<C>
parse(java.io.Reader r)
Parse a polynomial with the use of GenPolynomialTokenizer.GenExteriorPolynomial<C>
parse(java.lang.String s)
Parse a polynomial with the use of GenExteriorPolynomialTokenizer.GenExteriorPolynomial<C>
random(int n)
Random polynomial.GenExteriorPolynomial<C>
random(int k, int l, int d)
Generate a random polynomial.GenExteriorPolynomial<C>
random(int k, int l, int d, java.util.Random rnd)
Generate a random polynomial.GenExteriorPolynomial<C>
random(int n, java.util.Random rnd)
Random polynomial.GenExteriorPolynomial<C>
randomForm(int kl, int l, int k)
Generate a random k-form polynomial.GenExteriorPolynomial<C>
randomForm(int kl, int l, int k, java.util.Random rnd)
Generate a random k-form polynomial.C
resultant(GenPolynomial<C> A, GenPolynomial<C> B)
Resultant of two commutative polynaomials.java.lang.String
toScript()
Get a scripting compatible string representation.java.lang.String
toString()
Get the String representation.GenExteriorPolynomial<C>
univariate(int i)
Generate univariate polynomial in a given variable.java.util.List<GenExteriorPolynomial<C>>
univariateList()
Generate list of univariate polynomials in all variables.GenExteriorPolynomial<C>
valueOf(C a)
Get a (constant) GenExteriorPolynomial element from a coefficient value.GenExteriorPolynomial<C>
valueOf(C a, ExpVector e)
Get a GenExteriorPolynomial from a coefficient and an ExpVector.GenExteriorPolynomial<C>
valueOf(C a, IndexList e)
Get a GenExteriorPolynomial from a coefficient and a IndexList.GenExteriorPolynomial<C>
valueOf(ExpVector e)
Get a GenExteriorPolynomial from an ExpVector.GenExteriorPolynomial<C>
valueOf(GenExteriorPolynomial<C> a)
Get a GenExteriorPolynomial from a GenExteriorPolynomial with conformant index lists.GenExteriorPolynomial<C>
valueOf(GenPolynomial<C> a)
Get a GenExteriorPolynomial from a multivariate GenPolynomial, terms with exponents > 1 are set to zero.GenExteriorPolynomial<C>
valueOf(IndexList e)
Get a GenExteriorPolynomial element from a index list.java.util.List<GenExteriorPolynomial<C>>
valueOf(java.util.List<GenPolynomial<C>> A)
Get a list of GenExteriorPolynomials from a list of GenPolynomials.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface edu.jas.structure.ElemFactory
valueOf
-
-
-
-
Field Detail
-
coFac
public final RingFactory<C extends RingElem<C>> coFac
The factory for the coefficients.
-
ixfac
public final IndexFactory ixfac
The factory for the IndexList.
-
ZERO
public final GenExteriorPolynomial<C extends RingElem<C>> ZERO
The constant polynomial 0 for this ring.
-
ONE
public final GenExteriorPolynomial<C extends RingElem<C>> ONE
The constant polynomial 1 for this ring.
-
-
Constructor Detail
-
GenExteriorPolynomialRing
public GenExteriorPolynomialRing(RingFactory<C> cf, IndexFactory wf)
The constructor creates a polynomial factory object with the default term order.- Parameters:
cf
- factory for coefficients of type C.wf
- factory for index list.
-
GenExteriorPolynomialRing
public GenExteriorPolynomialRing(RingFactory<C> cf, java.lang.String[] s)
The constructor creates a polynomial factory object.- Parameters:
cf
- factory for coefficients of type C.s
- array of variable names.
-
GenExteriorPolynomialRing
public GenExteriorPolynomialRing(RingFactory<C> cf, java.lang.String s)
The constructor creates a polynomial factory object.- Parameters:
cf
- factory for coefficients of type C.s
- string of single letter variable names.
-
GenExteriorPolynomialRing
public GenExteriorPolynomialRing(RingFactory<C> cf, GenExteriorPolynomialRing o)
The constructor creates a polynomial factory object.- Parameters:
cf
- factory for coefficients of type C.o
- other polynomial ring.
-
GenExteriorPolynomialRing
public GenExteriorPolynomialRing(GenPolynomialRing<C> fac)
The constructor creates a polynomial factory object.- Parameters:
fac
- polynomial ring.
-
-
Method Detail
-
copy
public GenExteriorPolynomialRing<C> copy()
Copy this factory.- Returns:
- a clone of this.
-
toString
public java.lang.String toString()
Get the String representation.- Overrides:
toString
in classjava.lang.Object
- See Also:
Object.toString()
-
toScript
public java.lang.String toScript()
Get a scripting compatible string representation.- Specified by:
toScript
in interfaceElemFactory<C extends RingElem<C>>
- Returns:
- script compatible representation for this Element.
- See Also:
Element.toScript()
-
equals
public boolean equals(java.lang.Object other)
Comparison with any other object.- Overrides:
equals
in classjava.lang.Object
- See Also:
Object.equals(java.lang.Object)
-
hashCode
public int hashCode()
Hash code for this polynomial ring.- Overrides:
hashCode
in classjava.lang.Object
- See Also:
Object.hashCode()
-
getZEROCoefficient
public C getZEROCoefficient()
Get the zero element from the coefficients.- Returns:
- 0 as C.
-
getONECoefficient
public C getONECoefficient()
Get the one element from the coefficients.- Returns:
- 1 as C.
-
getZERO
public GenExteriorPolynomial<C> getZERO()
Get the zero element.- Specified by:
getZERO
in interfaceAbelianGroupFactory<C extends RingElem<C>>
- Returns:
- 0 as GenExteriorPolynomial
.
-
getONE
public GenExteriorPolynomial<C> getONE()
Get the one element.- Specified by:
getONE
in interfaceMonoidFactory<C extends RingElem<C>>
- Returns:
- 1 as GenExteriorPolynomial
.
-
isCommutative
public boolean isCommutative()
Query if this ring is commutative.- Specified by:
isCommutative
in interfaceMonoidFactory<C extends RingElem<C>>
- Returns:
- true if this ring is commutative, else false.
-
isAssociative
public boolean isAssociative()
Query if this ring is associative.- Specified by:
isAssociative
in interfaceMonoidFactory<C extends RingElem<C>>
- Returns:
- true if this ring is associative, else false.
-
isFinite
public boolean isFinite()
Is this structure finite or infinite.- Specified by:
isFinite
in interfaceElemFactory<C extends RingElem<C>>
- Returns:
- true if this structure is finite, else false.
- See Also:
ElemFactory.isFinite()
-
isField
public boolean isField()
Query if this ring is a field.- Specified by:
isField
in interfaceRingFactory<C extends RingElem<C>>
- Returns:
- false.
-
characteristic
public java.math.BigInteger characteristic()
Characteristic of this ring.- Specified by:
characteristic
in interfaceRingFactory<C extends RingElem<C>>
- Returns:
- characteristic of this ring.
-
valueOf
public GenExteriorPolynomial<C> valueOf(C a)
Get a (constant) GenExteriorPolynomial element from a coefficient value.- Parameters:
a
- coefficient.- Returns:
- a constant GenExteriorPolynomial.
-
valueOf
public GenExteriorPolynomial<C> valueOf(IndexList e)
Get a GenExteriorPolynomial element from a index list.- Parameters:
e
- index list.- Returns:
- a GenExteriorPolynomial.
-
valueOf
public GenExteriorPolynomial<C> valueOf(ExpVector e)
Get a GenExteriorPolynomial from an ExpVector.- Parameters:
e
- exponent vector.- Returns:
- a GenExteriorPolynomial, if exponents are > 1 return ZERO.
-
valueOf
public GenExteriorPolynomial<C> valueOf(C a, IndexList e)
Get a GenExteriorPolynomial from a coefficient and a IndexList.- Parameters:
a
- coefficient.e
- word.- Returns:
- a GenExteriorPolynomial.
-
valueOf
public GenExteriorPolynomial<C> valueOf(C a, ExpVector e)
Get a GenExteriorPolynomial from a coefficient and an ExpVector.- Parameters:
a
- coefficient.e
- exponent vector.- Returns:
- a GenExteriorPolynomial, if exponents are > 1 return ZERO.
-
valueOf
public GenExteriorPolynomial<C> valueOf(GenPolynomial<C> a)
Get a GenExteriorPolynomial from a multivariate GenPolynomial, terms with exponents > 1 are set to zero.- Parameters:
a
- multivariate GenPolynomial.- Returns:
- multivariate a GenExteriorPolynomial.
-
valueOf
public GenExteriorPolynomial<C> valueOf(GenExteriorPolynomial<C> a)
Get a GenExteriorPolynomial from a GenExteriorPolynomial with conformant index lists.- Parameters:
a
- GenExteriorPolynomial.- Returns:
- a GenExteriorPolynomial with conformant index lists.
-
valueOf
public java.util.List<GenExteriorPolynomial<C>> valueOf(java.util.List<GenPolynomial<C>> A)
Get a list of GenExteriorPolynomials from a list of GenPolynomials.- Parameters:
A
- GenPolynomial list.- Returns:
- a GenExteriorPolynomial list.
-
getIMAX
public GenExteriorPolynomial<C> getIMAX()
Get a GenExteriorPolynomial maximal index list element.- Returns:
- a GenExteriorPolynomial with maximal index list.
-
fromInteger
public GenExteriorPolynomial<C> fromInteger(long a)
Get a (constant) GenExteriorPolynomial from a long value.- Specified by:
fromInteger
in interfaceElemFactory<C extends RingElem<C>>
- Parameters:
a
- long.- Returns:
- a GenExteriorPolynomial.
-
fromInteger
public GenExteriorPolynomial<C> fromInteger(java.math.BigInteger a)
Get a (constant) GenExteriorPolynomial from a BigInteger value.- Specified by:
fromInteger
in interfaceElemFactory<C extends RingElem<C>>
- Parameters:
a
- BigInteger.- Returns:
- a GenExteriorPolynomial<C>.
-
fromVector
public GenExteriorPolynomial<C> fromVector(GenVector<C> a)
Get a GenExteriorPolynomial from a GenVector.- Parameters:
a
- GenVector.- Returns:
- a GenExteriorPolynomial.
-
fromMatrix
public java.util.List<GenExteriorPolynomial<C>> fromMatrix(GenMatrix<C> A)
Get a list of GenExteriorPolynomials from a GenMatrix.- Parameters:
A
- GenMatrix- Returns:
- a list of GenExteriorPolynomials.
-
determinant
public C determinant(java.util.List<GenExteriorPolynomial<C>> A)
Determinant form exterior polynomial / matrix.- Parameters:
A
- list of GenExteriorPolynomials- Returns:
- determinant of 'matrix' A.
-
fromPolynomial
public GenExteriorPolynomial<C> fromPolynomial(GenPolynomial<C> a)
Get a GenExteriorPolynomial from a univariate GenPolynomial. Different exponents are converted to different indexes.- Parameters:
a
- univariate GenPolynomial.- Returns:
- a multivariate GenExteriorPolynomial.
-
resultant
public C resultant(GenPolynomial<C> A, GenPolynomial<C> B)
Resultant of two commutative polynaomials.- Parameters:
A
- GenPolynomialB
- GenPolynomial- Returns:
- res(A,B).
-
random
public GenExteriorPolynomial<C> random(int n)
Random polynomial. Generates a random polynomial.- Specified by:
random
in interfaceElemFactory<C extends RingElem<C>>
- Parameters:
n
- number of terms.- Returns:
- a random polynomial.
-
random
public GenExteriorPolynomial<C> random(int n, java.util.Random rnd)
Random polynomial. Generates a random polynomial with k = 5, l = n, d = 3.- Specified by:
random
in interfaceElemFactory<C extends RingElem<C>>
- Parameters:
n
- number of terms.rnd
- is a source for random bits.- Returns:
- a random polynomial.
-
random
public GenExteriorPolynomial<C> random(int k, int l, int d)
Generate a random polynomial.- Parameters:
k
- bitsize of random coefficients.l
- number of terms.d
- maximal length of a random word.- Returns:
- a random polynomial.
-
random
public GenExteriorPolynomial<C> random(int k, int l, int d, java.util.Random rnd)
Generate a random polynomial.- Parameters:
k
- bitsize of random coefficients.l
- number of terms.d
- maximal length of a random word.rnd
- is a source for random bits.- Returns:
- a random polynomial.
-
randomForm
public GenExteriorPolynomial<C> randomForm(int kl, int l, int k)
Generate a random k-form polynomial.- Parameters:
kl
- bitsize of random coefficients.l
- number of terms.k
- length of any random word.- Returns:
- a random k-form polynomial.
-
randomForm
public GenExteriorPolynomial<C> randomForm(int kl, int l, int k, java.util.Random rnd)
Generate a random k-form polynomial.- Parameters:
kl
- bitsize of random coefficients.l
- number of terms.k
- length of any random word.rnd
- is a source for random bits.- Returns:
- a random k-form polynomial.
-
copy
public GenExteriorPolynomial<C> copy(GenExteriorPolynomial<C> c)
Copy polynomial c.- Specified by:
copy
in interfaceElemFactory<C extends RingElem<C>>
- Parameters:
c
- polynomial to copy.- Returns:
- a copy of c.
-
parse
public GenExteriorPolynomial<C> parse(java.lang.String s)
Parse a polynomial with the use of GenExteriorPolynomialTokenizer.- Specified by:
parse
in interfaceElemFactory<C extends RingElem<C>>
- Parameters:
s
- String.- Returns:
- GenExteriorPolynomial from s.
-
parse
public GenExteriorPolynomial<C> parse(java.io.Reader r)
Parse a polynomial with the use of GenPolynomialTokenizer.- Specified by:
parse
in interfaceElemFactory<C extends RingElem<C>>
- Parameters:
r
- Reader.- Returns:
- next GenExteriorPolynomial from r.
-
univariate
public GenExteriorPolynomial<C> univariate(int i)
Generate univariate polynomial in a given variable.- Parameters:
i
- the index of the variable.- Returns:
- X_i as univariate polynomial.
-
univariateList
public java.util.List<GenExteriorPolynomial<C>> univariateList()
Generate list of univariate polynomials in all variables.- Returns:
- List(X_1,...,X_n) a list of univariate polynomials.
-
getGenerators
public java.util.List<GenExteriorPolynomial<C>> getGenerators()
Get the generating elements excluding the generators for the coefficient ring.- Returns:
- a list of generating elements for this ring.
-
generators
public java.util.List<GenExteriorPolynomial<C>> generators()
Get a list of all generating elements.- Specified by:
generators
in interfaceElemFactory<C extends RingElem<C>>
- Returns:
- list of generators for the algebraic structure.
- See Also:
ElemFactory.generators()
-
-