QEtaQSeriesTools(C, xiord, CX, xi)ΒΆ

qetaqseriestool.spad line 118 [edit on github]

QEtaQSeriesTools provides functions for the transformation of $q$-series.

laurent: (QEtaPuiseuxSeries CX, Fraction Integer) -> QEtaLaurentSeries CX

Necessary input condition for laurent(x, w) is that w>0. If p(q)=s(z) is a Puiseux series p expressed as a Laurent series s in the variable z=q^r, then laurent(x, w) returns the laurent series l such that l(x)=s(z)=p(q) where x=q^(1/w) in case r*w is an integer. It might happen that r*w is not an integer. That is even to be expected since non-modular eta-quotients involve a factor in terms of q^(1/24). If r=s/t, then we take only every t-th term and check that the intermediate terms come indeed with a zero coefficient.

laurent: (QEtaPuiseuxSeries CX, PositiveInteger) -> QEtaLaurentSeries CX

laurent(p, w) returns laurent(p, w/1)

substitute: (QEtaLaurentSeries CX, Fraction Integer, Fraction Integer) -> QEtaPuiseuxSeries CX

If s(q) is a series in q, then substitute(s, u, v) returns a series t(q) such that t(q)=s(q^u*xi^v). Note that we assume that the series s has only q powers that are divisible by denom(v). Otherwise the function will abort with an error message if during the expansion of t the unity root xi would have to be raised to a fractional power.

substitute: (QEtaLaurentSeries CX, Fraction Integer, NonNegativeInteger) -> QEtaPuiseuxSeries CX

If s(q) is a series in q, then substitute(s, u, v) returns a series t(q) such that t(q)=s(q^u*xi^v).

xiPower: Fraction Integer -> Integer -> CX

xiPower(v)(e) returns xi^(v*e) and caches the result for v*e. If v*e does not have denominator 1, this function will abort with an error.

xiPower: Integer -> Integer -> CX

xiPower(v)(e) returns xi^(v*e) and caches the result for v*e.