7
$\begingroup$

Bug introduced in 6.0 and persisting through 13.2.0

SiegelTheta is new in 6.0


In order to test the SiegelTheta function, I wanted to evaluate it for $\mathbf s=\mathbf 0$ when $\mathbf \Omega=(i/\pi)\mathbf I_n$ for some nonnegative integer $n$. (This ought to factorize to the $n$th power of the $n=1$ case, which is itself a Jacobi theta function.)

Strangely, this works for $n=3$...

SiegelTheta[IdentityMatrix[3]*I/π], {0, 0, 0}] // N // Chop
5.57006

but not for other nonnegative integers:

SiegelTheta[IdentityMatrix[2]*I/π, {0, 0, 0}]

SiegelTheta::invmat: {{I/π, 0}, {0, I/π}} must be a symmetric matrix with a positive definite imaginary part.

SiegelTheta[{{I/π, 0}, {0, I/π}}, {0, 0, 0}]


SiegelTheta[IdentityMatrix[4]*I/π, {0, 0, 0}]

SiegelTheta::invmat: {{I/π, 0, 0, 0}, {0, I/π, 0, 0}, {0, 0, I/π, 0}, {0, 0, 0, I/π}} must be a symmetric matrix with a positive definite imaginary part.

SiegelTheta[{{I/π, 0, 0, 0}, {0, I/π, 0, 0}, {0, 0, I/π, 0}, {0, 0, 0, I/π}}, {0, 0, 0}]

Given that $\Im \mathbf \Omega=(1/\pi)\mathbf I_n$ evaluates to True under the SymmetricMatrixQ[] and PositiveDefiniteMatrixQ[] commands, I can't see why the error message is popping up. Is there an obvious problem or fix?

$\endgroup$
5
  • 2
    $\begingroup$ You may want to change the size of the zero vector: for the 2 case, SiegelTheta[IdentityMatrix[2]*I/\[Pi], {0, 0}] // N // Chop seems to work. $\endgroup$
    – bill s
    Commented Mar 19, 2016 at 15:27
  • $\begingroup$ @bills That seems to do it, though that makes the error message seem entirely irrelevant. $\endgroup$ Commented Mar 19, 2016 at 15:45
  • 3
    $\begingroup$ Yeah, I'd call it a bug. $\endgroup$ Commented Mar 20, 2016 at 5:42
  • 1
    $\begingroup$ @J.M. Thanks for the edit! $\endgroup$ Commented Mar 20, 2016 at 14:29
  • 1
    $\begingroup$ To clarify, one of the requirements of SiegelTheta[] is "If Ω is a p*p matrix, the vectors s and v or v_i must have length p." When you changed to IdentityMatrix[2], your value of s should also switch to {0, 0}. The point remains though that Mathematica is printing the wrong error message. $\endgroup$
    – miles
    Commented Apr 10, 2016 at 8:34

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.