QEtaQuotientExponentVectorsAux

qetaqmspecs.spad line 113 [edit on github]

QEtaQuotientExponentVectorsAux provides a number of auxiliary functions for the use in the variants to compute etaQuotientExponentVectors.

smallerGrade?: (List List Integer, List List Integer) -> Boolean

smallerGrade?(l1, l2) takes two lists as input and sorts them (basically) lexicographically. It is supposed that li is a list of the form [[[g1,i1], [g2,i2], …, [gn,in]] where gk is the grade of a powerseries and ik the index of that powerseries in a vector. Furthermore, we assume that l1 and l2 have equal lengths and are themselves sorted descendingly.

sortByComponentGrade: (PositiveInteger, List Vector Integer) -> List List Integer

rs := sortByComponentGrade(m, gens) sorts gens such that if ri:=vector(rs.i), rj:=vector(rs.j), and i<j then smallerGrade?(toG(ri, t).sgi, toG(rj, t).sgi) holds where t:=transpose(matrixLigozat(m)$QMOD0) and toG computes the respective sorted grades. Informally, since the gens correspond to exponent vectors of eta-quotients and t to the transpose of the Ligozat matrix, v*t corresponds to the orders of the q-expansions at the respective cusps. This function orders the gens in such a way that the vector whose maximum grade (maximum taken over all cusps) is minimal comes first.