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?
SiegelTheta[IdentityMatrix[2]*I/\[Pi], {0, 0}] // N // Chop
seems to work. $\endgroup$