Package edu.jas.poly

Interface PolynomialRing<C extends RingElem<C>>

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

public interface PolynomialRing<C extends RingElem<C>> extends RingFactory<Polynomial<C>>
Polynomial factory interface. Defines polynomial specific factory methods.
  • Method Details

    • numberOfVariables

      int numberOfVariables()
      Number of variables.
      Returns:
      the number of variables.
    • getVars

      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, 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

      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.