| Copyright | (c) Stéphane Laurent 2023 |
|---|---|
| License | BSD3 |
| Maintainer | laurent_step@outlook.fr |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Math.JacobiTheta
Description
Provides the four usual Jacobi theta functions, the Jacobi theta function
with characteristics, the derivative of the first Jacobi theta function,
as well as a function for the derivative at 0 only of the first Jacobi
theta function.
Synopsis
- jtheta1 :: Complex Double -> Complex Double -> Complex Double
- jtheta2 :: Complex Double -> Complex Double -> Complex Double
- jtheta3 :: Complex Double -> Complex Double -> Complex Double
- jtheta4 :: Complex Double -> Complex Double -> Complex Double
- jthetaAB :: Complex Double -> Complex Double -> Complex Double -> Complex Double -> Complex Double
- jtheta1Dash0 :: Complex Double -> Complex Double
- jtheta1Dash :: Complex Double -> Complex Double -> Complex Double
Documentation
First Jacobi theta function.
Second Jacobi theta function.
Third Jacobi theta function.
Fourth Jacobi theta function.
Arguments
| :: Complex Double | characteristic a |
| -> Complex Double | characteristic b |
| -> Complex Double | z |
| -> Complex Double | q, the nome |
| -> Complex Double |
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)
and the fourth Jacobi theta function (a=0, b=0.5). The examples given
below show the periodicity-like properties of these functions:
>>>import Data.Complex>>>a = 2 :+ 0.3>>>b = 1 :+ (-0.6)>>>z = 0.1 :+ 0.4>>>tau = 0.2 :+ 0.3>>>im = 0 :+ 1>>>q = exp(im * pi * tau)>>>jab = jthetaAB a b z q>>>jthetaAB a b (z + pi) q(-5.285746223832433e-3) :+ 0.1674462628348814
>>>jab * exp(2 * im * pi * a)(-5.285746223831987e-3) :+ 0.16744626283488154
>>>jtheta_ab a b (z + pi*tau) q0.10389127606987271 :+ 0.10155646232306936
>>>jab * exp(-im * (pi*tau + 2*z + 2*pi*b))0.10389127606987278 :+ 0.10155646232306961
Derivative at 0 of the first Jacobi theta function. This is much more
efficient than evaluating jtheta1Dash at 0.