QEtaQuotientSortPackage QMOD¶
qetaqmspecs.spad line 114 [edit on github]
QMOD: QEtaModularCategory
QEtaQuotientSortPackage provides sorting functions for (modular) eta-quotients.
- lessLex?: (List List Integer, List List Integer) -> Boolean
lessLex?(w1,w2)returnsfalseifw1=w2. It returnstrueif first(w1)<first(w2) or (first(w1)=first(w2) and lessLex?(rest(w1),rest(w2))).
- sortByComponentGrade: (List QEtaSpecification, List Cusp) -> List QEtaSpecification
sortByComponentGrade(specs,spitzen)computes the levelnn, the common indices idxs and the respective exponent vectors gens and then sorts thespecslike sortByComponentGrade(nn,idxs,gens,spitzen).
- sortByComponentGrade: (PositiveInteger, List List Integer, List Vector Integer, List Cusp) -> List Vector Integer
sortByComponentGrade(nn,idxs,gens,spitzen)returnsgenssorted in the following way. Note that spec=etaQuotientSpecification(nn,idxs,s) is for eachsfromgenssupposed to be a (modular) eta-quotient specification. Letgrd(s)=g=(g1,…,gk) be the grades (=poleorders) at the cusps (given byspitzen) of a (modular) eta-specifications,sw(g)=sort(>,[[g1,1],…[gk,k]]),len2(g)=reduce(+,[l(1)z^2forlinsw(g)],0), andw(g)=cons([len2(g),0],sw(g)), thens1<s2istrueif lessLex?(w(grd(s1)),w(grd(s2))),s1<s2isfalseif lessLex?(w(grd(s2)),w(grd(s1))). Ifw(grd(s1))=w(grd(s2), then ties are broken by a similar comparison at setDifference(cusps(nn),spitzen) where the cusps remain in the order given by cusps$QMOD.