edu.jas.poly
Interface PolynomialRing<C extends RingElem<C>>

All Superinterfaces:
AbelianGroupFactory<Polynomial<C>>, ElemFactory<Polynomial<C>>, MonoidFactory<Polynomial<C>>, RingFactory<Polynomial<C>>, java.io.Serializable

public interface PolynomialRing<C extends RingElem<C>>
extends RingFactory<Polynomial<C>>

Polynomial factory interface. Defines polynomial specific factory methods.

Author:
Heinz Kredel

Method Summary
 PolynomialRing<C> contract(int i)
          Contract variables.
 PolynomialRing<C> extend(int i)
          Extend variables.
 java.lang.String[] getVars()
          Get the variable names.
 int numberOfVariables()
          Number of variables.
 Polynomial<C> random(int k, int l, int d, float q)
          Generate a random polynomial.
 Polynomial<C> random(int k, int l, int d, float q, java.util.Random rnd)
          Generate a random polynomial.
 PolynomialRing<C> reverse()
          Reverse variables.
 Polynomial<C> univariate(int i)
          Generate univariate polynomial in a given variable.
 Polynomial<C> univariate(int i, long e)
          Generate univariate polynomial in a given variable with given exponent.
 java.util.List<? extends Polynomial<C>> univariateList()
          Generate list of univariate polynomials in all variables.
 
Methods inherited from interface edu.jas.structure.RingFactory
characteristic, isField
 
Methods inherited from interface edu.jas.structure.AbelianGroupFactory
getZERO
 
Methods inherited from interface edu.jas.structure.MonoidFactory
getONE, isAssociative, isCommutative
 
Methods inherited from interface edu.jas.structure.ElemFactory
copy, fromInteger, fromInteger, generators, isFinite, parse, parse, random, random, toScript
 

Method Detail

numberOfVariables

int numberOfVariables()
Number of variables.

Returns:
the number of variables.

getVars

java.lang.String[] getVars()
Get the variable names.

Returns:
vars.

random

Polynomial<C> random(int k,
                     int l,
                     int d,
                     float q)
Generate a random polynomial.

Parameters:
k - bitsize of random coefficients.
l - number of terms.
d - maximal degree in each variable.
q - density of nozero exponents.
Returns:
a random polynomial.

random

Polynomial<C> random(int k,
                     int l,
                     int d,
                     float q,
                     java.util.Random rnd)
Generate a random polynomial.

Parameters:
k - bitsize of random coefficients.
l - number of terms.
d - maximal degree in each variable.
q - density of nozero exponents.
rnd - is a source for random bits.
Returns:
a random polynomial.

univariate

Polynomial<C> univariate(int i)
Generate univariate polynomial in a given variable.

Parameters:
i - the index of the variable.
Returns:
X_i as univariate polynomial.

univariate

Polynomial<C> univariate(int i,
                         long e)
Generate univariate polynomial in a given variable with given exponent.

Parameters:
i - the index of the variable.
e - the exponent of the variable.
Returns:
X_i^e as univariate polynomial.

univariateList

java.util.List<? extends Polynomial<C>> univariateList()
Generate list of univariate polynomials in all variables.

Returns:
List(X_1,...,X_n) a list of univariate polynomials.

extend

PolynomialRing<C> extend(int i)
Extend variables. Used e.g. in module embedding. Extend number of variables by i.

Parameters:
i - number of variables to extend.
Returns:
extended polynomial ring factory.

contract

PolynomialRing<C> contract(int i)
Contract variables. Used e.g. in module embedding. Contract number of variables by i.

Parameters:
i - number of variables to remove.
Returns:
contracted polynomial ring factory.

reverse

PolynomialRing<C> reverse()
Reverse variables. Used e.g. in opposite rings.

Returns:
polynomial ring factory with reversed variables.