Skip to content
Oakfield Operator Calculus Function Reference Site

Special Functions API

All functions return numeric results (or {re, im} tables for complex results). Errors surface as Lua errors when inputs fall outside supported domains.

Logarithmic derivative of the Gamma function,

ψ(z)=ddzlogΓ(z)=Γ(z)Γ(z).\psi(z) = \frac{d}{dz}\log \Gamma(z) = \frac{\Gamma'(z)}{\Gamma(z)}.
local psi = sim.digamma(1.5)
local psi_c = sim.digamma({1.0, 0.2})

First polygamma (derivative of digamma),

ψ1(z)=ddzψ(z)=k=01(z+k)2.\psi_1(z) = \frac{d}{dz}\psi(z) = \sum_{k=0}^{\infty} \frac{1}{(z+k)^2}.
local trig = sim.trigamma(2.0)
local trig_c = sim.trigamma({0.5, -0.3})
ϕ(λ,ε;K)=k=0K1λλ+ε+k,\phi(\lambda,\varepsilon;K) = \sum_{k=0}^{K-1} \frac{\lambda}{\lambda + \varepsilon + k},
-- High precision evaluation of hyperexponential sum
local val = sim.hyperexp(2.0, 0.5, 8)
-- Digamma backed evaluation for stability at large K
local phi = sim.hyperexp_phi(2.0, 0.5, 8)
-- Complex extension
local phi_c = sim.hyperexp_phi_complex({1.2, 0.3}, {0.8, -0.1}, 8)
-- Derivative of phi with respect to lambda
local dphi = sim.hyperexp_phi_deriv(1.5, 0.4, 6)
ϕq(λ,ε;K,q)=k=0K1λλ+εqk,\phi_q(\lambda,\varepsilon;K,q) = \sum_{k=0}^{K-1} \frac{\lambda}{\lambda + \varepsilon q^{k}},
local qh = sim.qhyperexp(1.5, 0.2, 12, 0.9)
-- Alias of `sim.qhyperexp`; evaluates the same $\phi_q$ for real arguments.
local qphi = sim.qhyperexp_phi(1.5, 0.2, 12, 0.9)
-- Complex extension
local qphi_c = sim.qhyperexp_phi_complex({0.6, 0.4}, {0.3, -0.2}, 12, 0.9)
-- Derivative of $\phi_q$ with respect to $\lambda$
local qphi_d = sim.qhyperexp_phi_deriv(1.5, 0.2, 12, 0.9)
-- Complex derivative
local qphi_dc = sim.qhyperexp_phi_deriv_complex({0.6, 0.4}, {0.3, -0.2}, 12, 0.9)
[x]q=1qx1q,[x]_q = \frac{1 - q^{x}}{1 - q},

with limit [x]1=x[x]_1 = x as q1q \to 1.

local qn = sim.qnumber(1.5, 0.8)
local qn_c = sim.qnumber({0.5, 0.2}, 0.8)
ζq(s,a)=n=0q(n+a)(s1)[n+a]qs,\zeta_q(s,a) = \sum_{n=0}^{\infty} \frac{q^{(n+a)(s-1)}}{[n+a]_q^{\,s}},

convergent for q(0,1)q \in (0,1), s>1s>1, a>0a>0.

local z = sim.qzeta(1.5, 0.5, 0.9)
ψq(z)=ln(1q)+ln(q)n=0qn+z1qn+z,\psi_q(z) = -\ln(1 - q) + \ln(q)\sum_{n=0}^{\infty} \frac{q^{n+z}}{1 - q^{n+z}},

falling back to the classical ψ\psi as q1q \to 1.

local qpsi = sim.qdigamma(1.25, 0.9)
local qpsi_c = sim.qdigamma({1.0, -0.25}, 0.9)