QEtaModularGamma1 nn¶
qetamod.spad line 974 [edit on github]
nn: PositiveInteger
QEtaModularGamma1 provides functions to check modularity for Gamma1. TODO: z:=matrixEtaOrderElement(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[Theorem~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(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(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?(nn,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}.
- cuspMatrices: () -> List Matrix Integer
- etaCofactorSpace: (List List Integer, QEtaSpecification, PositiveInteger, NonNegativeInteger) -> Record(indices: List List Integer, particular: Union(Vector Integer, failed), basis: List Vector Integer)
- etaCofactorSpaceSystem: (List List Integer, QEtaSpecification, PositiveInteger, NonNegativeInteger) -> Record(qmat: Matrix Fraction Integer, zrels: Vector Integer, qrhs: Vector Fraction Integer, qsgn: List Integer)
- etaQuotientMonoidInfinitySystem: List List Integer -> Record(qmat: Matrix Fraction Integer, zrels: Vector Integer, qrhs: Vector Fraction Integer, qsgn: List Integer)
- etaQuotientMonoidNoPolesSystem: (List List Integer, List Cusp) -> Record(qmat: Matrix Fraction Integer, zrels: Vector Integer, qrhs: Vector Fraction Integer, qsgn: List Integer)
- etaQuotientMonoidSystem: (List List Integer, List Cusp) -> Record(qmat: Matrix Fraction Integer, zrels: Vector Integer, qrhs: Vector Fraction Integer, qsgn: List Integer)
- etaQuotientMonoidSystem: (List List Integer, List Cusp, List Cusp) -> Record(qmat: Matrix Fraction Integer, zrels: Vector Integer, qrhs: Vector Fraction Integer, qsgn: List Integer)
- etaQuotientMonoidSystem: (List List Integer, List Cusp, List Integer, List Integer, List Cusp) -> Record(qmat: Matrix Fraction Integer, zrels: Vector Integer, qrhs: Vector Fraction Integer, qsgn: List Integer)
- genus: () -> NonNegativeInteger
- groupLevel: () -> PositiveInteger
- modular?: (QEtaSpecification, QEtaSpecification, PositiveInteger, NonNegativeInteger) -> Boolean
- modular?: QEtaSpecification -> Boolean
- modularOrbit: (QEtaSpecification, PositiveInteger, NonNegativeInteger) -> List NonNegativeInteger
- modularOrbit: QGeneratingFunctionVariable -> List NonNegativeInteger
- numberOfGapsForSamba: () -> Integer