EtaQuotientInfinity C¶
qetaquotinf.spad line 111 [edit on github]
C: Ring
EtaQuotientInfinity implements the (multiplicative) group of (generalized) eta-functions in their expansion at infinity. Elements can be represented as Laurent series in q
with a prefactor of q^r
where r
is a rational number (and in case of eta-quotient (non-generalized) r
has a denominator that is a divisor of 24). Note that this domain keeps the “fractional part” always separate from the “series part” even when the fractional part is an integer.
- 1: %
from MagmaWithUnit
- /: (%, %) -> % if C has IntegralDomain
from Group
- ^: (%, Integer) -> % if C has IntegralDomain
from Group
- ^: (%, NonNegativeInteger) -> %
from MagmaWithUnit
- ^: (%, PositiveInteger) -> %
from Magma
- coerce: % -> OutputForm
from CoercibleTo OutputForm
- commutator: (%, %) -> % if C has IntegralDomain
from Group
- conjugate: (%, %) -> % if C has IntegralDomain
from Group
- eta: PositiveInteger -> %
eta(n)
returnsq^
(n/24
)*prod_{k=1
}^infty (1-q^
{kn
}).
- etaPower: (PositiveInteger, Integer) -> %
etaPower(d, e)
returns eta(d
)^e.
- etaQuotientInfinity: QEtaSpecification -> %
etaQuotientInfinity(rspec)
returns the product (generalized) eta-powers for each listl
inrspec
. See generalizedEtaPower for the format of the parameterl
.
- eulerExpansion: % -> QEtaLaurentSeries C
eulerExpansion(x)
returns the power series (with constant coefficient 1) that results from just considering the product of Euler function powers (q
-Pochhammer symbols) connected to the creation the (generalized) eta-quotient.
- eulerExponent: % -> Fraction Integer
If
x
is a (generalized) eta-quotient, then eulerExponent(x
) is the fractional exponente
ofq
such that q^e*eulerExpansion(x
) is equal to the Puiseux series expansion ofx
.
- eulerFunctionPower: (PositiveInteger, Integer) -> QEtaLaurentSeries C
eulerFunctionPower(n, e)
computes (prod_{k=1
}^infty(1-q^
{kn
}))^e.
- expansion: % -> QEtaLaurentSeries C
expansion(x)
aborts with error if eulerExponent(x
) is not am integer. Otherwise it returns q^r*seriesPart(x
) where r=prefactor(x
) andq
is the variable of the series domain. It is the same as q^e*eulerExpansion(x
) where e=eulerExponent(x
).
- generalizedEtaPower: (PositiveInteger, PositiveInteger, Fraction Integer) -> %
generalizedEtaPower(d,g,e)
returns the generalized eta-quotient given by eqref{eq:generalized-eta-quotient} and formula (1.11) in cite{ChenDuZhao_FindingModularFunctionsRamanujan_2019
} raised to the powere
. generalizedEtaPower(d
,g
,e
) returns etaPower(d
, numer(2*e)), ifg=0
; etaQuotient([g
,d
],[numer(2*e),-numer(2*e)]), ifg=d/2
; and returns $eta_{d
,g
}(tau)^e$ ife
is an integer. Note that only forg=0
andg=d/2
the exponente
can be a half-integer. Otherwise, it must come with denominator=1
.
- hash: % -> SingleInteger
from SetCategory
- hashUpdate!: (HashState, %) -> HashState
from SetCategory
- inv: % -> % if C has IntegralDomain
from Group
- latex: % -> String
from SetCategory
- leftPower: (%, NonNegativeInteger) -> %
from MagmaWithUnit
- leftPower: (%, PositiveInteger) -> %
from Magma
- leftRecip: % -> Union(%, failed)
from MagmaWithUnit
- one?: % -> Boolean
from MagmaWithUnit
- polynomialToEta: Polynomial C -> %
polynomialToEta(p)
assumes that all variables are of the formEi
with the letterE
and a positive numberi
. In the polynomialp
the powers Ei^ni will be replaced by eta(i
)^ni. Ifl
is the leading monomialp
, then it is assumed that prefactor(toEta(l
))=prefactor(polynomialToEta(m
)) for every monomialm
ofp
.
- prefactor: % -> Fraction Integer
prefactor(x)
returns the fractional part of the fractional of the fractionalq
-power prefactor ofx
whereq
is the variable ofL
. The returned value is in the range 0<=prefactor(x
)<1
, because integer powers ofq
are moved to the series part.
- recip: % -> Union(%, failed)
from MagmaWithUnit
- rightPower: (%, NonNegativeInteger) -> %
from MagmaWithUnit
- rightPower: (%, PositiveInteger) -> %
from Magma
- rightRecip: % -> Union(%, failed)
from MagmaWithUnit
- sample: %
from MagmaWithUnit
- seriesPart: % -> QEtaLaurentSeries C
seriesPart(x)
returns the Laurent series part ofx
.x
= q^r*seriesPart(x
) where r=prefactor(x
).
Group if C has IntegralDomain
TwoSidedRecip if C has IntegralDomain
unitsKnown if C has IntegralDomain