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)
returnsfalse
ifw1=w2
. It returnstrue
if 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 thespecs
like sortByComponentGrade(nn
,idxs,gens,spitzen
).
- sortByComponentGrade: (PositiveInteger, List List Integer, List Vector Integer, List Cusp) -> List Vector Integer
sortByComponentGrade(nn,idxs,gens,spitzen)
returnsgens
sorted in the following way. Note that spec=etaQuotientSpecification(nn
,idxs
,s
) is for eachs
fromgens
supposed 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^2
forl
insw
(g
)],0), andw
(g
)=cons([len2
(g
),0],sw
(g
)), thens1<s2
istrue
if lessLex?(w
(grd
(s1
)),w
(grd
(s2
))),s1<s2
isfalse
if 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.