Package edu.jas.ps

Class UnivPowerSeriesRing<C extends RingElem<C>>

java.lang.Object
edu.jas.ps.UnivPowerSeriesRing<C>
Type Parameters:
C - ring element type
All Implemented Interfaces:
AbelianGroupFactory<UnivPowerSeries<C>>, ElemFactory<UnivPowerSeries<C>>, MonoidFactory<UnivPowerSeries<C>>, RingFactory<UnivPowerSeries<C>>, Serializable

public class UnivPowerSeriesRing<C extends RingElem<C>> extends Object implements RingFactory<UnivPowerSeries<C>>
Univariate power series ring implementation. Uses lazy evaluated generating function for coefficients.
See Also:
  • Field Details

    • random

      protected static final Random random
      A default random sequence generator.
    • DEFAULT_TRUNCATE

      public static final int DEFAULT_TRUNCATE
      Default truncate.
      See Also:
    • truncate

      int truncate
      Truncate.
    • DEFAULT_NAME

      public static final String DEFAULT_NAME
      Default variable name.
      See Also:
    • var

      String var
      Variable name.
    • coFac

      public final RingFactory<C extends RingElem<C>> coFac
      Coefficient ring factory.
    • ONE

      public final UnivPowerSeries<C extends RingElem<C>> ONE
      The constant power series 1 for this ring.
    • ZERO

      public final UnivPowerSeries<C extends RingElem<C>> ZERO
      The constant power series 0 for this ring.
  • Constructor Details

    • UnivPowerSeriesRing

      private UnivPowerSeriesRing()
      No argument constructor.
    • UnivPowerSeriesRing

      public UnivPowerSeriesRing(RingFactory<C> coFac)
      Constructor.
      Parameters:
      coFac - coefficient ring factory.
    • UnivPowerSeriesRing

      public UnivPowerSeriesRing(RingFactory<C> coFac, int truncate)
      Constructor.
      Parameters:
      coFac - coefficient ring factory.
      truncate - index of truncation.
    • UnivPowerSeriesRing

      public UnivPowerSeriesRing(RingFactory<C> coFac, String name)
      Constructor.
      Parameters:
      coFac - coefficient ring factory.
      name - of the variable.
    • UnivPowerSeriesRing

      public UnivPowerSeriesRing(GenPolynomialRing<C> pfac)
      Constructor.
      Parameters:
      pfac - polynomial ring factory.
    • UnivPowerSeriesRing

      public UnivPowerSeriesRing(RingFactory<C> cofac, int truncate, String name)
      Constructor.
      Parameters:
      cofac - coefficient ring factory.
      truncate - index of truncation.
      name - of the variable.
  • Method Details

    • fixPoint

      public UnivPowerSeries<C> fixPoint(UnivPowerSeriesMap<C> map)
      Fixed point construction.
      Parameters:
      map - a mapping of power series.
      Returns:
      fix point wrt map.
    • toString

      public String toString()
      To String.
      Overrides:
      toString in class Object
      Returns:
      string representation of this.
    • 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 ElemFactory.
      See Also:
    • equals

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

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

      public UnivPowerSeries<C> getZERO()
      Get the zero element.
      Specified by:
      getZERO in interface AbelianGroupFactory<C extends RingElem<C>>
      Returns:
      0 as UnivPowerSeries.
    • getONE

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

      public List<UnivPowerSeries<C>> generators()
      Get a list of the generating elements.
      Specified by:
      generators in interface ElemFactory<C extends RingElem<C>>
      Returns:
      list of generators for the algebraic structure.
      See Also:
    • 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:
    • getEXP

      public UnivPowerSeries<C> getEXP()
      Get the power series of the exponential function.
      Returns:
      exp(x) as UnivPowerSeries.
    • getSIN

      public UnivPowerSeries<C> getSIN()
      Get the power series of the sinus function.
      Returns:
      sin(x) as UnivPowerSeries.
    • getCOS

      public UnivPowerSeries<C> getCOS()
      Get the power series of the cosine function.
      Returns:
      cos(x) as UnivPowerSeries.
    • getTAN

      public UnivPowerSeries<C> getTAN()
      Get the power series of the tangens function.
      Returns:
      tan(x) as UnivPowerSeries.
    • solveODE

      public UnivPowerSeries<C> solveODE(UnivPowerSeries<C> f, C c)
      Solve an ordinary differential equation. y' = f(y) with y(0) = c.
      Parameters:
      f - a UnivPowerSeries.
      c - integration constant.
      Returns:
      f.integrate(c).
    • isCommutative

      public boolean isCommutative()
      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.
    • 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.
    • fromInteger

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

      public UnivPowerSeries<C> fromInteger(BigInteger a)
      Get a (constant) UnivPowerSeries<C> from a java.math.BigInteger.
      Specified by:
      fromInteger in interface ElemFactory<C extends RingElem<C>>
      Parameters:
      a - BigInteger.
      Returns:
      a UnivPowerSeries<C>.
    • polyRing

      public GenPolynomialRing<C> polyRing()
      Get the corresponding GenPolynomialRing<C>.
      Returns:
      GenPolynomialRing<C>.
    • fromPolynomial

      public UnivPowerSeries<C> fromPolynomial(GenPolynomial<C> a)
      Get a UnivPowerSeries<C> from a GenPolynomial<C>.
      Parameters:
      a - GenPolynomial<C>.
      Returns:
      a UnivPowerSeries<C>.
    • fromVector

      public UnivPowerSeries<C> fromVector(GenVector<C> a)
      Get a UnivPowerSeries<C> from a GenVector<C>.
      Parameters:
      a - GenVector<C>.
      Returns:
      a UnivPowerSeries<C>.
    • random

      public UnivPowerSeries<C> random()
      Generate a random power series with k = 5, d = 0.7.
      Returns:
      a random power series.
    • random

      public UnivPowerSeries<C> random(int k)
      Generate a random power series with d = 0.7.
      Specified by:
      random in interface ElemFactory<C extends RingElem<C>>
      Parameters:
      k - bitsize of random coefficients.
      Returns:
      a random power series.
    • random

      public UnivPowerSeries<C> random(int k, Random rnd)
      Generate a random power series with d = 0.7.
      Specified by:
      random in interface ElemFactory<C extends RingElem<C>>
      Parameters:
      k - bit-size of random coefficients.
      rnd - is a source for random bits.
      Returns:
      a random power series.
    • random

      public UnivPowerSeries<C> random(int k, float d)
      Generate a random power series.
      Parameters:
      k - bit-size of random coefficients.
      d - density of non-zero coefficients.
      Returns:
      a random power series.
    • random

      public UnivPowerSeries<C> random(int k, float d, Random rnd)
      Generate a random power series.
      Parameters:
      k - bit-size of random coefficients.
      d - density of non-zero coefficients.
      rnd - is a source for random bits.
      Returns:
      a random power series.
    • generate

      public UnivPowerSeries<C> generate(IntFunction<C> gener)
      Generate a power series via lambda expression.
      Parameters:
      gener - lambda expression.
      Returns:
      a generated power series.
    • copy

      public UnivPowerSeries<C> copy(UnivPowerSeries<C> c)
      Copy power series.
      Specified by:
      copy in interface ElemFactory<C extends RingElem<C>>
      Parameters:
      c - a power series.
      Returns:
      a copy of c.
    • parse

      public UnivPowerSeries<C> parse(String s)
      Parse a power series. Note: not implemented.
      Specified by:
      parse in interface ElemFactory<C extends RingElem<C>>
      Parameters:
      s - String.
      Returns:
      power series from s.
    • parse

      public UnivPowerSeries<C> parse(Reader r)
      Parse a power series. Note: not implemented.
      Specified by:
      parse in interface ElemFactory<C extends RingElem<C>>
      Parameters:
      r - Reader.
      Returns:
      next power series from r.
    • seriesOfTaylor

      public UnivPowerSeries<C> seriesOfTaylor(TaylorFunction<C> f, C a)
      Taylor power series.
      Parameters:
      f - function.
      a - expansion point.
      Returns:
      Taylor series of f.