QEtaIdealCategory QMOD

qetaicat.spad line 151 [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, Character) -> List Polynomial Integer

algebraicRelations(idxs, eqrels, c) returns relations among the variables in eqrels that start with the character c. Here eqrels is supposed to be a list of polynomial in Ei, Yi, and Mi variables.

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: (PositiveInteger, List List Integer) -> List Polynomial Integer

etaLaurentIdealGenerators(nn,idxs) computes generators for the ideal of eta-functions and their inverses given by the indices having no poles at the cusps given through QMOD 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: (PositiveInteger, List List Integer, String) -> List Polynomial Integer

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

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

etaQuotientIdealGenerators(nn,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)], 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(nn,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: (PositiveInteger, List List Integer, String) -> List Polynomial Integer

etaRelations(nn,idxs,basedir) returns etaRelations(idxs,eligens) where mspecs:=etaQuotientMonoidInfinitySpecifications(nn,idxs,basedir), eqigens:=etaQuotientIdealGenerators(nn, mspecs, basedir), eligens:=etaLaurentIdealGenerators(idxs, mspecs, eqigens). If the file “etaRelations.input” already existed under the directory concat[basedir,"/",string(nn)], 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].

relationsIdealGenerators: (PositiveInteger, List ModularFunctionQSeriesInfinity Fraction Integer) -> List Polynomial Integer

relationsIdealGenerators(nn,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 QMOD 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.