Package edu.jas.poly

Class GenWordPolynomialRing<C extends RingElem<C>>

java.lang.Object
edu.jas.poly.GenWordPolynomialRing<C>
Type Parameters:
C - coefficient type
All Implemented Interfaces:
AbelianGroupFactory<GenWordPolynomial<C>>, ElemFactory<GenWordPolynomial<C>>, MonoidFactory<GenWordPolynomial<C>>, RingFactory<GenWordPolynomial<C>>, Serializable

public final class GenWordPolynomialRing<C extends RingElem<C>> extends Object implements RingFactory<GenWordPolynomial<C>>
GenWordPolynomialRing generic polynomial factory implementing RingFactory; Factory for non-commutative string polynomials over C.
See Also:
  • Field Details

    • coFac

      public final RingFactory<C extends RingElem<C>> coFac
      The factory for the coefficients.
    • alphabet

      public final WordFactory alphabet
      The factory for the alphabet.
    • ZERO

      public final GenWordPolynomial<C extends RingElem<C>> ZERO
      The constant polynomial 0 for this ring.
    • ONE

      public final GenWordPolynomial<C extends RingElem<C>> ONE
      The constant polynomial 1 for this ring.
    • wone

      public final Word wone
      The constant empty word exponent for this ring.
    • random

      static final Random random
      A default random sequence generator.
    • isField

      private int isField
      Indicator if this ring is a field.
    • logger

      private static final org.apache.logging.log4j.Logger logger
      Log4j logger object.
    • checkPreempt

      final boolean checkPreempt
      Flag to enable if preemptive interrupt is checked.
  • Constructor Details

    • GenWordPolynomialRing

      public GenWordPolynomialRing(RingFactory<C> cf, WordFactory wf)
      The constructor creates a polynomial factory object with the default term order.
      Parameters:
      cf - factory for coefficients of type C.
      wf - factory for strings.
    • GenWordPolynomialRing

      public GenWordPolynomialRing(RingFactory<C> cf, String[] s)
      The constructor creates a polynomial factory object.
      Parameters:
      cf - factory for coefficients of type C.
      s - array of variable names.
    • GenWordPolynomialRing

      public GenWordPolynomialRing(RingFactory<C> cf, String s)
      The constructor creates a polynomial factory object.
      Parameters:
      cf - factory for coefficients of type C.
      s - string of single letter variable names.
    • GenWordPolynomialRing

      public GenWordPolynomialRing(RingFactory<C> cf, GenWordPolynomialRing o)
      The constructor creates a polynomial factory object.
      Parameters:
      cf - factory for coefficients of type C.
      o - other polynomial ring.
    • GenWordPolynomialRing

      public GenWordPolynomialRing(GenPolynomialRing<C> fac)
      The constructor creates a polynomial factory object.
      Parameters:
      fac - polynomial ring.
  • Method Details

    • copy

      public GenWordPolynomialRing<C> copy()
      Copy this factory.
      Returns:
      a clone of this.
    • toString

      public String toString()
      Get the String representation.
      Overrides:
      toString in class Object
      See Also:
    • toScript

      public String toScript()
      Get a scripting compatible string representation.
      Specified by:
      toScript in interface ElemFactory<C extends RingElem<C>>
      Returns:
      script compatible representation for this Element.
      See Also:
    • extend

      public GenWordPolynomialRing<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 word polynomial ring factory.
    • extend

      public GenWordPolynomialRing<C> extend(String[] vn)
      Extend variables. Extend number of variables by length(vn).
      Parameters:
      vn - names for extended variables.
      Returns:
      extended polynomial ring factory.
    • equals

      public boolean equals(Object other)
      Comparison with any other object.
      Overrides:
      equals in class Object
      See Also:
    • hashCode

      public int hashCode()
      Hash code for this polynomial ring.
      Overrides:
      hashCode in class Object
      See Also:
    • getVars

      public String[] getVars()
      Get the variable names.
      Returns:
      vars.
    • 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 GenWordPolynomial<C> getZERO()
      Get the zero element.
      Specified by:
      getZERO in interface AbelianGroupFactory<C extends RingElem<C>>
      Returns:
      0 as GenWordPolynomial.
    • getONE

      public GenWordPolynomial<C> getONE()
      Get the one element.
      Specified by:
      getONE in interface MonoidFactory<C extends RingElem<C>>
      Returns:
      1 as GenWordPolynomial.
    • isCommutative

      public boolean isCommutative()
      Query if this ring is commutative.
      Specified by:
      isCommutative in interface MonoidFactory<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 interface MonoidFactory<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 interface ElemFactory<C extends RingElem<C>>
      Returns:
      true if this structure is finite, else false.
      See Also:
    • isField

      public boolean isField()
      Query if this ring is a field.
      Specified by:
      isField in interface RingFactory<C extends RingElem<C>>
      Returns:
      false.
    • characteristic

      public BigInteger characteristic()
      Characteristic of this ring.
      Specified by:
      characteristic in interface RingFactory<C extends RingElem<C>>
      Returns:
      characteristic of this ring.
    • valueOf

      public GenWordPolynomial<C> valueOf(C a)
      Get a (constant) GenWordPolynomial<C> element from a coefficient value.
      Parameters:
      a - coefficient.
      Returns:
      a GenWordPolynomial<C>.
    • valueOf

      public GenWordPolynomial<C> valueOf(Word e)
      Get a GenWordPolynomial<C> element from a word.
      Parameters:
      e - word.
      Returns:
      a GenWordPolynomial<C>.
    • valueOf

      public GenWordPolynomial<C> valueOf(ExpVector e)
      Get a GenWordPolynomial<C> element from an ExpVector.
      Parameters:
      e - exponent vector.
      Returns:
      a GenWordPolynomial<C>.
    • valueOf

      public GenWordPolynomial<C> valueOf(C a, Word e)
      Get a GenWordPolynomial<C> element from a coefficient and a word.
      Parameters:
      a - coefficient.
      e - word.
      Returns:
      a GenWordPolynomial<C>.
    • valueOf

      public GenWordPolynomial<C> valueOf(C a, ExpVector e)
      Get a GenWordPolynomial<C> element from a coefficient and an ExpVector.
      Parameters:
      a - coefficient.
      e - exponent vector.
      Returns:
      a GenWordPolynomial<C>.
    • valueOf

      public GenWordPolynomial<C> valueOf(GenPolynomial<C> a)
      Get a GenWordPolynomial<C> element from a GenPolynomial<C>.
      Parameters:
      a - GenPolynomial.
      Returns:
      a GenWordPolynomial<C>.
    • valueOf

      public GenWordPolynomial<C> valueOf(GenWordPolynomial<C> a)
      Get a GenWordPolynomial<C> element from a GenWordPolynomial<C>.
      Parameters:
      a - GenWordPolynomial.
      Returns:
      a GenWordPolynomial<C>.
    • valueOf

      public List<GenWordPolynomial<C>> valueOf(List<GenPolynomial<C>> A)
      Get a list of GenWordPolynomial<C> element from a list of GenPolynomial<C>.
      Parameters:
      A - GenPolynomial list.
      Returns:
      a GenWordPolynomial<C> list.
    • fromInteger

      public GenWordPolynomial<C> fromInteger(long a)
      Get a (constant) GenWordPolynomial<C> element from a long value.
      Specified by:
      fromInteger in interface ElemFactory<C extends RingElem<C>>
      Parameters:
      a - long.
      Returns:
      a GenWordPolynomial<C>.
    • fromInteger

      public GenWordPolynomial<C> fromInteger(BigInteger a)
      Get a (constant) GenWordPolynomial<C> element from a BigInteger value.
      Specified by:
      fromInteger in interface ElemFactory<C extends RingElem<C>>
      Parameters:
      a - BigInteger.
      Returns:
      a GenWordPolynomial<C>.
    • random

      public GenWordPolynomial<C> random(int n)
      Random polynomial. Generates a random polynomial.
      Specified by:
      random in interface ElemFactory<C extends RingElem<C>>
      Parameters:
      n - number of terms.
      Returns:
      a random polynomial.
    • random

      public GenWordPolynomial<C> random(int n, Random rnd)
      Random polynomial. Generates a random polynomial with k = 5, l = n, d = 3.
      Specified by:
      random in interface ElemFactory<C extends RingElem<C>>
      Parameters:
      n - number of terms.
      rnd - is a source for random bits.
      Returns:
      a random polynomial.
    • random

      public GenWordPolynomial<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 GenWordPolynomial<C> random(int k, int l, int d, 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.
    • copy

      Copy polynomial c.
      Specified by:
      copy in interface ElemFactory<C extends RingElem<C>>
      Parameters:
      c - polynomial to copy.
      Returns:
      a copy of c.
    • parse

      public GenWordPolynomial<C> parse(String s)
      Parse a polynomial with the use of GenWordPolynomialTokenizer.
      Specified by:
      parse in interface ElemFactory<C extends RingElem<C>>
      Parameters:
      s - String.
      Returns:
      GenWordPolynomial from s.
    • parse

      public GenWordPolynomial<C> parse(Reader r)
      Parse a polynomial with the use of GenWordPolynomialTokenizer.
      Specified by:
      parse in interface ElemFactory<C extends RingElem<C>>
      Parameters:
      r - Reader.
      Returns:
      next GenWordPolynomial from r.
    • univariate

      public GenWordPolynomial<C> univariate(int i)
      Generate univariate polynomial in a given variable.
      Parameters:
      i - the index of the variable.
      Returns:
      X_i as univariate polynomial.
    • commute

      public GenWordPolynomial<C> commute(int i, int j)
      Generate commute polynomial in two variables.
      Parameters:
      i - the index of the first variable.
      j - the index of the second variable.
      Returns:
      X_i * x_j - X_j * X_i as polynomial.
    • commute

      public List<GenWordPolynomial<C>> commute(int i)
      Generate commute polynomials for given variable.
      Parameters:
      i - the index of the variable.
      Returns:
      [X_i * x_j - X_j * X_i, i != j] as list of polynomials.
    • commute

      public List<GenWordPolynomial<C>> commute()
      Generate commute polynomials for all variables.
      Returns:
      [X_i * x_j - X_j * X_i, i != j] as list of polynomials.
    • univariateList

      public List<GenWordPolynomial<C>> univariateList()
      Generate list of univariate polynomials in all variables.
      Returns:
      List(X_1,...,X_n) a list of univariate polynomials.
    • getGenerators

      public List<GenWordPolynomial<C>> getGenerators()
      Get the generating elements excluding the generators for the coefficient ring.
      Returns:
      a list of generating elements for this ring.
    • generators

      public List<GenWordPolynomial<C>> generators()
      Get a list of all generating elements.
      Specified by:
      generators in interface ElemFactory<C extends RingElem<C>>
      Returns:
      list of generators for the algebraic structure.
      See Also: