The attached file can be compiled just fine.
I am at version a3c1d1dc5829126604345db3d672c2386d9296ae,
Unfortunately after compilation one function is missing.
(12) -> jacobiThetaPermutation(2,matrix [[1,2],[3,4]])
Internal Error
The function jacobiThetaPermutation with signature (PositiveInteger
, Matrix(Integer)) -> PositiveInteger is missing from domain
QEtaAuxiliaryPackage
And before you look for the problem, here is the solution.
Du you see the little backtick at the beginning of the line containing
error "jacobiThetaPermutation: j ...
before the definition of the "missing" function?
Removing the backtick cures this "missing function" problem, but of
course not the problem that I would have expected the compiler to yell
at me. I am not aware that a backtick is an acceptable character in a
spad program.
Ralf
--
You received this message because you are subscribed to the Google Groups "FriCAS -
computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/fricas-devel/99e63251-78ef-b6a2-149e-4897cb76d345%40hemmecke.org.
PP ==> PositiveInteger
ZZ ==> Integer
MZZ ==> Matrix ZZ -- will be a square matrix
SL2Z ==> MZZ -- represents SL_2(ZZ)
INTF ==> IntegerNumberTheoryFunctions
)abbrev package QETAAUX QEtaAuxiliaryPackage
QEtaAuxiliaryPackage: with
jacobiThetaPermutation: (PP, ZZ, ZZ, ZZ, ZZ) -> PP
jacobiThetaPermutation: (PP, SL2Z) -> PP
jacobiThetaUpsilonExponent: (PP, ZZ, ZZ, ZZ, ZZ) -> ZZ
== add
jacobiThetaUpsilonExponent(j: PP, a: ZZ, b: ZZ, c: ZZ, d: ZZ): ZZ ==
error "jacobiThetaUpsilonExponent: j is not in the range 1..4"
jacobiThetaPermutation2(m: ZZ, n: ZZ): PP ==
even? m => if even? n then 1 else 2
if odd? n then 3 else 4
jacobiThetaPermutation(j: PP, a: ZZ, b: ZZ, c: ZZ, d: ZZ): PP ==
one? j => 1
j=2 => jacobiThetaPermutation2(c,d)
j=3 => jacobiThetaPermutation2(a+c,b+d)
j=4 => jacobiThetaPermutation2(a,b)
` error "jacobiThetaPermutation: j is not in the range 1..4"
`
jacobiThetaPermutation(j: PP, g: SL2Z): PP ==
jacobiThetaPermutation(j,g(1,1),g(1,2),g(2,1),g(2,2))