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;ycannot 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,dnand1, and the string specifies the ratio of two such functions, e.g.ns=1/snandcd=cn/dnu: 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.CarlsonRCEllipticFunctions.CarlsonRDEllipticFunctions.CarlsonRFEllipticFunctions.CarlsonRGEllipticFunctions.CarlsonRJEllipticFunctions.EisensteinE2EllipticFunctions.EisensteinE4EllipticFunctions.agmEllipticFunctions.amEllipticFunctions.ellipticEEllipticFunctions.ellipticFEllipticFunctions.ellipticInvariantsEllipticFunctions.ellipticKEllipticFunctions.ellipticPIEllipticFunctions.ellipticZEllipticFunctions.etaDedekindEllipticFunctions.halfPeriodsEllipticFunctions.jellipEllipticFunctions.jtheta1EllipticFunctions.jtheta1dashEllipticFunctions.jtheta2EllipticFunctions.jtheta3EllipticFunctions.jtheta4EllipticFunctions.kleinjEllipticFunctions.kleinjinvEllipticFunctions.lambdaEllipticFunctions.ljtheta1EllipticFunctions.ljtheta2EllipticFunctions.ljtheta3EllipticFunctions.ljtheta4EllipticFunctions.thetaCEllipticFunctions.thetaDEllipticFunctions.thetaNEllipticFunctions.thetaSEllipticFunctions.wpEllipticFunctions.wsigmaEllipticFunctions.wzeta