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))

Reply via email to