Package edu.jas.ps

Class UnivPowerSeries<C extends RingElem<C>>

    • Field Detail

      • lazyCoeffs

        Coefficients<C extends RingElem<C>> lazyCoeffs
        Data structure / generating function for coefficients. Cannot be final because of fixPoint, must be accessible in factory.
      • truncate

        private int truncate
        Truncation of computations.
      • order

        private int order
        Order of power series.
    • Constructor Detail

      • UnivPowerSeries

        private UnivPowerSeries()
        Private constructor.
      • UnivPowerSeries

        UnivPowerSeries​(UnivPowerSeriesRing<C> ring)
        Package constructor. Use in fixPoint only, must be accessible in factory.
        Parameters:
        ring - power series ring.
      • UnivPowerSeries

        public UnivPowerSeries​(UnivPowerSeriesRing<C> ring,
                               Coefficients<C> lazyCoeffs)
        Constructor.
        Parameters:
        ring - power series ring.
        lazyCoeffs - generating function for coefficients.
    • Method Detail

      • copy

        public UnivPowerSeries<C> copy()
        Clone this power series.
        Specified by:
        copy in interface Element<C extends RingElem<C>>
        Returns:
        Creates and returns a copy of this Element.
        See Also:
        Object.clone()
      • toString

        public java.lang.String toString()
        String representation of power series.
        Overrides:
        toString in class java.lang.Object
        See Also:
        Object.toString()
      • toString

        public java.lang.String toString​(int truncate)
        To String with given truncate.
        Returns:
        string representation of this to given truncate.
      • toScript

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

        public java.lang.String toScriptFactory()
        Get a scripting compatible string representation of the factory.
        Specified by:
        toScriptFactory in interface Element<C extends RingElem<C>>
        Returns:
        script compatible representation for this ElemFactory.
        See Also:
        Element.toScriptFactory()
      • coefficient

        public C coefficient​(int index)
        Get coefficient.
        Parameters:
        index - number of requested coefficient.
        Returns:
        coefficient at index.
      • asPolynomial

        public GenPolynomial<C> asPolynomial()
        Get a GenPolynomial<C> from this.
        Returns:
        a GenPolynomial<C> from this up to truncate parts.
      • asVector

        public GenVector<C> asVector()
        Get a GenVector<C> from this.
        Returns:
        a GenVector<C> from this up to truncate parts.
      • leadingCoefficient

        public C leadingCoefficient()
        Leading base coefficient.
        Returns:
        first coefficient.
      • reductum

        public UnivPowerSeries<C> reductum()
        Reductum.
        Returns:
        this - leading monomial.
      • prepend

        public UnivPowerSeries<C> prepend​(C h)
        Prepend a new leading coefficient.
        Parameters:
        h - new coefficient.
        Returns:
        new power series.
      • shift

        public UnivPowerSeries<C> shift​(int k)
        Shift coefficients.
        Parameters:
        k - shift index.
        Returns:
        new power series with coefficient(i) = old.coefficient(i-k).
      • select

        public UnivPowerSeries<C> select​(Selector<? super C> sel)
        Select coefficients.
        Parameters:
        sel - selector functor.
        Returns:
        new power series with selected coefficients.
      • shiftSelect

        public UnivPowerSeries<C> shiftSelect​(Selector<? super C> sel)
        Shift select coefficients. Not selected coefficients are removed from the result series.
        Parameters:
        sel - selector functor.
        Returns:
        new power series with shifted selected coefficients.
      • map

        public UnivPowerSeries<C> map​(UnaryFunctor<? super C,​C> f)
        Map a unary function to this power series.
        Parameters:
        f - evaluation functor.
        Returns:
        new power series with coefficients f(this(i)).
      • zip

        public <C2 extends RingElem<C2>> UnivPowerSeries<C> zip​(BinaryFunctor<? super C,​? super C2,​C> f,
                                                                UnivPowerSeries<C2> ps)
        Map a binary function to this and another power series.
        Parameters:
        f - evaluation functor with coefficients f(this(i),other(i)).
        ps - other power series.
        Returns:
        new power series.
      • multiply

        public UnivPowerSeries<C> multiply​(C c)
        Multiply by coefficient.
        Parameters:
        c - coefficient.
        Returns:
        this * c.
      • monic

        public UnivPowerSeries<C> monic()
        Monic.
        Returns:
        1/orderCoeff() * this.
      • evaluate

        public C evaluate​(C e)
        Evaluate at given point.
        Returns:
        ps(c).
      • order

        public int order()
        Order.
        Returns:
        index of first non zero coefficient.
      • truncate

        public int truncate()
        Truncate.
        Returns:
        truncate index of power series.
      • setTruncate

        public int setTruncate​(int t)
        Set truncate.
        Parameters:
        t - new truncate index.
        Returns:
        old truncate index of power series.
      • compareTo

        public int compareTo​(UnivPowerSeries<C> ps)
        Compare to. Note: compare only up to truncate.
        Specified by:
        compareTo in interface java.lang.Comparable<C extends RingElem<C>>
        Specified by:
        compareTo in interface Element<C extends RingElem<C>>
        Returns:
        sign of first non zero coefficient of this-ps.
      • isONE

        public boolean isONE()
        Is power series one. Note: compare only up to truncate.
        Specified by:
        isONE in interface MonoidElem<C extends RingElem<C>>
        Returns:
        If this is 1 then true is returned, else false.
        See Also:
        MonoidElem.isONE()
      • equals

        public boolean equals​(java.lang.Object B)
        Comparison with any other object. Note: compare only up to truncate.
        Specified by:
        equals in interface Element<C extends RingElem<C>>
        Overrides:
        equals in class java.lang.Object
        Returns:
        true if this is equal to b, else false.
        See Also:
        Object.equals(java.lang.Object)
      • hashCode

        public int hashCode()
        Hash code for this polynomial. Note: only up to truncate.
        Specified by:
        hashCode in interface Element<C extends RingElem<C>>
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        the hashCode.
        See Also:
        Object.hashCode()
      • isUnit

        public boolean isUnit()
        Is unit.
        Specified by:
        isUnit in interface MonoidElem<C extends RingElem<C>>
        Returns:
        true, if this power series is invertible, else false.
      • remainder

        public UnivPowerSeries<C> remainder​(UnivPowerSeries<C> ps)
        Power series remainder.
        Specified by:
        remainder in interface MonoidElem<C extends RingElem<C>>
        Parameters:
        ps - nonzero power series with invertible leading coefficient.
        Returns:
        remainder with this = quotient * ps + remainder.
      • differentiate

        public UnivPowerSeries<C> differentiate()
        Differentiate.
        Returns:
        differentiate(this).
      • integrate

        public UnivPowerSeries<C> integrate​(C c)
        Integrate with given constant.
        Parameters:
        c - integration constant.
        Returns:
        integrate(this).
      • egcd

        public UnivPowerSeries<C>[] egcd​(UnivPowerSeries<C> S)
        Power series extended greatest common divisor. Note: not implemented.
        Specified by:
        egcd in interface RingElem<C extends RingElem<C>>
        Parameters:
        S - power series.
        Returns:
        [ gcd(this,S), a, b ] with a*this + b*S = gcd(this,S).