QEtaSambaPackage(C, F, AB, Y)¶
qetasamba.spad line 688 [edit on github]
F: QEtaGradedAlgebra C
AB: QEtaAlgebraBasisCategory(C, F) with
basisElements: % -> XHashTable(Integer, List F)
Y: QEtaComputationCategory(F, AB)
QEtaSambaPackage implements the algorithm Samba from an article of Ralf Hemmecke: “Dancing Samba with Ramanujan Partition Congruences” (Journal of Symbolic Computation). doi:10
.1016/j.jsc
.2017.02.001 http://www.risc.jku.at/publications/download/risc_5338/DancingSambaRamanujan.pdf
- samba: (F, List F) -> AB
samba(t, m)
returns a listz
such thatC
[t
,m
] and theC
[t
]-module generated by 1 andz
are equal as sets. Assume that qetaGrade(t
)>0
.
- samba: (F, List F, Integer) -> AB
samnba(
t
,m
,g
) returns a listz
such thatC
[t
,m
] and theC
[t
]-module generated by 1 andz
are equal as sets. Assume that qetaGrade(t
)>0
. The computation is aborted if numberOfGaps(qetaGradet
, [qetaGradeb
forb
in basis]) is smaller or equal tog
. Here basis stands for an intermediate basis that is order-complete, i.e. for eachk
in 1..qetaGrade(t
)-1
it contain an elementb
withk
= positiveRemainder(qetaGradeb
, qetaGradet
). In caseC
is not a field, a basis only counts as order-complete if among theb
belonging to the samek
the one with the highest grade has a unit as leading coefficient. WARNING! IfC
is not a field it cannot be guaranteed that the resulting basis is the same as if computing without the genus = number of gaps criterion. One of the untreated elements might lead to a basis element of smaller grade that does not influence the number of gaps, but the property whether or not an element reduces to zero modulo the resulting basis.