QEtaModularGamma1

qetamod.spad line 661 [edit on github]

QEtaModularGamma0 provides functions to check modularity for Gamma1. TODO: conditionCoEtaQuotient?(nn,rspec,m,t) returns true iff the conditions in Chapter 10 of cite{ChenDuZhao_FindingModularFunctionsRamanujan_2019} just before Theorem 10.1 are fulfilled. See Definition~ref{def:condition-co-eta-quotient-gamma1}. These are conditions for the existence of a product of eta- and generalized eta-quotient to exist as a cofactor for a disection of such a quotient. The parameter rbar specifies the generalized eta-quotient via etaQuotient(rbar). These are slight modifications of conditions appearing in Definition 35 of cite{Radu_RamanujanKolberg_2015} in case the defining eta-quotient is not a generalized one. candidateLevelsCoEtaQuotient(rspec,m,t) returns an ascendingly sorted list of the nn up to 24*m*level(rspec) such that conditionCoEtaQuotient?(nn,rspec,m,t) is true, i.e. that (nn,mm,rbar m,t) fulfills the 10 conditions as defined in Section 10 of cite{ChenDuZhao_FindingModularFunctionsRamanujan_2019}. The parameter rbar specifies the generalized eta-quotient via etaQuotient(rbar). z:=matrixEtaOrderElement(nn,cusp,idx). The parameter corresponds to the index of a (generalized) eta-quotient, i.e. it can be of the form idx=[delta,g] or of the form idx=[delta] with g in the range 0..delta. Then z is the coefficient of r_{delta,g} in cite[Thm.~4]{Robins_GeneralizedDedekindEtaProducts_1994}, except for the case nn=4, gcd(denom(cusp),nn)=2 (or Gamma1(4)-equivalent) where we return half of this coefficient. If idx=[delta] then z=1/2*matrixEtaOrderElement(nn,cusp,[delta,0])/2. and thus corresponds to the coefficient of $r_delta$ in eqref{eq:order-rbar-non-adjusted} in Theorem~ref{thm:matrixEtaOrderRobins}. Note that Robins refers to an expansion in the uniformizing variable q^(gcd(c,nn)/nn) (where cusp=a/c). That is equal to q^(1/width(c)$CongruenceSubgroupGamma1(nn)) except for the case nn=4 and gcd(nn,c)=2. In that case the width of the cusp 1/2 is 1 and not 2=4/gcd(4.2). For this case, we deviate from Robins’ coefficients and adapt to an expansion in q rather than an expansion in q^(1/2). matrixModular(nn,idxs) returns a matrix mat with 3 rows and n+2 colums (where n=#idxs such that mat*v=0 for an (extended) exponent vector where the exponents correspond to generalizedEtaFunctionIndices(nn). mat*v=0 encodes the conditions eqref{eq:generalized-weight}, eqref{eq:generalized-sigmaInfinity}, and eqref{eq:generalized-sigma0}, but corresponding to the given indices idxs. See also modularGamm1 and modularGamma1?. The first row encodes that the some of the exponents of the pure part must be zero. The second row encodes that order at infinity must be an integer. The third row encodes that the order at 0 must be an integer. For the last two rows, the “is-an-integer” property is encoded by a 1 in the (n+1)-th and (n+2)-th column, respectively. All other entries are 0. modular?(sspec,rspec,m,t) returns true iff all the conditions of Theorem~10.1 of cite{ChenDuZhao_FindingModularFunctionsRamanujan_2019} are fulfilled. Here the parameter sspec stands for the exponents $a_delta$ and $a_{delta,g}$. See also Theorem~ref{thm:condition-co-eta-quotient-gamma1}.

candidateLevelsCoEtaQuotient: (QEtaSpecification, PositiveInteger, NonNegativeInteger) -> List PositiveInteger

from QEtaModularCategory

conditionCoEtaQuotient?: (PositiveInteger, QEtaSpecification, PositiveInteger, NonNegativeInteger) -> Boolean

from QEtaModularCategory

cusps: PositiveInteger -> List Cusp

from QEtaModularCategory

cuspToMatrix: (PositiveInteger, Cusp) -> Matrix Integer

from QEtaModularCategory

etaCofactorSpace: (PositiveInteger, QEtaSpecification, PositiveInteger, NonNegativeInteger, List List Integer) -> Record(indices: List List Integer, particular: Union(Vector Integer, failed), basis: List Vector Integer)

from QEtaModularCategory

etaCofactorSpaceSystem: (PositiveInteger, QEtaSpecification, PositiveInteger, NonNegativeInteger, List List Integer) -> Record(qmat: Matrix Fraction Integer, zrels: Vector Integer, qrhs: Vector Fraction Integer)

from QEtaModularCategory

etaQuotientMonoidSystem: (PositiveInteger, List Cusp, List List Integer) -> Record(qmat: Matrix Fraction Integer, zrels: Vector Integer, qrhs: Vector Fraction Integer)

from QEtaModularCategory

genus: PositiveInteger -> NonNegativeInteger

from QEtaModularCategory

matrixEtaOrder: (PositiveInteger, List Cusp, List List Integer) -> Matrix Fraction Integer

from QEtaModularCategory

matrixEtaOrderElement: (PositiveInteger, Cusp, List Integer) -> Fraction Integer

from QEtaModularCategory

matrixEtaOrderFull: (PositiveInteger, List Cusp, List List Integer) -> Matrix Fraction Integer

from QEtaModularCategory

matrixEtaOrderRow: (PositiveInteger, Cusp, List List Integer) -> List Fraction Integer

from QEtaModularCategory

matrixModular: (PositiveInteger, List List Integer) -> Matrix Fraction Integer

from QEtaModularCategory

minimalLevelCoEtaQuotient: (QEtaSpecification, PositiveInteger, NonNegativeInteger) -> PositiveInteger

from QEtaModularCategory

modular?: (QEtaSpecification, QEtaSpecification, PositiveInteger, NonNegativeInteger) -> Boolean

from QEtaModularCategory

modular?: QEtaSpecification -> Boolean

from QEtaModularCategory

modularOrbit: (QEtaSpecification, PositiveInteger, NonNegativeInteger) -> List NonNegativeInteger

from QEtaModularCategory

width: (PositiveInteger, Cusp) -> PositiveInteger

from QEtaModularCategory

width: (PositiveInteger, Matrix Integer) -> PositiveInteger

from QEtaModularCategory

QEtaModularCategory