/usr/share/axiom-20170501/src/algebra/STINPROD.spad is in axiom-source 20170501-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | )abbrev package STINPROD StreamInfiniteProduct
++ Author: Clifton J. Williamson
++ Date Created: 23 February 1990
++ Date Last Updated: 23 February 1990
++ Description:
++ This package computes infinite products of Taylor series over an
++ integral domain of characteristic 0. Here Taylor series are
++ represented by streams of Taylor coefficients.
StreamInfiniteProduct(Coef) : SIG == CODE where
Coef: Join(IntegralDomain,CharacteristicZero)
I ==> Integer
QF ==> Fraction
ST ==> Stream
SIG ==> with
infiniteProduct : ST Coef -> ST Coef
++ infiniteProduct(f(x)) computes \spad{product(n=1,2,3...,f(x**n))}.
++ The series \spad{f(x)} should have constant coefficient 1.
evenInfiniteProduct : ST Coef -> ST Coef
++ evenInfiniteProduct(f(x)) computes \spad{product(n=2,4,6...,f(x**n))}.
++ The series \spad{f(x)} should have constant coefficient 1.
oddInfiniteProduct : ST Coef -> ST Coef
++ oddInfiniteProduct(f(x)) computes \spad{product(n=1,3,5...,f(x**n))}.
++ The series \spad{f(x)} should have constant coefficient 1.
generalInfiniteProduct : (ST Coef,I,I) -> ST Coef
++ generalInfiniteProduct(f(x),a,d) computes
++ \spad{product(n=a,a+d,a+2*d,...,f(x**n))}.
++ The series \spad{f(x)} should have constant coefficient 1.
CODE ==> add
if Coef has Field then
import StreamTaylorSeriesOperations(Coef)
import StreamTranscendentalFunctions(Coef)
infiniteProduct st == exp lambert log st
evenInfiniteProduct st == exp evenlambert log st
oddInfiniteProduct st == exp oddlambert log st
generalInfiniteProduct(st,a,d) == exp generalLambert(log st,a,d)
else
import StreamTaylorSeriesOperations(QF Coef)
import StreamTranscendentalFunctions(QF Coef)
applyOverQF:(ST QF Coef -> ST QF Coef,ST Coef) -> ST Coef
applyOverQF(f,st) ==
stQF := map(z1 +-> z1::QF(Coef),st)$StreamFunctions2(Coef,QF Coef)
map(z1 +-> retract(z1)@Coef,f stQF)$StreamFunctions2(QF Coef,Coef)
infiniteProduct st == applyOverQF(z1 +-> exp lambert log z1,st)
evenInfiniteProduct st == applyOverQF(z1 +-> exp evenlambert log z1,st)
oddInfiniteProduct st == applyOverQF(z1 +-> exp oddlambert log z1,st)
generalInfiniteProduct(st,a,d) ==
applyOverQF(z1 +-> exp generalLambert(log z1,a,d),st)
|