gsl-shell.git - gsl-shell

index : gsl-shell.git
gsl-shell
summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat
-rw-r--r--Makefile 2
-rw-r--r--rnd.lua 53
-rw-r--r--templates/rnd-defs.lua.in 64
3 files changed, 67 insertions, 52 deletions
diff --git a/Makefile b/Makefile
index 66778997..06ea3a30 100644
--- a/Makefile
+++ b/Makefile
@@ -62,7 +62,7 @@ LUA_BASE_FILES = bspline.lua fft-init.lua integ-init.lua template.lua check.lua
HELP_FILES = graphics matrix iter integ ode nlfit vegas rng fft
DEMOS_LIST = bspline fft plot wave-particle fractals ode nlinfit integ anim linfit contour svg graphics sf vegas gdt-lm
-LUA_TEMPLATES = gauss-kronrod-x-wgs qag rk8pd lmfit qng rkf45 ode-defs rk4 sf-defs vegas-defs
+LUA_TEMPLATES = gauss-kronrod-x-wgs qag rk8pd lmfit qng rkf45 ode-defs rk4 sf-defs vegas-defs rnd-defs
EXAMPLES_FILES_SRC = am-women-weight perf-julia metro-lm-example exam
LUA_BASE_FILES += $(DEMOS_LIST:%=demos/%.lua)
diff --git a/rnd.lua b/rnd.lua
index 8e017ceb..c29be5e6 100644
--- a/rnd.lua
+++ b/rnd.lua
@@ -1,51 +1,2 @@
-
-local gsl = require 'gsl'
-local ran = {}
-
-ran.bernoulli = gsl.gsl_ran_bernoulli
-ran.beta = gsl.gsl_ran_beta
-ran.binomial = gsl.gsl_ran_binomial
-ran.binomial_knuth = gsl.gsl_ran_binomial_knuth
-ran.binomial_tpe = gsl.gsl_ran_binomial_tpe
-ran.exponential = gsl.gsl_ran_exponential
-ran.exppow = gsl.gsl_ran_exppow
-ran.cauchy = gsl.gsl_ran_cauchy
-ran.chisq = gsl.gsl_ran_chisq
-ran.erlang = gsl.gsl_ran_erlang
-ran.fdist = gsl.gsl_ran_fdist
-ran.flat = gsl.gsl_ran_flat
-ran.gamma = gsl.gsl_ran_gamma
-ran.gamma_int = gsl.gsl_ran_gamma_int
-ran.gamma_mt = gsl.gsl_ran_gamma_mt
-ran.gamma_knuth = gsl.gsl_ran_gamma_knuth
-ran.gaussian = gsl.gsl_ran_gaussian
-ran.gaussian_ratio_method = gsl.gsl_ran_gaussian_ratio_method
-ran.gaussian_ziggurat = gsl.gsl_ran_gaussian_ziggurat
-ran.ugaussian = gsl.gsl_ran_ugaussian
-ran.ugaussian_ratio_method = gsl.gsl_ran_ugaussian_ratio_method
-ran.gaussian_tail = gsl.gsl_ran_gaussian_tail
-ran.ugaussian_tail = gsl.gsl_ran_ugaussian_tail
-ran.bivariate_gaussian = gsl.gsl_ran_bivariate_gaussian
-ran.landau = gsl.gsl_ran_landau
-ran.geometric = gsl.gsl_ran_geometric
-ran.hypergeometric = gsl.gsl_ran_hypergeometric
-ran.gumbel1 = gsl.gsl_ran_gumbel1
-ran.gumbel2 = gsl.gsl_ran_gumbel2
-ran.logistic = gsl.gsl_ran_logistic
-ran.lognormal = gsl.gsl_ran_lognormal
-ran.logarithmic = gsl.gsl_ran_logarithmic
-ran.pascal = gsl.gsl_ran_pascal
-ran.pareto = gsl.gsl_ran_pareto
-ran.poisson = gsl.gsl_ran_poisson
-ran.rayleigh = gsl.gsl_ran_rayleigh
-ran.rayleigh_tail = gsl.gsl_ran_rayleigh_tail
-ran.tdist = gsl.gsl_ran_tdist
-ran.laplace = gsl.gsl_ran_laplace
-ran.levy = gsl.gsl_ran_levy
-ran.levy_skew = gsl.gsl_ran_levy_skew
-ran.weibull = gsl.gsl_ran_weibull
-
--- set global variable
-rnd = ran
-
-return ran
+local template = require 'template'
+template.load('rnd-defs', {})
diff --git a/templates/rnd-defs.lua.in b/templates/rnd-defs.lua.in
new file mode 100644
index 00000000..a3781d78
--- /dev/null
+++ b/templates/rnd-defs.lua.in
@@ -0,0 +1,64 @@
+
+# function ARGS(num_arg)
+# local t = {"r"}
+# for k = 1, num_arg do t[k+1] = "a"..k end
+# return table.concat(t, ",")
+# end
+
+# function RND_DECLARE(short_name, full_name, num_arg)
+# local xargs = ARGS(num_arg)
+# t = {
+# "function rnd."..short_name.."("..xargs..")",
+# " if r == nil then error(\"bad argument #1 to rnd."..short_name.." (RNG expected, got nil)\", 2) end",
+# " return gsl."..full_name.."("..xargs..")",
+# "end" }
+# return table.concat(t, "\n")
+# end
+
+local gsl = require 'gsl'
+
+rnd = {}
+
+$(RND_DECLARE("bernoulli", "gsl_ran_bernoulli", 1))
+$(RND_DECLARE("beta", "gsl_ran_beta", 2))
+$(RND_DECLARE("binomial", "gsl_ran_binomial", 2))
+$(RND_DECLARE("binomial_knuth", "gsl_ran_binomial_knuth", 2))
+$(RND_DECLARE("binomial_tpe", "gsl_ran_binomial_tpe", 1))
+$(RND_DECLARE("exponential", "gsl_ran_exponential", 1))
+$(RND_DECLARE("exppow", "gsl_ran_exppow", 2))
+$(RND_DECLARE("cauchy", "gsl_ran_cauchy", 1))
+$(RND_DECLARE("chisq", "gsl_ran_chisq", 1))
+$(RND_DECLARE("erlang", "gsl_ran_erlang", 2))
+$(RND_DECLARE("fdist", "gsl_ran_fdist", 2))
+$(RND_DECLARE("flat", "gsl_ran_flat", 2))
+$(RND_DECLARE("gamma", "gsl_ran_gamma", 2))
+$(RND_DECLARE("gamma_int", "gsl_ran_gamma_int", 1))
+$(RND_DECLARE("gamma_mt", "gsl_ran_gamma_mt", 2))
+$(RND_DECLARE("gamma_knuth", "gsl_ran_gamma_knuth", 2))
+$(RND_DECLARE("gaussian", "gsl_ran_gaussian", 1))
+$(RND_DECLARE("gaussian_ratio_method", "gsl_ran_gaussian_ratio_method", 1))
+$(RND_DECLARE("gaussian_ziggurat", "gsl_ran_gaussian_ziggurat", 1))
+$(RND_DECLARE("ugaussian", "gsl_ran_ugaussian", 0))
+$(RND_DECLARE("ugaussian_ratio_method", "gsl_ran_ugaussian_ratio_method", 0))
+$(RND_DECLARE("gaussian_tail", "gsl_ran_gaussian_tail", 2))
+$(RND_DECLARE("ugaussian_tail", "gsl_ran_ugaussian_tail", 1))
+$(RND_DECLARE("landau", "gsl_ran_landau", 0))
+$(RND_DECLARE("geometric", "gsl_ran_geometric", 1))
+$(RND_DECLARE("hypergeometric", "gsl_ran_hypergeometric", 3))
+$(RND_DECLARE("gumbel1", "gsl_ran_gumbel1", 2))
+$(RND_DECLARE("gumbel2", "gsl_ran_gumbel2", 2))
+$(RND_DECLARE("logistic", "gsl_ran_logistic", 1))
+$(RND_DECLARE("lognormal", "gsl_ran_lognormal", 2))
+$(RND_DECLARE("logarithmic", "gsl_ran_logarithmic", 1))
+$(RND_DECLARE("pascal", "gsl_ran_pascal", 2))
+$(RND_DECLARE("pareto", "gsl_ran_pareto", 2))
+$(RND_DECLARE("poisson", "gsl_ran_poisson", 1))
+$(RND_DECLARE("rayleigh", "gsl_ran_rayleigh", 1))
+$(RND_DECLARE("rayleigh_tail", "gsl_ran_rayleigh_tail", 2))
+$(RND_DECLARE("tdist", "gsl_ran_tdist", 1))
+$(RND_DECLARE("laplace", "gsl_ran_laplace", 1))
+$(RND_DECLARE("levy", "gsl_ran_levy", 2))
+$(RND_DECLARE("levy_skew", "gsl_ran_levy_skew", 3))
+$(RND_DECLARE("weibull", "gsl_ran_weibull", 2))
+
+return rnd
generated by cgit v1.2.3 (git 2.39.1) at 2025年10月01日 16:25:27 +0000

AltStyle によって変換されたページ (->オリジナル) /