EllipticFunctions.jl documentation
Jacobi theta functions and related functions.
using EllipticFunctions
using Images
# array of complex values.
z = (1:-0.001:-1) .* im .+ (-1:0.001:1)';
# function z->RGB
function colormap(z)
if isinf(z) || isnan(z)
return RGB(0, 0, 0)
end
r = mod(abs(z), 1.0)
g = 2 * mod(angle(z), 0.5)
b = mod(real(z) * imag(z), 1.0)
if isnan(b)
return RGB(0, 0, 0)
end
return RGB(
(1.0 - cos(r-0.5))*8.0,
(1.0 - cos(g-0.5))*8.0,
(1.0 - cos(b-0.5))*8.0
)
end
# function to be plottes
function f(z)
return EllipticFunctions.wzeta(z; tau = 0.1 + 3im)
end
# raster image
image = colormap.(f(3*z))
Functions
The Weierstrass elliptic functions $\wp$, $\sigma$ and $\zeta$ are vectorized in the variable $z$. That means you do not need to use broadcasting in order to apply them to an array of $z$ values (this would be slower).
EllipticFunctions.ljtheta1
— Functionljtheta1(z, tau)
Logarithm of the first Jacobi theta function.
Arguments
z
: complex number or vector/array of complex numberstau
: complex number with nonnegative imaginary part
EllipticFunctions.jtheta1
— Functionjtheta1(z, tau)
First Jacobi theta function.
Arguments
z
: complex number or vector/array of complex numberstau
: complex number with nonnegative imaginary part
EllipticFunctions.ljtheta2
— Functionljtheta2(z, tau)
Logarithm of the second Jacobi theta function.
Arguments
z
: complex number or vector/array of complex numberstau
: complex number with nonnegative imaginary part
EllipticFunctions.jtheta2
— Functionjtheta2(z, tau)
Second Jacobi theta function.
Arguments
z
: complex number or vector/array of complex numberstau
: complex number with nonnegative imaginary part
EllipticFunctions.ljtheta3
— Functionljtheta3(z, tau)
Logarithm of the third Jacobi theta function.
Arguments
z
: complex number or vector/array of complex numberstau
: complex number with nonnegative imaginary part
EllipticFunctions.jtheta3
— Functionjtheta3(z, tau)
Third Jacobi theta function.
Arguments
z
: complex number or vector/array of complex numberstau
: complex number with nonnegative imaginary part
EllipticFunctions.ljtheta4
— Functionljtheta4(z, tau)
Logarithm of the fourth Jacobi theta function.
Arguments
z
: complex number or vector/array of complex numberstau
: complex number with nonnegative imaginary part
EllipticFunctions.jtheta4
— Functionjtheta4(z, tau)
Fourth Jacobi theta function.
Arguments
z
: complex number or vector/array of complex numberstau
: complex number with nonnegative imaginary part
EllipticFunctions.jtheta1dash
— Functionjtheta1dash(z, tau)
Derivative of the first Jacobi theta function.
Arguments
z
: complex number or vector/array of complex numberstau
: complex number with nonnegative imaginary part
EllipticFunctions.etaDedekind
— FunctionetaDedekind(tau)
Dedekind eta function.
Arguments
tau
: complex number with nonnegative imaginary part
EllipticFunctions.lambda
— Functionlambda(tau)
Lambda modular function.
Arguments
tau
: complex number with nonnegative imaginary part
EllipticFunctions.kleinj
— Functionkleinj(tau)
Klein j-invariant function.
Arguments
tau
: complex number with nonnegative imaginary part
EllipticFunctions.kleinjinv
— Functionkleinjinv(j)
Inverse of the Klein j-invariant function.
Arguments
j
: complex number
EllipticFunctions.CarlsonRC
— FunctionCarlsonRC(x, y, z)
Carlson 'RC' integral.
Arguments
x
,y
: complex numbers;y
cannot be zero
EllipticFunctions.CarlsonRD
— FunctionCarlsonRD(x, y, z)
Carlson 'RD' integral.
Arguments
x
,y
,z
: complex numbers; at most one of them can be zero
EllipticFunctions.CarlsonRF
— FunctionCarlsonRF(x, y, z)
Carlson 'RF' integral.
Arguments
x
,y
,z
: complex numbers; at most one of them can be zero
EllipticFunctions.CarlsonRG
— FunctionCarlsonRG(x, y, z)
Carlson 'RG' integral.
Arguments
x
,y
,z
: complex numbers
EllipticFunctions.CarlsonRJ
— FunctionCarlsonRJ(x, y, z)
Carlson 'RJ' integral.
Arguments
x
,y
,z
,p
: complex numbers; at most one of them can be zero
EllipticFunctions.ellipticE
— FunctionellipticE(phi, m)
Incomplete elliptic integral of the second kind.
Arguments
phi
: complex number, the amplitudem
: complex number, the squared modulus
ellipticE(m)
Complete elliptic integral of the second kind.
Arguments
m
: complex number, the squared modulus
EllipticFunctions.ellipticF
— FunctionellipticF(phi, m)
Incomplete elliptic integral of the first kind.
Arguments
phi
: complex number, the amplitudem
: complex number, the squared modulus
EllipticFunctions.ellipticK
— FunctionellipticK(m)
Complete elliptic integral of the first kind.
Arguments
m
: complex number, the squared modulus
EllipticFunctions.ellipticPI
— FunctionellipticPI(phi, n, m)
Incomplete elliptic integral of first kind.
Arguments
phi
: complex number, the amplituden
: complex number, the characteristicm
: complex number, the squared modulus
EllipticFunctions.ellipticZ
— FunctionellipticZ(phi, m)
Jacobi Zeta function.
Arguments
phi
: complex number, the amplitudem
: complex number, the squared modulus
EllipticFunctions.agm
— Functionagm(x, y)
Arithmetic-geometric mean.
Arguments
x
,y
: complex numbers
EllipticFunctions.EisensteinE2
— FunctionEisensteinE2(q)
Eisenstein E-series of weight 2.
Arguments
q
: nome, complex number; it must not be a negative real number and its modulus must be strictly smaller than 1
EllipticFunctions.EisensteinE4
— FunctionEisensteinE4(q)
Eisenstein E-series of weight 4.
Arguments
q
: nome, complex number; it must not be a negative real number and its modulus must be strictly smaller than 1
EllipticFunctions.ellipticInvariants
— FunctionellipticInvariants(omega1, omega2)
Weierstrass elliptic invariants $g_1$ and $g_2$ from the half-periods.
Arguments
omega1
,omega2
: the Weierstrass half periods, complex numbers
EllipticFunctions.halfPeriods
— FunctionhalfPeriods(g2, g3)
Half-periods $\omega_1$ and $\omega_2$ from the elliptic invariants.
Arguments
g2
,g3
: the Weierstrass elliptic invariants, complex numbers
EllipticFunctions.wp
— Functionwp(z; tau, omega)
Weierstrass p-function. One and only one of the parameters tau
, omega
or g
must be given.
Arguments
z
: complex number or vector/array of complex numberstau
: half-periods ratio, complex number with non negative imaginary partomega
: half-periods, a pair of complex numbersg
: elliptic invariants, a pair of complex numbersderivative
: order of differentiation, 0, 1, 2 or 3
EllipticFunctions.wsigma
— Functionwsigma(z; tau, omega)
Weierstrass sigma-function. One and only one of the parameters tau
, omega
or g
must be given.
Arguments
z
: complex number or vector/array of complex numberstau
: half-periods ratio, complex number with non negative imaginary partomega
: half-periods, a pair of complex numbersg
: elliptic invariants, a pair of complex numbers
EllipticFunctions.wzeta
— Functionwzeta(z; tau, omega)
Weierstrass zeta-function. One and only one of the parameters tau
, omega
or g
must be given.
Arguments
z
: complex number or vector/array of complex numberstau
: half-periods ratio, complex number with non negative imaginary partomega
: half-periods, a pair of complex numbersg
: elliptic invariants, a pair of complex numbers
EllipticFunctions.thetaC
— FunctionthetaC(z, tau)
Neville C-theta function. Only one of the parameters tau
or m
must be supplied.
Arguments
z
: complex number or vector/array of complex numberstau
: complex number with nonnegative imaginary partm
: complex number, square of the elliptic modulus
EllipticFunctions.thetaD
— FunctionthetaD(z, tau)
Neville D-theta function. Only one of the parameters tau
or m
must be supplied.
Arguments
z
: complex number or vector/array of complex numberstau
: complex number with nonnegative imaginary partm
: complex number, square of the elliptic modulus
EllipticFunctions.thetaN
— FunctionthetaN(z, tau)
Neville N-theta function. Only one of the parameters tau
or m
must be supplied.
Arguments
z
: complex number or vector/array of complex numberstau
: complex number with nonnegative imaginary partm
: complex number, square of the elliptic modulus
EllipticFunctions.thetaS
— FunctionthetaS(z, tau)
Neville S-theta function. Only one of the parameters tau
or m
must be supplied.
Arguments
z
: complex number or vector/array of complex numberstau
: complex number with nonnegative imaginary partm
: complex number, square of the elliptic modulus
EllipticFunctions.jellip
— Functionjellip(kind, u; tau, m)
Jacobi elliptic functions. Only one of the parameters tau
or m
must be supplied.
Arguments
kind
: a string with two characters among 'c', 'd', 'n' or 's'; this string specifies the function: the two letters respectively denote the basic functionssn
,cn
,dn
and1
, and the string specifies the ratio of two such functions, e.g.ns=1/sn
andcd=cn/dn
u
: complex number or vector/array of complex numberstau
: complex number with nonnegative imaginary partm
: complex number, square of the elliptic modulus
EllipticFunctions.am
— Functionam(u, m)
Amplitude function.
Arguments
u
: complex number or vector/array of complex numbersm
: complex number, square of the elliptic modulus
Index
EllipticFunctions.CarlsonRC
EllipticFunctions.CarlsonRD
EllipticFunctions.CarlsonRF
EllipticFunctions.CarlsonRG
EllipticFunctions.CarlsonRJ
EllipticFunctions.EisensteinE2
EllipticFunctions.EisensteinE4
EllipticFunctions.agm
EllipticFunctions.am
EllipticFunctions.ellipticE
EllipticFunctions.ellipticF
EllipticFunctions.ellipticInvariants
EllipticFunctions.ellipticK
EllipticFunctions.ellipticPI
EllipticFunctions.ellipticZ
EllipticFunctions.etaDedekind
EllipticFunctions.halfPeriods
EllipticFunctions.jellip
EllipticFunctions.jtheta1
EllipticFunctions.jtheta1dash
EllipticFunctions.jtheta2
EllipticFunctions.jtheta3
EllipticFunctions.jtheta4
EllipticFunctions.kleinj
EllipticFunctions.kleinjinv
EllipticFunctions.lambda
EllipticFunctions.ljtheta1
EllipticFunctions.ljtheta2
EllipticFunctions.ljtheta3
EllipticFunctions.ljtheta4
EllipticFunctions.thetaC
EllipticFunctions.thetaD
EllipticFunctions.thetaN
EllipticFunctions.thetaS
EllipticFunctions.wp
EllipticFunctions.wsigma
EllipticFunctions.wzeta