QEtaIdealCategory MODG

qetaicat.spad line 149 [edit on github]

QEtaIdealCategory(C) is a category that implements a number of functions connected to relations among Dedekind eta-functions. It allows for differend implementation of the function relationsIdealGenerator, which does the main job of computing the generators of the ideal of relations of modular eta-quotients having a pole at most at infinity.

algebraicRelations: (List List Integer, List Polynomial Integer, List Symbol) -> List Polynomial Integer

algebraicRelations(idxs, eqrels, vars) returns relations among the variables vars in eqrels. Here eqrels is supposed to be a list of polynomial in ei, yi, Mj variables and some other variables vars. This function uses the indices idxs to compute a basis of the eta-quotients with these indices and only poles at infinity and from them an ideal basis of relations among those eta-quotients. This basis together with eqrels is then translated into polynomials in ei (repesenting eta(itau) and yi (representing the inverse of eta(itau)). Then the the ei and yi variables are eliminated by a Groebner basis computation that only leaves relations among the variables in vars.

algebraicRelations: (List List Integer, List Polynomial Integer, List Symbol, String) -> List Polynomial Integer

algebraicRelations(idxs,geqrels,fsyms,basedir) returns algebraicRelations(idxs,geqrels,fsyms), but tries to read precomputed data from basedir. Note that if data is read from basedir, idxs should be equal to all indices corresponding to MODG, i.e. if MODG=GAMMA0(nn), then idxs=etaFunctionIndices(nn), if if MODG=GAMMA1(nn), then idxs=generalizedEtaFunctionIndices(nn). These conditions for idxs is not checked.

etaLaurentIdealGenerators: (List List Integer, List QEtaSpecification, List Polynomial Integer) -> List Polynomial Integer

etaLaurentIdealGenerators(idxs,mspecs,eqigens) returns the concatenation of the lists returned by etaLaurentIdealLists(idxs,mspecs,eqigens).

etaLaurentIdealGenerators: List List Integer -> List Polynomial Integer

etaLaurentIdealGenerators(idxs) computes generators for the ideal of eta-functions and their inverses given by the indices having no poles at the cusps given through MODG except at infinity. These eta-quotient generators are then expressed in ei and yi variables where ei stands for the eta-function with index i and yi for its inverse. Additionally relations of the form ei*yi-1 are added to include the relations among the ei and yi variables.

etaLaurentIdealLists: (List List Integer, List QEtaSpecification, List Polynomial Integer) -> List List Polynomial Integer

etaLaurentIdealLists(idxs,mspecs,eqigens) assumes that eqigens are generators for the ideal of all relations among the eta-quotients given by mspecs. The i-th entry of mspecs should be represented in eqigens by the variable Mi. The function simplifies ei*yi to 1 for any index i appearing in idxs. In that sense the function returns the generators of the ideal of all relations among generalized eta-functions and their inverses. The result is a two element list where the first entry is given by the trivial relations ei*yi-1 and the second list are the polynomials as described above.

etaQuotientIdealGenerators: (List List Integer, String) -> List Polynomial Integer

etaQuotientIdealGenerators(idxs,basedir) returns etaQuotientIdealGenerators(mspecs,basedir) for mspecs:=etaQuotientMonoidInfinitySpecifications(idxs,basedir).

etaQuotientIdealGenerators: (List QEtaSpecification, String) -> List Polynomial Integer

etaQuotientIdealGenerators(mspecs,basedir) returns etaQuotientIdealGenerators(mspecs) and stores the computed generators under basedir. If the file “etaQuotientIdealGenerators.input” already existed under the directory concat[basedir,"/",string(nn)], (where nn=groupLevel()$MODG) it will be read immediately and taken as the result of the computation.

etaQuotientIdealGenerators: List QEtaSpecification -> List Polynomial Integer

etaQuotientIdealGenerators(mspecs) returns polynomials in the variables M_i (where i runs from 1 to #mspecs) that generate the ideal of all relations of the eta-quotients given by mspecs. Originally it was intended that mspecs is the specifications of the eta-quotients given by etaQuotientMonoidInfinitySpecifications(idxs) from the package QEtaQuotientSpecifications4ti2. This function just sets up a the q-series and then calls relationsIdealGenerators on these series.

etaRelations: (List List Integer, List Polynomial Integer) -> List Polynomial Integer

etaRelations(idxs,eligens) eliminates the Y variables from the input and returns the resulting Groebner basis. It is assumed that eligens is a list of polynomials in ei and yi variables where the indices i are given by idxs.

etaRelations: (List List Integer, String) -> List Polynomial Integer

etaRelations(idxs,basedir) returns etaRelations(idxs,eligens) where mspecs:=etaQuotientMonoidInfinitySpecifications(idxs,basedir), eqigens:=etaQuotientIdealGenerators(mspecs,basedir), eligens:=etaLaurentIdealGenerators(idxs,mspecs,eqigens). If the file “etaRelations.input” already existed under the directory concat[basedir,"/",string(nn)], (where nn=groupLevel()$MODG) it will be read immediately and taken as the result of the computation.

etaRelations: List List Integer -> List Polynomial Integer

etaRelations(idxs) returns algebraic relations among the generalized eta-function given by the indices idxs.

laurentRelations: (List Symbol, List Symbol) -> List Polynomial Integer

laurentRelations(esyms,ysyms) returns [e*y-1 for e in esyms for y in ysyms].

laurentRelations: List List Integer -> List Polynomial Integer

laurentRelations(idxs) returns [e*y-1 for e in esyms for y in ysyms] where ysyms:=indexedSymbols("y",idxs)$QAuxiliaryTools and esyms:=indexedSymbols(“e”,idxs)$QAuxiliaryTools.

relationsIdealGenerators: List ModularFunctionQSeriesInfinity Fraction Integer -> List Polynomial Integer

relationsIdealGenerators(qseries) returns a set of generators in the variables M_i of the ideal of all relations among the given qseries. The initial series correspond to the variables M_i in the output of this function. We assume that qseries is a list of Laurent series in q that correspond to modular functions for $Gamma_0(N)$ or $Gamma_1(N)$ (depending on the MODG parameter having a pole (if any) at infinity only. The samba algorithm can be used in its extended form in order to also get a representation of resulting algebra basis in terms of the original elements. Algoritm samba is described in: Ralf Hemmecke, “Dancing Samba with Ramanujan Partition Congruences”, Journal of Symbolic Computation, 84, 2018. See cite{HemmeckeRadu_EtaRelations_2019} for more detail and the package QEtaIdealHemmecke.