-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | rnd.lua | 53 | ||||
-rw-r--r-- | templates/rnd-defs.lua.in | 64 |
@@ -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) @@ -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 |