jacobi-theta 0.2.1.0 → 0.2.1.1
raw patch · 3 files changed
+24/−4 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGELOG.md +5/−0
- jacobi-theta.cabal +1/−1
- src/Math/JacobiTheta.hs +18/−3
CHANGELOG.md view
@@ -1,3 +1,8 @@+## 0.2.1.1 - 2023-10-18 + +Fixed a mistake in `jtheta1Dash0`. + + ## 0.2.1.0 - 2023-10-18 - Jacobi theta function with characteristics.
jacobi-theta.cabal view
@@ -1,5 +1,5 @@ name: jacobi-theta -version: 0.2.1.0 +version: 0.2.1.1 synopsis: Jacobi Theta Functions description: Evaluation of the Jacobi theta functions. homepage: https://github.com/stla/jacobi-theta#readme
src/Math/JacobiTheta.hs view
@@ -166,6 +166,19 @@ where tau = getTauFromQ q +jthetaAB' :: + Complex Double -- ^ characteristic a + -> Complex Double -- ^ characteristic b + -> Complex Double -- ^ z + -> Complex Double -- ^ tau + -> Complex Double +jthetaAB' a b z tau = c * exp(dologtheta3 (alpha+beta) tau 0 1000) + where + alpha = a * tau + beta = z/pi + b + c = exp(i_ * pi * a * (alpha + 2*beta)) + + -- | Jacobi theta function with characteristics. This is a family of functions, -- containing the first Jacobi theta function (@a=b=0.5@), the second Jacobi -- theta function (@a=0.5, b=0@), the third Jacobi theta function (@a=b=0@) @@ -200,9 +213,10 @@ jthetaAB a b z q = c * jtheta3 (alpha + beta) q where tau = getTauFromQ q - alpha = pi * a * tau + alpha = pi * a * tau beta = z + pi * b - c = exp(i_ * a * (alpha + 2*beta)) + c = exp(i_ * a * (alpha + 2*beta)) + -- c = q**(a*a) * exp(2 * i_ * a * beta) -- | Derivative at 0 of the first Jacobi theta function. This is much more -- efficient than evaluating @jtheta1Dash@ at @0@. @@ -212,7 +226,8 @@ jtheta1Dash0 q = -2 * i_ * jab * jab * jab where - jab = jthetaAB (1/6) 0.5 0 (q*q*q) + tau = getTauFromQ q + jab = jthetaAB' (1/6) 0.5 0 (3*tau) -- | Derivative of the first Jacobi theta function. jtheta1Dash ::