StreamTaylorSeriesOperations A¶
sttaylor.spad line 1 [edit on github]
- A: Ring 
StreamTaylorSeriesOperations implements Taylor series arithmetic, where a Taylor series is represented by a stream of its coefficients, see corresponding operations in the category Ring.
- *: (A, Stream A) -> Stream A
- r * areturns the power series scalar multiplication of- rby- a:- r * [a0, a1, ...] = [r * a0, r * a1, ...]
- *: (Stream A, A) -> Stream A
- a * rreturns the power series scalar multiplication of- aby- r:- [a0, a1, ...] * r = [a0 * r, a1 * r, ...]
- *: (Stream A, Stream A) -> Stream A
- a * breturns the power series (Cauchy) product of- aand- b:- [a0, a1, ...] * [b0, b1, ...] = [c0, c1, ...]where- ck = sum(i + j = k, ai * bk).
- +: (Stream A, Stream A) -> Stream A
- a + breturns the power series sum of- aand- b:- [a0, a1, ..] + [b0, b1, ..] = [a0 + b0, a1 + b1, ..]
- -: (Stream A, Stream A) -> Stream A
- a - breturns the power series difference of- aand- b:- [a0, a1, ..] - [b0, b1, ..] = [a0 - b0, a1 - b1, ..]
- -: Stream A -> Stream A
- - areturns the power series negative of- a:- - [a0, a1, ...] = [- a0, - a1, ...]
- /: (Stream A, Stream A) -> Stream A
- a / breturns the power series quotient of- aby- b. An error message is returned if- bis not invertible. This function is used in fixed point computations.
- addiag: Stream Stream A -> Stream A
- addiag(x)performs diagonal addition of a stream of streams. if- x=- [[a<0, 0>, a<0, 1>, ..], [a<1, 0>, a<1, 1>, ..], [a<2, 0>, a<2, 1>, ..], ..]and- addiag(x) = [b<0, b<1>, ...], then b<k> = sum(i+j=k, a<i, j>).
- coerce: A -> Stream A
- coerce(r)converts a ring element- rto a stream with one element.
- compose: (Stream A, Stream A) -> Stream A
- compose(a, b)composes the power series- awith the power series- b.
- deriv: Stream A -> Stream A
- deriv(a)returns the derivative of the power series with respect to the power series variable. Thus- deriv([a0, a1, a2, ...])returns- [a1, 2 a2, 3 a3, ...].
- eval: (Stream A, A) -> Stream A
- eval(a, r)returns a stream of partial sums of the power series- aevaluated at the power series variable equal to- r.
- evenlambert: Stream A -> Stream A
- evenlambert(st)computes- f(x^2) + f(x^4) + f(x^6) + ...if- stis a stream representing- f(x). This function is used for computing infinite products. If- f(x)is a power series with constant coefficient 1, then- prod(f(x^(2*n)), n=1..infinity) = exp(evenlambert(log(f(x)))).
- exquo: (Stream A, Stream A) -> Union(Stream A, failed)
- exquo(a, b)returns the power series quotient of- aby- b, if the quotient exists, and “failed” otherwise
- gderiv: (Integer -> A, Stream A) -> Stream A
- gderiv(f, [a0, a1, a2, ..])returns- [f(0)*a0, f(1)*a1, f(2)*a2, ..].
- general_Lambert_product: (Stream A, Integer, Integer) -> Stream A
- general_Lambert_product(f(x), a, d)returns- f(x^a)*f(x^(a + d))*f(x^(a + 2 d))* ....- f(x)should have constant coefficient equal to one and- aand- dshould be positive.
- generalLambert: (Stream A, Integer, Integer) -> Stream A
- generalLambert(f(x), a, d)returns- f(x^a) + f(x^(a + d)) + f(x^(a + 2 d)) + ....- f(x)should have zero constant coefficient and- aand- dshould be positive.
- int: A -> Stream A
- int(r)returns [- r,- r+1,- r+2, …], where- ris a ring element.
- integrate: (A, Stream A) -> Stream A if A has Algebra Fraction Integer
- integrate(r, a)returns the integral of the power series- awith respect to the power series variable where- rdenotes the constant of integration. Thus- integrate(a, [a0, a1, a2, ...]) = [a, a0, a1/2, a2/3, ...].
- invmultisect: (Integer, Integer, Stream A) -> Stream A
- invmultisect(a, b, st)substitutes- x^((a+b)*n)for- x^nand multiplies by- x^b.
- lagrange: Stream A -> Stream A
- lagrange(g)produces the power series for- fwhere- fis implicitly defined as- f(z) = z*g(f(z)).
- lambert: Stream A -> Stream A
- lambert(st)computes- f(x) + f(x^2) + f(x^3) + ...if- stis a stream representing- f(x). This function is used for computing infinite products. If- f(x)is a power series with constant coefficient 1 then- prod(f(x^n), n = 1..infinity) = exp(lambert(log(f(x)))).
- lazyGintegrate: (Integer -> A, A, () -> Stream A) -> Stream A if A has Field
- lazyGintegrate(f, r, g)is used for fixed point computations.
- lazyIntegrate: (A, () -> Stream A) -> Stream A if A has Algebra Fraction Integer
- lazyIntegrate(r, f)is a version of integrate used for fixed point computations.
- mapdiv: (Stream A, Stream A) -> Stream A if A has Field
- mapdiv([a0, a1, ..], [b0, b1, ..])returns- [a0/b0, a1/b1, ..].
- mapmult: (Stream A, Stream A) -> Stream A
- mapmult([a0, a1, ..], [b0, b1, ..])returns- [a0*b0, a1*b1, ..].
- multisect: (Integer, Integer, Stream A) -> Stream A
- multisect(a, b, st)selects the coefficients of- x^((a+b)*n+a), and changes them to- x^n.
- nlde: Stream Stream A -> Stream A if A has Algebra Fraction Integer
- nlde(u)solves a first order non-linear differential equation described by- uof the form- [[b<0, 0>, b<0, 1>, ...], [b<1, 0>, b<1, 1>, .], ...]. the differential equation has the form- y' = sum(i=0 to infinity, j=0 to infinity, b<i, j>*(x^i)*(y^j)).
- oddlambert: Stream A -> Stream A
- oddlambert(st)computes- f(x) + f(x^3) + f(x^5) + ...if- stis a stream representing- f(x). This function is used for computing infinite products. If- f(- x) is a power series with constant coefficient 1 then- prod(f(x^(2*n-1)), n=1..infinity) = exp(oddlambert(log(f(x)))).
- power: (A, Stream A) -> Stream A if A has Field
- power(a, f)returns the power series- fraised to the power- a.
- powern: (Fraction Integer, Stream A) -> Stream A if A has Algebra Fraction Integer
- powern(r, f)raises power series- fto the power- r.
- prodiag: Stream Stream A -> Stream A
- prodiag(x)performs “diagonal” infinite product of a stream of streams. When- x(i)is interpreted as stream of coefficients of series- f_i(z), i=1,..., then- prodiag(x) = (1 + z*f_1(z))*(1 + z^2*f_2(x))*...