Mathematics Examples
CLI Examples
Section titled “CLI Examples”1) Calculate harmonic series to the billionth term
Section titled “1) Calculate harmonic series to the billionth term”Uses the digamma function relation
where is the digamma function and is the Euler-Mascheroni constant.
local sim = require("libsimcore")local ctx = sim.sim_create()local steps = 1000000000local dt = 0.02
sim.log("Starting simulation with %d steps and dt = %.3f", steps, dt)
local t0 = os.clock()
for n = 1, steps do local Hn = sim.digamma(n + 1) + 0.5772156649015329
if n % 1000000000 == 0 then sim.log("H_%d ≈ %.15f", n, Hn) endend
local elapsed = os.clock() - t0
sim.log("Simulation completed in %.15f seconds", elapsed)sim.sim_shutdown(ctx)
return ctxExample output:
oak@field % ./bin/sim_cli --script harmonic-series.lua[INFO] Starting simulation with 1000000000 steps and dt = 0.020[INFO] H_1000000000 ≈ 21.300481502347946[INFO] Simulation completed in 28.414504999993369 seconds2) Jackson q-number ladder
Section titled “2) Jackson q-number ladder”Walks the Jackson -number sequence
side-by-side for a fast-decaying deformation () and a near-classical case ().
local sim = require("libsimcore")local ctx = sim.sim_create()
local q_fast = 0.60local q_slow = 0.95local n_max = 12
sim.log("Jackson q-number ladder up to n=%d (q=%.2f vs q=%.2f)", n_max, q_fast, q_slow)
for n = 1, n_max do local fast = sim.qnumber(n, q_fast) local slow = sim.qnumber(n, q_slow) sim.log("n=%02d [n]_%.2f=%.8f [n]_%.2f=%.8f", n, q_fast, fast, q_slow, slow)end
sim.sim_shutdown(ctx)
return ctxExample output:
oak@field % ./bin/sim_cli --script q-number-ladder.lua[INFO] Jackson q-number ladder up to n=12 (q=0.60 vs q=0.95)[INFO] n=01 [n]_0.60=1.00000000 [n]_0.95=1.00000000[INFO] n=02 [n]_0.60=1.60000000 [n]_0.95=1.95000000[INFO] n=03 [n]_0.60=1.96000000 [n]_0.95=2.85250000[INFO] n=04 [n]_0.60=2.17600000 [n]_0.95=3.70987500[INFO] n=05 [n]_0.60=2.30560000 [n]_0.95=4.52438125[INFO] n=06 [n]_0.60=2.38336000 [n]_0.95=5.29816219[INFO] n=07 [n]_0.60=2.43001600 [n]_0.95=6.03325408[INFO] n=08 [n]_0.60=2.45800960 [n]_0.95=6.73159137[INFO] n=09 [n]_0.60=2.47480576 [n]_0.95=7.39501181[INFO] n=10 [n]_0.60=2.48488346 [n]_0.95=8.02526122[INFO] n=11 [n]_0.60=2.49093007 [n]_0.95=8.62399815[INFO] n=12 [n]_0.60=2.49455804 [n]_0.95=9.192798253) q-Hurwitz zeta spectrum
Section titled “3) q-Hurwitz zeta spectrum”Samples across increasing to show how the deformation pushes the series upward for a fixed pair.
local sim = require("libsimcore")local ctx = sim.sim_create()
local s = 2.50local a = 0.75local q_values = {0.10, 0.30, 0.50, 0.70, 0.90}
sim.log("q-Hurwitz zeta sweep for s=%.2f, a=%.2f", s, a)
for _, q in ipairs(q_values) do local z = sim.qzeta(s, a, q) sim.log("q=%.2f zeta_q=%.10f", q, z)end
sim.sim_shutdown(ctx)
return ctxExample output:
oak@field % ./bin/sim_cli --script qzeta-spectrum.lua[INFO] q-Hurwitz zeta sweep for s=2.50, a=0.75[INFO] q=0.10 zeta_q=0.0959811147[INFO] q=0.30 zeta_q=0.4157875357[INFO] q=0.50 zeta_q=0.8654166800[INFO] q=0.70 zeta_q=1.4323668003[INFO] q=0.90 zeta_q=2.11118217964) q-hyperexponential staircase
Section titled “4) q-hyperexponential staircase”Accumulates the -deformed hyperexponential sum
and its derivative for a few values to illustrate how additional terms reshape both the value and slope.
local sim = require("libsimcore")local ctx = sim.sim_create()
local lambda = 1.10local epsilon = 0.60local q = 0.82local steps = {3, 5, 7, 9, 11}
sim.log("q-hyperexponential ladder with lambda=%.2f, epsilon=%.2f, q=%.2f", lambda, epsilon, q)
for _, K in ipairs(steps) do local phi = sim.qhyperexp_phi(lambda, epsilon, K, q) local dphi = sim.qhyperexp_phi_deriv(lambda, epsilon, K, q) sim.log("K=%02d phi=%.8f dphi=%.8f", K, phi, dphi)end
sim.sim_shutdown(ctx)
return ctxExample output:
oak@field % ./bin/sim_cli --script q-hyperexp-staircase.lua[INFO] q-hyperexponential ladder with lambda=1.10, epsilon=0.60, q=0.82[INFO] K=03 phi=2.06966900 dphi=0.58022341[INFO] K=05 phi=3.64063279 dphi=0.88608059[INFO] K=07 phi=5.33019012 dphi=1.12418797[INFO] K=09 phi=7.11017829 dphi=1.30202556[INFO] K=11 phi=8.95666551 dphi=1.430781305) Trigamma curvature ladder
Section titled “5) Trigamma curvature ladder”Samples the trigamma (first polygamma) across half-steps to highlight how curvature decays as grows.
local sim = require("libsimcore")local ctx = sim.sim_create()
local z_values = {0.5, 1.0, 1.5, 2.0, 3.5, 5.0}
sim.log("Trigamma curvature samples psi1(z) for select z values")
for _, z in ipairs(z_values) do local psi1 = sim.trigamma(z) sim.log("z=%3.1f psi1=%.12f", z, psi1)end
sim.sim_shutdown(ctx)
return ctxExample output:
oak@field % ./bin/sim_cli --script trigamma-curvature.lua[INFO] Trigamma curvature samples psi1(z) for select z values[INFO] z=0.5 psi1=4.934797200545[INFO] z=1.0 psi1=1.644929066861[INFO] z=1.5 psi1=0.934797200570[INFO] z=2.0 psi1=0.644929066886[INFO] z=3.5 psi1=0.330352756175[INFO] z=5.0 psi1=0.2213179558506) q-digamma convergence to classical digamma
Section titled “6) q-digamma convergence to classical digamma”Shows how the -digamma approaches the classical digamma as by logging the delta.
local sim = require("libsimcore")local ctx = sim.sim_create()
local z = 5local q_values = {0.50, 0.70, 0.90, 0.97, 0.995}
local psi_classic = sim.digamma(z)sim.log("q-digamma convergence toward digamma at z=%d (psi=%.12f)", z, psi_classic)
for _, q in ipairs(q_values) do local psi_q = sim.qdigamma(z, q) local delta = psi_q - psi_classic sim.log("q=%.3f psi_q=%.12f delta=%.12f", q, psi_q, delta)end
sim.sim_shutdown(ctx)
return ctxExample output:
oak@field % ./bin/sim_cli --script qdigamma-limit.lua[INFO] q-digamma convergence toward digamma at z=5 (psi=1.506117668432)[INFO] q=0.500 psi_q=0.648898044222 delta=-0.857219624210[INFO] q=0.700 psi_q=0.981376082021 delta=-0.524741586411[INFO] q=0.900 psi_q=1.330585006503 delta=-0.175532661929[INFO] q=0.970 psi_q=1.453554858225 delta=-0.052562810207[INFO] q=0.995 psi_q=1.497365785717 delta=-0.0087518827157) Hyperexponential gain sweep
Section titled “7) Hyperexponential gain sweep”Sweeps while holding and fixed to show how the hyperexponential sum
and its slope change with signal level.
local sim = require("libsimcore")local ctx = sim.sim_create()
local epsilon = 0.40local K = 10local lambdas = {0.60, 1.00, 1.80, 3.00}
sim.log("Hyperexponential gain sweep (epsilon=%.2f, K=%d)", epsilon, K)sim.log("lambda phi(lambda) dphi/dlambda slope_ratio")
for _, lambda in ipairs(lambdas) do local phi = sim.hyperexp_phi(lambda, epsilon, K) local dphi = sim.hyperexp_phi_deriv(lambda, epsilon, K) local ratio = dphi / phi sim.log("%5.2f %11.8f %12.8f %11.8f", lambda, phi, dphi, ratio)end
sim.sim_shutdown(ctx)
return ctxExample output:
oak@field % ./bin/sim_cli --script hyperexp-gain-sweep.lua[INFO] Hyperexponential gain sweep (epsilon=0.40, K=10)[INFO] lambda phi(lambda) dphi/dlambda slope_ratio[INFO] 0.60 1.75738095 1.99910762 1.13754938[INFO] 1.00 2.45049752 1.51681989 0.61898446[INFO] 1.80 3.44807892 1.03807316 0.30105841[INFO] 3.00 4.46372879 0.69572733 0.15586237