numo-gsl 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +4 -0
- data/README.md +84 -0
- data/Rakefile +16 -0
- data/ext/numo/gsl/cdf/depend +17 -0
- data/ext/numo/gsl/cdf/erbpp_cdf.rb +44 -0
- data/ext/numo/gsl/cdf/extconf.rb +9 -0
- data/ext/numo/gsl/cdf/func_def.rb +610 -0
- data/ext/numo/gsl/const/const_def.rb +419 -0
- data/ext/numo/gsl/const/depend +17 -0
- data/ext/numo/gsl/const/erbpp_const.rb +30 -0
- data/ext/numo/gsl/const/extconf.rb +9 -0
- data/ext/numo/gsl/err/depend +1 -0
- data/ext/numo/gsl/err/err.c +22 -0
- data/ext/numo/gsl/err/extconf.rb +9 -0
- data/ext/numo/gsl/extconf_gsl.rb +44 -0
- data/ext/numo/gsl/fit/depend +17 -0
- data/ext/numo/gsl/fit/erbpp_fit.rb +74 -0
- data/ext/numo/gsl/fit/extconf.rb +9 -0
- data/ext/numo/gsl/fit/func_def.rb +129 -0
- data/ext/numo/gsl/fit/tmpl/check_1d.c +9 -0
- data/ext/numo/gsl/fit/tmpl/fit_linear.c +53 -0
- data/ext/numo/gsl/fit/tmpl/fit_linear_est.c +56 -0
- data/ext/numo/gsl/fit/tmpl/fit_mul.c +50 -0
- data/ext/numo/gsl/fit/tmpl/fit_mul_est.c +47 -0
- data/ext/numo/gsl/fit/tmpl/fit_wlinear.c +59 -0
- data/ext/numo/gsl/fit/tmpl/fit_wmul.c +56 -0
- data/ext/numo/gsl/gen/erbpp2.rb +306 -0
- data/ext/numo/gsl/gen/erbpp_gsl.rb +166 -0
- data/ext/numo/gsl/gen/func_parser.rb +520 -0
- data/ext/numo/gsl/gen/tmpl/c_DFloat_f_DFloat.c +40 -0
- data/ext/numo/gsl/gen/tmpl/c_DFloat_f_SZ.c +41 -0
- data/ext/numo/gsl/gen/tmpl/c_DFloat_f_SZ_x2.c +44 -0
- data/ext/numo/gsl/gen/tmpl/c_DFloat_x2_f_DFloat_x2.c +45 -0
- data/ext/numo/gsl/gen/tmpl/c_double_f_double.c +16 -0
- data/ext/numo/gsl/gen/tmpl/c_double_f_sizet.c +16 -0
- data/ext/numo/gsl/gen/tmpl/c_double_f_sizet_x2.c +17 -0
- data/ext/numo/gsl/gen/tmpl/c_double_f_void.c +15 -0
- data/ext/numo/gsl/gen/tmpl/c_double_x2_f_void.c +17 -0
- data/ext/numo/gsl/gen/tmpl/c_new_DFloat.c +29 -0
- data/ext/numo/gsl/gen/tmpl/c_new_double.c +22 -0
- data/ext/numo/gsl/gen/tmpl/c_new_f_other.c +25 -0
- data/ext/numo/gsl/gen/tmpl/c_new_sizet.c +22 -0
- data/ext/numo/gsl/gen/tmpl/c_new_sizet_double.c +23 -0
- data/ext/numo/gsl/gen/tmpl/c_new_sizet_x2.c +23 -0
- data/ext/numo/gsl/gen/tmpl/c_new_void.c +21 -0
- data/ext/numo/gsl/gen/tmpl/c_other_f_void.c +19 -0
- data/ext/numo/gsl/gen/tmpl/c_self_f_DFloat.c +46 -0
- data/ext/numo/gsl/gen/tmpl/c_self_f_DFloat_x2.c +41 -0
- data/ext/numo/gsl/gen/tmpl/c_self_f_DFloat_x3.c +44 -0
- data/ext/numo/gsl/gen/tmpl/c_self_f_DFloat_x4.c +47 -0
- data/ext/numo/gsl/gen/tmpl/c_self_f_SZ_x2_DFloat.c +45 -0
- data/ext/numo/gsl/gen/tmpl/c_self_f_double.c +17 -0
- data/ext/numo/gsl/gen/tmpl/c_self_f_other.c +17 -0
- data/ext/numo/gsl/gen/tmpl/c_self_f_sizet.c +21 -0
- data/ext/numo/gsl/gen/tmpl/c_self_f_void.c +14 -0
- data/ext/numo/gsl/gen/tmpl/c_sizet_f_void.c +15 -0
- data/ext/numo/gsl/gen/tmpl/c_sizet_x2_f_void.c +17 -0
- data/ext/numo/gsl/gen/tmpl/c_str_f_void.c +15 -0
- data/ext/numo/gsl/gen/tmpl/c_super_new_void.c +18 -0
- data/ext/numo/gsl/gen/tmpl/c_uint_f_void.c +15 -0
- data/ext/numo/gsl/gen/tmpl/c_ulong_f_void.c +15 -0
- data/ext/numo/gsl/gen/tmpl/c_void_f_double.c +17 -0
- data/ext/numo/gsl/gen/tmpl/c_void_f_double_x2.c +18 -0
- data/ext/numo/gsl/gen/tmpl/c_void_f_double_x4.c +20 -0
- data/ext/numo/gsl/gen/tmpl/c_void_f_ulong.c +17 -0
- data/ext/numo/gsl/gen/tmpl/c_void_f_void.c +14 -0
- data/ext/numo/gsl/gen/tmpl/cast_1d_contiguous.c +15 -0
- data/ext/numo/gsl/gen/tmpl/cast_2d_contiguous.c +15 -0
- data/ext/numo/gsl/gen/tmpl/class.c +26 -0
- data/ext/numo/gsl/gen/tmpl/create_new_narray.c +26 -0
- data/ext/numo/gsl/gen/tmpl/init_class.c +10 -0
- data/ext/numo/gsl/gen/tmpl/init_module.c +12 -0
- data/ext/numo/gsl/gen/tmpl/lib.c +41 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_Int_f_DFloat.c +38 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat.c +35 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_Int.c +39 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_UInt.c +39 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_double.c +42 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_double_x2.c +47 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_int.c +42 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_x2.c +38 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_x3.c +41 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_Int.c +36 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt.c +36 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt32.c +36 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt32_double.c +43 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt32_double_uint.c +49 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt32_double_x2.c +48 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt32_uint_x3.c +51 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt_double.c +43 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt_double_uint.c +50 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt_double_x2.c +48 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt_uint_x3.c +51 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_int_DFloat.c +41 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_int_DFloat_x2.c +44 -0
- data/ext/numo/gsl/gen/tmpl/m_DFloat_f_int_x2_DFloat_x2.c +46 -0
- data/ext/numo/gsl/gen/tmpl/m_Int_f_DFloat.c +36 -0
- data/ext/numo/gsl/gen/tmpl/m_Int_f_DFloat_x3.c +42 -0
- data/ext/numo/gsl/gen/tmpl/m_Int_f_int_DFloat.c +42 -0
- data/ext/numo/gsl/gen/tmpl/m_Int_f_int_DFloat_x2.c +45 -0
- data/ext/numo/gsl/gen/tmpl/mod_func_noloop.c +54 -0
- data/ext/numo/gsl/gen/tmpl/mod_func_scalar.c +27 -0
- data/ext/numo/gsl/gen/tmpl/module.c +9 -0
- data/ext/numo/gsl/histogram/depend +17 -0
- data/ext/numo/gsl/histogram/erbpp_histogram.rb +109 -0
- data/ext/numo/gsl/histogram/extconf.rb +9 -0
- data/ext/numo/gsl/histogram/func_def.rb +763 -0
- data/ext/numo/gsl/histogram/tmpl/c_DFloat_f_2d_get.c +54 -0
- data/ext/numo/gsl/histogram/tmpl/c_DFloat_f_field.c +35 -0
- data/ext/numo/gsl/histogram/tmpl/c_DFloat_f_get.c +47 -0
- data/ext/numo/gsl/histogram/tmpl/c_DFloat_x2_f_get_range.c +56 -0
- data/ext/numo/gsl/histogram/tmpl/c_bool_f_other.c +19 -0
- data/ext/numo/gsl/histogram/tmpl/c_bool_f_pdf_init.c +24 -0
- data/ext/numo/gsl/histogram/tmpl/c_self_f_2d_set_ranges.c +26 -0
- data/ext/numo/gsl/histogram/tmpl/c_self_f_set_ranges.c +21 -0
- data/ext/numo/gsl/histogram/tmpl/c_sizet_f_field.c +15 -0
- data/ext/numo/gsl/interp/depend +17 -0
- data/ext/numo/gsl/interp/erbpp_interp.rb +59 -0
- data/ext/numo/gsl/interp/extconf.rb +9 -0
- data/ext/numo/gsl/interp/func_def.rb +816 -0
- data/ext/numo/gsl/interp/parse_interp.rb +67 -0
- data/ext/numo/gsl/interp/tmpl/interp2d_new.c +36 -0
- data/ext/numo/gsl/interp/tmpl/interp2d_type_new.c +17 -0
- data/ext/numo/gsl/interp/tmpl/interp_bsearch.c +57 -0
- data/ext/numo/gsl/interp/tmpl/interp_new.c +29 -0
- data/ext/numo/gsl/interp/tmpl/interp_type_new.c +16 -0
- data/ext/numo/gsl/interp/tmpl/spline2d_eval.c +61 -0
- data/ext/numo/gsl/interp/tmpl/spline_eval.c +55 -0
- data/ext/numo/gsl/interp/tmpl/spline_integ.c +56 -0
- data/ext/numo/gsl/interp/type_def.rb +9 -0
- data/ext/numo/gsl/multifit/depend +17 -0
- data/ext/numo/gsl/multifit/erbpp_multifit.rb +99 -0
- data/ext/numo/gsl/multifit/extconf.rb +9 -0
- data/ext/numo/gsl/multifit/func_2.1.rb +1035 -0
- data/ext/numo/gsl/multifit/func_2.2.1.rb +736 -0
- data/ext/numo/gsl/multifit/func_2.2.rb +736 -0
- data/ext/numo/gsl/multifit/func_2.3.rb +872 -0
- data/ext/numo/gsl/multifit/func_def.rb +1012 -0
- data/ext/numo/gsl/multifit/tmpl/multifit_linear.c +66 -0
- data/ext/numo/gsl/multifit/tmpl/multifit_linear_est.c +48 -0
- data/ext/numo/gsl/multifit/tmpl/multifit_linear_residuals.c +47 -0
- data/ext/numo/gsl/multifit/tmpl/multifit_wlinear.c +70 -0
- data/ext/numo/gsl/multifit/type_def.rb +1 -0
- data/ext/numo/gsl/numo_gsl.h +117 -0
- data/ext/numo/gsl/pdf/depend +17 -0
- data/ext/numo/gsl/pdf/erbpp_pdf.rb +26 -0
- data/ext/numo/gsl/pdf/extconf.rb +9 -0
- data/ext/numo/gsl/pdf/func_2.2.1.rb +306 -0
- data/ext/numo/gsl/pdf/func_2.2.rb +306 -0
- data/ext/numo/gsl/pdf/func_2.3.rb +306 -0
- data/ext/numo/gsl/pdf/func_def.rb +282 -0
- data/ext/numo/gsl/pdf/parse_pdf.rb +42 -0
- data/ext/numo/gsl/pdf/tmpl/dirichlet.c +39 -0
- data/ext/numo/gsl/pdf/tmpl/multinomial.c +39 -0
- data/ext/numo/gsl/poly/depend +17 -0
- data/ext/numo/gsl/poly/erbpp_poly.rb +70 -0
- data/ext/numo/gsl/poly/extconf.rb +9 -0
- data/ext/numo/gsl/poly/func_def.rb +234 -0
- data/ext/numo/gsl/poly/tmpl/poly_complex_solve.c +59 -0
- data/ext/numo/gsl/poly/tmpl/poly_eval.c +70 -0
- data/ext/numo/gsl/poly/tmpl/poly_eval_derivs.c +40 -0
- data/ext/numo/gsl/ran/depend +17 -0
- data/ext/numo/gsl/ran/erbpp_ran.rb +42 -0
- data/ext/numo/gsl/ran/extconf.rb +9 -0
- data/ext/numo/gsl/ran/func_2.2.1.rb +1658 -0
- data/ext/numo/gsl/ran/func_2.2.rb +1658 -0
- data/ext/numo/gsl/ran/func_2.3.rb +1658 -0
- data/ext/numo/gsl/ran/func_def.rb +1594 -0
- data/ext/numo/gsl/ran/parse_ran.rb +10 -0
- data/ext/numo/gsl/rng/depend +17 -0
- data/ext/numo/gsl/rng/erbpp_rng.rb +58 -0
- data/ext/numo/gsl/rng/extconf.rb +9 -0
- data/ext/numo/gsl/rng/func_def.rb +230 -0
- data/ext/numo/gsl/rng/parse_rng.rb +125 -0
- data/ext/numo/gsl/rng/tmpl/ran.c +40 -0
- data/ext/numo/gsl/rng/tmpl/ran_DFloat_f_DFloat.c +28 -0
- data/ext/numo/gsl/rng/tmpl/ran_DFloat_x2.c +45 -0
- data/ext/numo/gsl/rng/tmpl/ran_DFloat_x3.c +51 -0
- data/ext/numo/gsl/rng/tmpl/ran_multinomial.c +32 -0
- data/ext/numo/gsl/rng/tmpl/rng_DFloat.c +29 -0
- data/ext/numo/gsl/rng/tmpl/rng_UInt.c +44 -0
- data/ext/numo/gsl/rng/tmpl/rng_alloc.c +24 -0
- data/ext/numo/gsl/rng/tmpl/rng_type_new.c +14 -0
- data/ext/numo/gsl/rng/type_def.rb +63 -0
- data/ext/numo/gsl/rstat/depend +17 -0
- data/ext/numo/gsl/rstat/erbpp_rstat.rb +64 -0
- data/ext/numo/gsl/rstat/extconf.rb +9 -0
- data/ext/numo/gsl/rstat/func_2.2.1.rb +116 -0
- data/ext/numo/gsl/rstat/func_2.2.rb +116 -0
- data/ext/numo/gsl/rstat/func_2.3.rb +123 -0
- data/ext/numo/gsl/rstat/func_def.rb +102 -0
- data/ext/numo/gsl/sf/depend +17 -0
- data/ext/numo/gsl/sf/erbpp_sf.rb +51 -0
- data/ext/numo/gsl/sf/extconf.rb +9 -0
- data/ext/numo/gsl/sf/func_def.rb +4703 -0
- data/ext/numo/gsl/sf/parse_sf.rb +277 -0
- data/ext/numo/gsl/sf/tmpl/c_DFloat_f_int_x2_DFloat.c +50 -0
- data/ext/numo/gsl/sf/tmpl/c_DFloat_f_int_x2_DFloat_x2.c +52 -0
- data/ext/numo/gsl/sf/tmpl/c_DFloat_f_int_x3_DFloat_x2.c +55 -0
- data/ext/numo/gsl/sf/tmpl/m_DFloat_f_DFloat_mode.c +47 -0
- data/ext/numo/gsl/sf/tmpl/m_DFloat_f_lmax_array.c +41 -0
- data/ext/numo/gsl/sf/tmpl/m_DFloat_f_nmin_nmax_array.c +49 -0
- data/ext/numo/gsl/spmatrix/const_2.2.1.rb +3 -0
- data/ext/numo/gsl/spmatrix/const_2.2.rb +3 -0
- data/ext/numo/gsl/spmatrix/const_2.3.rb +3 -0
- data/ext/numo/gsl/spmatrix/const_def.rb +2 -0
- data/ext/numo/gsl/spmatrix/depend +17 -0
- data/ext/numo/gsl/spmatrix/erbpp_spmatrix.rb +100 -0
- data/ext/numo/gsl/spmatrix/extconf.rb +9 -0
- data/ext/numo/gsl/spmatrix/func_2.2.1.rb +297 -0
- data/ext/numo/gsl/spmatrix/func_2.2.rb +297 -0
- data/ext/numo/gsl/spmatrix/func_2.3.rb +297 -0
- data/ext/numo/gsl/spmatrix/func_def.rb +218 -0
- data/ext/numo/gsl/spmatrix/parse_spmatrix.rb +70 -0
- data/ext/numo/gsl/spmatrix/tmpl/itersolve_iterate.c +47 -0
- data/ext/numo/gsl/spmatrix/tmpl/itersolve_new.c +22 -0
- data/ext/numo/gsl/spmatrix/tmpl/itersolve_type_new.c +16 -0
- data/ext/numo/gsl/spmatrix/tmpl/spblas_dgemm.c +35 -0
- data/ext/numo/gsl/spmatrix/tmpl/spblas_dgemv.c +43 -0
- data/ext/numo/gsl/spmatrix/tmpl/spmatrix_add.c +22 -0
- data/ext/numo/gsl/spmatrix/tmpl/spmatrix_d2sp.c +28 -0
- data/ext/numo/gsl/spmatrix/tmpl/spmatrix_new.c +40 -0
- data/ext/numo/gsl/spmatrix/tmpl/spmatrix_sp2d.c +25 -0
- data/ext/numo/gsl/spmatrix/type_def.rb +1 -0
- data/ext/numo/gsl/stats/depend +17 -0
- data/ext/numo/gsl/stats/erbpp_stats.rb +29 -0
- data/ext/numo/gsl/stats/extconf.rb +9 -0
- data/ext/numo/gsl/stats/func_2.2.1.rb +608 -0
- data/ext/numo/gsl/stats/func_2.2.rb +608 -0
- data/ext/numo/gsl/stats/func_2.3.rb +608 -0
- data/ext/numo/gsl/stats/func_def.rb +608 -0
- data/ext/numo/gsl/stats/parse_stats.rb +63 -0
- data/ext/numo/gsl/stats/tmpl/stats_1a0p.c +37 -0
- data/ext/numo/gsl/stats/tmpl/stats_1a0p_index.c +60 -0
- data/ext/numo/gsl/stats/tmpl/stats_1a1p.c +41 -0
- data/ext/numo/gsl/stats/tmpl/stats_1a2p.c +42 -0
- data/ext/numo/gsl/stats/tmpl/stats_2a0p.c +39 -0
- data/ext/numo/gsl/stats/tmpl/stats_2a1p.c +43 -0
- data/ext/numo/gsl/stats/tmpl/stats_2a2p.c +44 -0
- data/ext/numo/gsl/stats/tmpl/stats_minmax.c +37 -0
- data/ext/numo/gsl/stats/tmpl/stats_minmax_index.c +67 -0
- data/ext/numo/gsl/stats/tmpl/stats_spearman.c +46 -0
- data/ext/numo/gsl/sys/const_def.rb +21 -0
- data/ext/numo/gsl/sys/depend +17 -0
- data/ext/numo/gsl/sys/enum_def.rb +75 -0
- data/ext/numo/gsl/sys/erbpp_sys.rb +60 -0
- data/ext/numo/gsl/sys/extconf.rb +9 -0
- data/ext/numo/gsl/sys/func_def.rb +249 -0
- data/ext/numo/gsl/version.h +1 -0
- data/ext/numo/gsl/wavelet/depend +17 -0
- data/ext/numo/gsl/wavelet/erbpp_wavelet.rb +48 -0
- data/ext/numo/gsl/wavelet/extconf.rb +9 -0
- data/ext/numo/gsl/wavelet/func_def.rb +337 -0
- data/ext/numo/gsl/wavelet/parse_wavelet.rb +47 -0
- data/ext/numo/gsl/wavelet/tmpl/wavelet2d_transform.c +56 -0
- data/ext/numo/gsl/wavelet/tmpl/wavelet_array_check.c +56 -0
- data/ext/numo/gsl/wavelet/tmpl/wavelet_macro.c +1 -0
- data/ext/numo/gsl/wavelet/tmpl/wavelet_new.c +20 -0
- data/ext/numo/gsl/wavelet/tmpl/wavelet_transform.c +55 -0
- data/ext/numo/gsl/wavelet/tmpl/wavelet_transform2.c +22 -0
- data/ext/numo/gsl/wavelet/tmpl/wavelet_type_new.c +15 -0
- data/ext/numo/gsl/wavelet/type_def.rb +6 -0
- data/lib/numo/gsl.rb +17 -0
- data/numo-gsl.gemspec +33 -0
- metadata +367 -0
@@ -0,0 +1,54 @@
|
|
1
|
+
static void
|
2
|
+
iter_<%=c_func%>(na_loop_t *const lp)
|
3
|
+
{
|
4
|
+
size_t n, i;
|
5
|
+
char *p1, *p2, *p3;
|
6
|
+
ssize_t s1, s2, s3;
|
7
|
+
ssize_t x1, x2;
|
8
|
+
size_t y1, y2;
|
9
|
+
double y3;
|
10
|
+
<%=struct%> *w = (<%=struct%>*)(lp->opt_ptr);
|
11
|
+
|
12
|
+
INIT_COUNTER(lp, n);
|
13
|
+
INIT_PTR(lp, 0, p1, s1);
|
14
|
+
INIT_PTR(lp, 1, p2, s2);
|
15
|
+
INIT_PTR(lp, 2, p3, s3);
|
16
|
+
|
17
|
+
for (i=0; i<n; i++) {
|
18
|
+
GET_DATA_STRIDE(p1,s1,ssize_t,x1);
|
19
|
+
GET_DATA_STRIDE(p2,s2,ssize_t,x2);
|
20
|
+
if (x1 < 0) {
|
21
|
+
y1 = x1 + w->nx;
|
22
|
+
} else {
|
23
|
+
y1 = x1;
|
24
|
+
}
|
25
|
+
if (x2 < 0) {
|
26
|
+
y2 = x2 + w->ny;
|
27
|
+
} else {
|
28
|
+
y2 = x2;
|
29
|
+
}
|
30
|
+
y3 = <%=func_name%>(<%=get(:postpose) ? "y1,y2,w" : "w,y1,y2"%>);
|
31
|
+
SET_DATA_STRIDE(p3,s3,double,y3);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
/*
|
36
|
+
@overload <%=name%>(<%=args[1][1]%>, <%=args[2][1]%>)
|
37
|
+
@param [Int32/64] <%=args[1][1]%>
|
38
|
+
@param [Int32/64] <%=args[2][1]%>
|
39
|
+
@return [<%=class_name%>] self
|
40
|
+
|
41
|
+
<%= description %>
|
42
|
+
*/
|
43
|
+
static VALUE
|
44
|
+
<%=c_func(2)%>(VALUE self, VALUE v1, VALUE v2)
|
45
|
+
{
|
46
|
+
<%=struct%> *w;
|
47
|
+
ndfunc_arg_in_t ain[2] = {{cSSZ,0},{cSSZ,0}};
|
48
|
+
ndfunc_arg_out_t aout[1] = {{cDF,0}};
|
49
|
+
ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 2,1, ain,aout};
|
50
|
+
|
51
|
+
TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
|
52
|
+
|
53
|
+
return na_ndloop3(&ndf, w, 2, v1, v2);
|
54
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<% nd = (/histogram2d/ =~ struct) ? 2 : 1 %>
|
2
|
+
/*
|
3
|
+
@overload <%=name%>()
|
4
|
+
@return [DFloat] narray of <%=name%> field in <%=struct%>.
|
5
|
+
|
6
|
+
returns <%=name%> field in <%=struct%> struct.
|
7
|
+
<%= description %>
|
8
|
+
*/
|
9
|
+
static VALUE
|
10
|
+
<%=c_func(0)%>(VALUE self)
|
11
|
+
{
|
12
|
+
<%=struct%> *w;
|
13
|
+
double *d;
|
14
|
+
VALUE v;
|
15
|
+
size_t n, i, shape[<%=nd%>];
|
16
|
+
|
17
|
+
TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
|
18
|
+
|
19
|
+
<%if /([xy]?)range/ =~ name %>
|
20
|
+
shape[0] = n = w->n<%=$1%>+1;
|
21
|
+
<%elsif nd==1%>
|
22
|
+
shape[0] = n = w->n;
|
23
|
+
<%else%>
|
24
|
+
n = w->nx * w->ny;
|
25
|
+
shape[0] = w->nx;
|
26
|
+
shape[1] = w->ny;
|
27
|
+
<%end%>
|
28
|
+
|
29
|
+
v = rb_narray_new(cDF, <%=nd%>, shape);
|
30
|
+
d = (double*)na_get_pointer_for_write(v);
|
31
|
+
for (i=0; i<n; i++) {
|
32
|
+
d[i] = w-><%=name%>[i];
|
33
|
+
}
|
34
|
+
return v;
|
35
|
+
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
static void
|
2
|
+
iter_<%=c_func%>(na_loop_t *const lp)
|
3
|
+
{
|
4
|
+
size_t n, i;
|
5
|
+
char *p1, *p2;
|
6
|
+
ssize_t s1, s2;
|
7
|
+
ssize_t x1;
|
8
|
+
size_t y1;
|
9
|
+
double y2;
|
10
|
+
<%=struct%> *w = (<%=struct%>*)(lp->opt_ptr);
|
11
|
+
|
12
|
+
INIT_COUNTER(lp, n);
|
13
|
+
INIT_PTR(lp, 0, p1, s1);
|
14
|
+
INIT_PTR(lp, 1, p2, s2);
|
15
|
+
|
16
|
+
for (i=0; i<n; i++) {
|
17
|
+
GET_DATA_STRIDE(p1,s1,ssize_t,x1);
|
18
|
+
if (x1 < 0) {
|
19
|
+
y1 = x1 + w->n;
|
20
|
+
} else {
|
21
|
+
y1 = x1;
|
22
|
+
}
|
23
|
+
y2 = <%=func_name%>(<%=get(:postpose) ? "y1,w" : "w,y1"%>);
|
24
|
+
SET_DATA_STRIDE(p2,s2,double,y2);
|
25
|
+
}
|
26
|
+
}
|
27
|
+
#undef FUNC
|
28
|
+
|
29
|
+
/*
|
30
|
+
@overload <%=name%>(<%=args[1][1]%>)
|
31
|
+
@param [Int32/64] <%=args[1][1]%>
|
32
|
+
@return [<%=class_name%>] self
|
33
|
+
|
34
|
+
<%= description %>
|
35
|
+
*/
|
36
|
+
static VALUE
|
37
|
+
<%=c_func(1)%>(VALUE self, VALUE v1)
|
38
|
+
{
|
39
|
+
<%=struct%> *w;
|
40
|
+
ndfunc_arg_in_t ain[1] = {{cSSZ,0}};
|
41
|
+
ndfunc_arg_out_t aout[1] = {{cDF,0}};
|
42
|
+
ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 1,1, ain,aout};
|
43
|
+
|
44
|
+
TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
|
45
|
+
|
46
|
+
return na_ndloop3(&ndf, w, 1, v1);
|
47
|
+
}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
<%
|
2
|
+
n = case name
|
3
|
+
when /_xrange/; "nx"
|
4
|
+
when /_yrange/; "ny"
|
5
|
+
when /_range/; "n"
|
6
|
+
end
|
7
|
+
%>
|
8
|
+
|
9
|
+
static void
|
10
|
+
iter_<%=c_func%>(na_loop_t *const lp)
|
11
|
+
{
|
12
|
+
size_t n, i;
|
13
|
+
char *p1, *p2, *p3;
|
14
|
+
ssize_t s1, s2, s3;
|
15
|
+
ssize_t x1;
|
16
|
+
size_t y1;
|
17
|
+
double y2, y3;
|
18
|
+
<%=struct%> *w = (<%=struct%>*)(lp->opt_ptr);
|
19
|
+
|
20
|
+
INIT_COUNTER(lp, n);
|
21
|
+
INIT_PTR(lp, 0, p1, s1);
|
22
|
+
INIT_PTR(lp, 1, p2, s2);
|
23
|
+
INIT_PTR(lp, 2, p3, s3);
|
24
|
+
|
25
|
+
for (i=0; i<n; i++) {
|
26
|
+
GET_DATA_STRIDE(p1,s1,ssize_t,x1);
|
27
|
+
if (x1 < 0) {
|
28
|
+
y1 = x1 + w-><%=n%>;
|
29
|
+
} else {
|
30
|
+
y1 = x1;
|
31
|
+
}
|
32
|
+
<%=func_name%>(<%=get(:postpose) ? "y1,&y2,&y3,w" : "w,y1,&y2,&y3"%>);
|
33
|
+
SET_DATA_STRIDE(p2,s2,double,y2);
|
34
|
+
SET_DATA_STRIDE(p3,s3,double,y3);
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
/*
|
39
|
+
@overload <%=name%>(<%=args[1][1]%>)
|
40
|
+
@param [Int32/64] <%=args[1][1]%> Int32/64 NArray
|
41
|
+
@return [Array] array of [[DFloat] <%=args[2][1]%>, [DFloat] <%=args[3][1]%>]
|
42
|
+
|
43
|
+
<%= description %>
|
44
|
+
*/
|
45
|
+
static VALUE
|
46
|
+
<%=c_func(1)%>(VALUE self, VALUE v1)
|
47
|
+
{
|
48
|
+
<%=struct%> *w;
|
49
|
+
ndfunc_arg_in_t ain[1] = {{cSSZ,0}};
|
50
|
+
ndfunc_arg_out_t aout[2] = {{cDF,0},{cDF,0}};
|
51
|
+
ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 1,2, ain,aout};
|
52
|
+
|
53
|
+
TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
|
54
|
+
|
55
|
+
return na_ndloop3(&ndf, w, 1, v1);
|
56
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/*
|
2
|
+
@overload <%=name%>(<%=args[1][1]%>)
|
3
|
+
@param [<%=class_name%>] <%=args[1][1]%>
|
4
|
+
@return [Bool]
|
5
|
+
|
6
|
+
<%= description %>
|
7
|
+
*/
|
8
|
+
static VALUE
|
9
|
+
<%=c_func(1)%>(VALUE self, VALUE v1)
|
10
|
+
{
|
11
|
+
int stat;
|
12
|
+
<%=struct%> *w, *w1;
|
13
|
+
|
14
|
+
TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
|
15
|
+
TypedData_Get_Struct(v1, <%=struct%>, &<%=data_type_var%>, w1);
|
16
|
+
|
17
|
+
stat = <%=func_name%>(w, w1);
|
18
|
+
return (stat) ? Qtrue: Qfalse;
|
19
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<%
|
2
|
+
h_struct = struct.sub(/_pdf/,"")
|
3
|
+
h_data_type_var = data_type_var.sub(/_pdf/,"")
|
4
|
+
%>
|
5
|
+
/*
|
6
|
+
@overload <%=name%>(<%=args[1][1]%>)
|
7
|
+
@param [<%=class_name%>] <%=args[1][1]%>
|
8
|
+
@return [Bool]
|
9
|
+
|
10
|
+
<%= description %>
|
11
|
+
*/
|
12
|
+
static VALUE
|
13
|
+
<%=c_func(1)%>(VALUE self, VALUE v1)
|
14
|
+
{
|
15
|
+
int stat;
|
16
|
+
<%=struct%> *w;
|
17
|
+
<%=h_struct%> *w1;
|
18
|
+
|
19
|
+
TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
|
20
|
+
TypedData_Get_Struct(v1, <%=h_struct%>, &<%=h_data_type_var%>, w1);
|
21
|
+
|
22
|
+
stat = <%=func_name%>(w, w1);
|
23
|
+
return (stat) ? Qtrue: Qfalse;
|
24
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/*
|
2
|
+
@overload <%=name%>(<%=args[1][1]%>,<%=args[3][1]%>)
|
3
|
+
@param [DFloat] <%=args[1][1]%>
|
4
|
+
@param [DFloat] <%=args[3][1]%>
|
5
|
+
@return [<%=class_name%>] self
|
6
|
+
|
7
|
+
<%= description %>
|
8
|
+
*/
|
9
|
+
static VALUE
|
10
|
+
<%=c_func(2)%>(VALUE self, VALUE v1, VALUE v2)
|
11
|
+
{
|
12
|
+
<%=struct%> *w;
|
13
|
+
double *p1, *p2;
|
14
|
+
|
15
|
+
TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
|
16
|
+
|
17
|
+
v1 = cast_1d_contiguous(v1, cDF);
|
18
|
+
p1 = (double*)na_get_pointer_for_read(v1);
|
19
|
+
v2 = cast_1d_contiguous(v2, cDF);
|
20
|
+
p2 = (double*)na_get_pointer_for_read(v2);
|
21
|
+
|
22
|
+
<%=func_name%>(w, p1, RNARRAY_SIZE(v1), p2, RNARRAY_SIZE(v2));
|
23
|
+
RB_GC_GUARD(v1);
|
24
|
+
RB_GC_GUARD(v2);
|
25
|
+
return self;
|
26
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
/*
|
2
|
+
@overload <%=name%>(<%=args[1][1]%>)
|
3
|
+
@param [DFloat] <%=args[1][1]%>
|
4
|
+
@return [<%=class_name%>] self
|
5
|
+
|
6
|
+
<%= description %>
|
7
|
+
*/
|
8
|
+
static VALUE
|
9
|
+
<%=c_func(1)%>(VALUE self, VALUE v1)
|
10
|
+
{
|
11
|
+
<%=struct%> *w;
|
12
|
+
double *p1;
|
13
|
+
|
14
|
+
TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
|
15
|
+
|
16
|
+
v1 = cast_1d_contiguous(v1, cDF);
|
17
|
+
p1 = (double*)na_get_pointer_for_read(v1);
|
18
|
+
<%=func_name%>(w, p1, RNARRAY_SIZE(v1));
|
19
|
+
RB_GC_GUARD(v1);
|
20
|
+
return self;
|
21
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/*
|
2
|
+
@overload <%=name%>
|
3
|
+
@return [Integer]
|
4
|
+
|
5
|
+
returns <%=name%> field in <%=struct%> struct.
|
6
|
+
*/
|
7
|
+
static VALUE
|
8
|
+
<%=c_func(0)%>(VALUE self)
|
9
|
+
{
|
10
|
+
<%=struct%> *w;
|
11
|
+
|
12
|
+
TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
|
13
|
+
|
14
|
+
return SIZET2NUM(w-><%=name%>);
|
15
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
COGEN=ruby erbpp_interp.rb
|
2
|
+
GENSRC=gsl_interp.c
|
3
|
+
GENDEPS=erbpp_interp.rb ../gen/*.rb ../gen/tmpl/*.c tmpl/*.c
|
4
|
+
|
5
|
+
src : $(GENSRC)
|
6
|
+
|
7
|
+
$(GENSRC) : $(GENDEPS)
|
8
|
+
$(COGEN) > $@
|
9
|
+
|
10
|
+
doc : $(GENSRC)
|
11
|
+
yard doc $(GENSRC)
|
12
|
+
|
13
|
+
clean: cleansrc cleandoc
|
14
|
+
cleansrc:
|
15
|
+
-$(Q)$(RM) $(GENSRC)
|
16
|
+
cleandoc:
|
17
|
+
-$(Q)$(RM_RF) doc .yardoc
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require_relative "parse_interp"
|
2
|
+
require "erbpp/line_number"
|
3
|
+
|
4
|
+
gsl_list = ErbppGsl.read_func_pattern(
|
5
|
+
[/^gsl_interp_accel_(\w+)$/, interp_accel_list=[]],
|
6
|
+
[/^gsl_interp2d_(\w+)$/, interp2d_list=[]],
|
7
|
+
[/^gsl_interp_(\w+)$/, interp_list=[]],
|
8
|
+
[/^gsl_spline2d_(\w+)$/, spline2d_list=[]],
|
9
|
+
[/^gsl_spline_(\w+)$/, spline_list=[]],
|
10
|
+
)
|
11
|
+
|
12
|
+
desc = {}
|
13
|
+
gsl_list.each do |h|
|
14
|
+
desc[h[:func_name]] = h[:desc]
|
15
|
+
end
|
16
|
+
gsl_list.each do |h|
|
17
|
+
if /^gsl_spline/ =~ h[:func_name] && h[:desc].empty?
|
18
|
+
h[:desc] = desc[h[:func_name].sub(/_spline/,"_interp")]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
DefLib.new do
|
23
|
+
set erb_dir: %w[tmpl ../gen/tmpl]
|
24
|
+
set erb_suffix: ".c"
|
25
|
+
set ns_var: "mG"
|
26
|
+
|
27
|
+
ErbPP.new(self,"cast_1d_contiguous")
|
28
|
+
ErbPP.new(self,"cast_2d_contiguous")
|
29
|
+
|
30
|
+
name = "Interp"
|
31
|
+
set file_name: "gsl_#{name}.c"
|
32
|
+
set include_files: %w[gsl/gsl_interp.h gsl/gsl_interp2d.h
|
33
|
+
gsl/gsl_spline.h gsl/gsl_spline2d.h]
|
34
|
+
set lib_name: name.downcase
|
35
|
+
|
36
|
+
[
|
37
|
+
#["Interp", "interp", interp_list],
|
38
|
+
["InterpAccel", "interp_accel", interp_accel_list],
|
39
|
+
#["Interp2D", "interp2d", interp2d_list],
|
40
|
+
["Spline", "spline", spline_list],
|
41
|
+
["Spline2D", "spline2d", spline2d_list],
|
42
|
+
].each do |name,base,list|
|
43
|
+
|
44
|
+
DefInterp.new(self) do
|
45
|
+
set name: base
|
46
|
+
set class_name: name
|
47
|
+
set class_var: "c"+name
|
48
|
+
set full_class_name: "Numo::GSL::"+name
|
49
|
+
set struct: "gsl_"+base
|
50
|
+
|
51
|
+
undef_alloc_func
|
52
|
+
init = nil
|
53
|
+
list.each do |h|
|
54
|
+
check_func(h)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end.run
|
@@ -0,0 +1,816 @@
|
|
1
|
+
[{:func_name=>"gsl_interp_alloc",
|
2
|
+
:func_type=>"gsl_interp *",
|
3
|
+
:args=>[["const gsl_interp_type *", "T"], ["size_t", "size"]],
|
4
|
+
:desc=>
|
5
|
+
"This function returns a pointer to a newly allocated interpolation\n" +
|
6
|
+
"object of type T for size data-points."},
|
7
|
+
{:func_name=>"gsl_interp_init",
|
8
|
+
:func_type=>"int",
|
9
|
+
:args=>
|
10
|
+
[["gsl_interp *", "interp"],
|
11
|
+
["const double", "xa[]"],
|
12
|
+
["const double", "ya[]"],
|
13
|
+
["size_t", "size"]],
|
14
|
+
:desc=>
|
15
|
+
"This function initializes the interpolation object interp for the\n" +
|
16
|
+
"data (xa,ya) where xa and ya are arrays of size\n" +
|
17
|
+
"size. The interpolation object (gsl_interp) does not save\n" +
|
18
|
+
"the data arrays xa and ya and only stores the static state\n" +
|
19
|
+
"computed from the data. The xa data array is always assumed to be\n" +
|
20
|
+
"strictly ordered, with increasing x values; \n" +
|
21
|
+
"the behavior for other arrangements is not defined."},
|
22
|
+
{:func_name=>"gsl_interp_free",
|
23
|
+
:func_type=>"void",
|
24
|
+
:args=>[["gsl_interp *", "interp"]],
|
25
|
+
:desc=>"This function frees the interpolation object interp."},
|
26
|
+
{:func_name=>"gsl_interp_name",
|
27
|
+
:func_type=>"const char *",
|
28
|
+
:args=>[["const gsl_interp *", "interp"]],
|
29
|
+
:desc=>
|
30
|
+
"This function returns the name of the interpolation type used by interp.\n" +
|
31
|
+
"For example,\n" +
|
32
|
+
"\n" +
|
33
|
+
"printf (\"interp uses '%s' interpolation.\\n\", \n" +
|
34
|
+
" gsl_interp_name (interp));\n" +
|
35
|
+
"\n" +
|
36
|
+
"would print something like,\n" +
|
37
|
+
"\n" +
|
38
|
+
"interp uses 'cspline' interpolation."},
|
39
|
+
{:func_name=>"gsl_interp_min_size",
|
40
|
+
:func_type=>"unsigned int",
|
41
|
+
:args=>[["const gsl_interp *", "interp"]],
|
42
|
+
:desc=>
|
43
|
+
"These functions return the minimum number of points required by the\n" +
|
44
|
+
"interpolation object interp or interpolation type T. For\n" +
|
45
|
+
"example, Akima spline interpolation requires a minimum of 5 points."},
|
46
|
+
{:func_name=>"gsl_interp_type_min_size",
|
47
|
+
:func_type=>"unsigned int",
|
48
|
+
:args=>[["const gsl_interp_type *", "T"]],
|
49
|
+
:desc=>
|
50
|
+
"These functions return the minimum number of points required by the\n" +
|
51
|
+
"interpolation object interp or interpolation type T. For\n" +
|
52
|
+
"example, Akima spline interpolation requires a minimum of 5 points."},
|
53
|
+
{:func_name=>"gsl_interp_bsearch",
|
54
|
+
:func_type=>"size_t",
|
55
|
+
:args=>
|
56
|
+
[["const double", "x_array[]"],
|
57
|
+
["double", "x"],
|
58
|
+
["size_t", "index_lo"],
|
59
|
+
["size_t", "index_hi"]],
|
60
|
+
:desc=>
|
61
|
+
"This function returns the index i of the array x_array such\n" +
|
62
|
+
"that x_array[i] <= x < x_array[i+1]. The index is searched for\n" +
|
63
|
+
"in the range [index_lo,index_hi]. "},
|
64
|
+
{:func_name=>"gsl_interp_accel_alloc",
|
65
|
+
:func_type=>"gsl_interp_accel *",
|
66
|
+
:args=>[["", "void"]],
|
67
|
+
:desc=>
|
68
|
+
"This function returns a pointer to an accelerator object, which is a\n" +
|
69
|
+
"kind of iterator for interpolation lookups. It tracks the state of\n" +
|
70
|
+
"lookups, thus allowing for application of various acceleration\n" +
|
71
|
+
"strategies."},
|
72
|
+
{:func_name=>"gsl_interp_accel_find",
|
73
|
+
:func_type=>"size_t",
|
74
|
+
:args=>
|
75
|
+
[["gsl_interp_accel *", "a"],
|
76
|
+
["const double", "x_array[]"],
|
77
|
+
["size_t", "size"],
|
78
|
+
["double", "x"]],
|
79
|
+
:desc=>
|
80
|
+
"This function performs a lookup action on the data array x_array\n" +
|
81
|
+
"of size size, using the given accelerator a. This is how\n" +
|
82
|
+
"lookups are performed during evaluation of an interpolation. The\n" +
|
83
|
+
"function returns an index i such that x_array[i] <= x <\n" +
|
84
|
+
"x_array[i+1]. "},
|
85
|
+
{:func_name=>"gsl_interp_accel_reset",
|
86
|
+
:func_type=>"int",
|
87
|
+
:args=>[["gsl_interp_accel *", "acc"]],
|
88
|
+
:desc=>
|
89
|
+
"This function reinitializes the accelerator object acc. It\n" +
|
90
|
+
"should be used when the cached information is no longer\n" +
|
91
|
+
"applicable---for example, when switching to a new dataset."},
|
92
|
+
{:func_name=>"gsl_interp_accel_free",
|
93
|
+
:func_type=>"void",
|
94
|
+
:args=>[["gsl_interp_accel*", "acc"]],
|
95
|
+
:desc=>"This function frees the accelerator object acc."},
|
96
|
+
{:func_name=>"gsl_interp_eval",
|
97
|
+
:func_type=>"double",
|
98
|
+
:args=>
|
99
|
+
[["const gsl_interp *", "interp"],
|
100
|
+
["const double", "xa[]"],
|
101
|
+
["const double", "ya[]"],
|
102
|
+
["double", "x"],
|
103
|
+
["gsl_interp_accel *", "acc"]],
|
104
|
+
:desc=>
|
105
|
+
"These functions return the interpolated value of y for a given\n" +
|
106
|
+
"point x, using the interpolation object interp, data\n" +
|
107
|
+
"arrays xa and ya and the accelerator acc. When\n" +
|
108
|
+
"x is outside the range of xa, the error code\n" +
|
109
|
+
"GSL_EDOM is returned with a value of GSL_NAN for\n" +
|
110
|
+
"y."},
|
111
|
+
{:func_name=>"gsl_interp_eval_e",
|
112
|
+
:func_type=>"int",
|
113
|
+
:args=>
|
114
|
+
[["const gsl_interp *", "interp"],
|
115
|
+
["const double", "xa[]"],
|
116
|
+
["const double", "ya[]"],
|
117
|
+
["double", "x"],
|
118
|
+
["gsl_interp_accel *", "acc"],
|
119
|
+
["double *", "y"]],
|
120
|
+
:desc=>
|
121
|
+
"These functions return the interpolated value of y for a given\n" +
|
122
|
+
"point x, using the interpolation object interp, data\n" +
|
123
|
+
"arrays xa and ya and the accelerator acc. When\n" +
|
124
|
+
"x is outside the range of xa, the error code\n" +
|
125
|
+
"GSL_EDOM is returned with a value of GSL_NAN for\n" +
|
126
|
+
"y."},
|
127
|
+
{:func_name=>"gsl_interp_eval_deriv",
|
128
|
+
:func_type=>"double",
|
129
|
+
:args=>
|
130
|
+
[["const gsl_interp *", "interp"],
|
131
|
+
["const double", "xa[]"],
|
132
|
+
["const double", "ya[]"],
|
133
|
+
["double", "x"],
|
134
|
+
["gsl_interp_accel *", "acc"]],
|
135
|
+
:desc=>
|
136
|
+
"These functions return the derivative d of an interpolated\n" +
|
137
|
+
"function for a given point x, using the interpolation object\n" +
|
138
|
+
"interp, data arrays xa and ya and the accelerator\n" +
|
139
|
+
"acc. "},
|
140
|
+
{:func_name=>"gsl_interp_eval_deriv_e",
|
141
|
+
:func_type=>"int",
|
142
|
+
:args=>
|
143
|
+
[["const gsl_interp *", "interp"],
|
144
|
+
["const double", "xa[]"],
|
145
|
+
["const double", "ya[]"],
|
146
|
+
["double", "x"],
|
147
|
+
["gsl_interp_accel *", "acc"],
|
148
|
+
["double *", "d"]],
|
149
|
+
:desc=>
|
150
|
+
"These functions return the derivative d of an interpolated\n" +
|
151
|
+
"function for a given point x, using the interpolation object\n" +
|
152
|
+
"interp, data arrays xa and ya and the accelerator\n" +
|
153
|
+
"acc. "},
|
154
|
+
{:func_name=>"gsl_interp_eval_deriv2",
|
155
|
+
:func_type=>"double",
|
156
|
+
:args=>
|
157
|
+
[["const gsl_interp *", "interp"],
|
158
|
+
["const double", "xa[]"],
|
159
|
+
["const double", "ya[]"],
|
160
|
+
["double", "x"],
|
161
|
+
["gsl_interp_accel *", "acc"]],
|
162
|
+
:desc=>
|
163
|
+
"These functions return the second derivative d2 of an interpolated\n" +
|
164
|
+
"function for a given point x, using the interpolation object\n" +
|
165
|
+
"interp, data arrays xa and ya and the accelerator\n" +
|
166
|
+
"acc. "},
|
167
|
+
{:func_name=>"gsl_interp_eval_deriv2_e",
|
168
|
+
:func_type=>"int",
|
169
|
+
:args=>
|
170
|
+
[["const gsl_interp *", "interp"],
|
171
|
+
["const double", "xa[]"],
|
172
|
+
["const double", "ya[]"],
|
173
|
+
["double", "x"],
|
174
|
+
["gsl_interp_accel *", "acc"],
|
175
|
+
["double *", "d2"]],
|
176
|
+
:desc=>
|
177
|
+
"These functions return the second derivative d2 of an interpolated\n" +
|
178
|
+
"function for a given point x, using the interpolation object\n" +
|
179
|
+
"interp, data arrays xa and ya and the accelerator\n" +
|
180
|
+
"acc. "},
|
181
|
+
{:func_name=>"gsl_interp_eval_integ",
|
182
|
+
:func_type=>"double",
|
183
|
+
:args=>
|
184
|
+
[["const gsl_interp *", "interp"],
|
185
|
+
["const double", "xa[]"],
|
186
|
+
["const double", "ya[]"],
|
187
|
+
["double", "a"],
|
188
|
+
["double", "b"],
|
189
|
+
["gsl_interp_accel *", "acc"]],
|
190
|
+
:desc=>
|
191
|
+
"These functions return the numerical integral result of an\n" +
|
192
|
+
"interpolated function over the range [a, b], using the\n" +
|
193
|
+
"interpolation object interp, data arrays xa and ya and\n" +
|
194
|
+
"the accelerator acc."},
|
195
|
+
{:func_name=>"gsl_interp_eval_integ_e",
|
196
|
+
:func_type=>"int",
|
197
|
+
:args=>
|
198
|
+
[["const gsl_interp *", "interp"],
|
199
|
+
["const double", "xa[]"],
|
200
|
+
["const double", "ya[]"],
|
201
|
+
["double", "a"],
|
202
|
+
["double", "b"],
|
203
|
+
["gsl_interp_accel *", "acc"],
|
204
|
+
["double *", "result"]],
|
205
|
+
:desc=>
|
206
|
+
"These functions return the numerical integral result of an\n" +
|
207
|
+
"interpolated function over the range [a, b], using the\n" +
|
208
|
+
"interpolation object interp, data arrays xa and ya and\n" +
|
209
|
+
"the accelerator acc."},
|
210
|
+
{:func_name=>"gsl_spline_alloc",
|
211
|
+
:func_type=>"gsl_spline *",
|
212
|
+
:args=>[["const gsl_interp_type *", "T"], ["size_t", "size"]],
|
213
|
+
:desc=>""},
|
214
|
+
{:func_name=>"gsl_spline_init",
|
215
|
+
:func_type=>"int",
|
216
|
+
:args=>
|
217
|
+
[["gsl_spline *", "spline"],
|
218
|
+
["const double", "xa[]"],
|
219
|
+
["const double", "ya[]"],
|
220
|
+
["size_t", "size"]],
|
221
|
+
:desc=>""},
|
222
|
+
{:func_name=>"gsl_spline_free",
|
223
|
+
:func_type=>"void",
|
224
|
+
:args=>[["gsl_spline *", "spline"]],
|
225
|
+
:desc=>""},
|
226
|
+
{:func_name=>"gsl_spline_name",
|
227
|
+
:func_type=>"const char *",
|
228
|
+
:args=>[["const gsl_spline *", "spline"]],
|
229
|
+
:desc=>""},
|
230
|
+
{:func_name=>"gsl_spline_min_size",
|
231
|
+
:func_type=>"unsigned int",
|
232
|
+
:args=>[["const gsl_spline *", "spline"]],
|
233
|
+
:desc=>""},
|
234
|
+
{:func_name=>"gsl_spline_eval",
|
235
|
+
:func_type=>"double",
|
236
|
+
:args=>
|
237
|
+
[["const gsl_spline *", "spline"],
|
238
|
+
["double", "x"],
|
239
|
+
["gsl_interp_accel *", "acc"]],
|
240
|
+
:desc=>""},
|
241
|
+
{:func_name=>"gsl_spline_eval_e",
|
242
|
+
:func_type=>"int",
|
243
|
+
:args=>
|
244
|
+
[["const gsl_spline *", "spline"],
|
245
|
+
["double", "x"],
|
246
|
+
["gsl_interp_accel *", "acc"],
|
247
|
+
["double *", "y"]],
|
248
|
+
:desc=>""},
|
249
|
+
{:func_name=>"gsl_spline_eval_deriv",
|
250
|
+
:func_type=>"double",
|
251
|
+
:args=>
|
252
|
+
[["const gsl_spline *", "spline"],
|
253
|
+
["double", "x"],
|
254
|
+
["gsl_interp_accel *", "acc"]],
|
255
|
+
:desc=>""},
|
256
|
+
{:func_name=>"gsl_spline_eval_deriv_e",
|
257
|
+
:func_type=>"int",
|
258
|
+
:args=>
|
259
|
+
[["const gsl_spline *", "spline"],
|
260
|
+
["double", "x"],
|
261
|
+
["gsl_interp_accel *", "acc"],
|
262
|
+
["double *", "d"]],
|
263
|
+
:desc=>""},
|
264
|
+
{:func_name=>"gsl_spline_eval_deriv2",
|
265
|
+
:func_type=>"double",
|
266
|
+
:args=>
|
267
|
+
[["const gsl_spline *", "spline"],
|
268
|
+
["double", "x"],
|
269
|
+
["gsl_interp_accel *", "acc"]],
|
270
|
+
:desc=>""},
|
271
|
+
{:func_name=>"gsl_spline_eval_deriv2_e",
|
272
|
+
:func_type=>"int",
|
273
|
+
:args=>
|
274
|
+
[["const gsl_spline *", "spline"],
|
275
|
+
["double", "x"],
|
276
|
+
["gsl_interp_accel *", "acc"],
|
277
|
+
["double *", "d2"]],
|
278
|
+
:desc=>""},
|
279
|
+
{:func_name=>"gsl_spline_eval_integ",
|
280
|
+
:func_type=>"double",
|
281
|
+
:args=>
|
282
|
+
[["const gsl_spline *", "spline"],
|
283
|
+
["double", "a"],
|
284
|
+
["double", "b"],
|
285
|
+
["gsl_interp_accel *", "acc"]],
|
286
|
+
:desc=>""},
|
287
|
+
{:func_name=>"gsl_spline_eval_integ_e",
|
288
|
+
:func_type=>"int",
|
289
|
+
:args=>
|
290
|
+
[["const gsl_spline *", "spline"],
|
291
|
+
["double", "a"],
|
292
|
+
["double", "b"],
|
293
|
+
["gsl_interp_accel *", "acc"],
|
294
|
+
["double *", "result"]],
|
295
|
+
:desc=>""},
|
296
|
+
{:func_name=>"gsl_interp2d_alloc",
|
297
|
+
:func_type=>"gsl_interp2d *",
|
298
|
+
:args=>
|
299
|
+
[["const gsl_interp2d_type *", "T"],
|
300
|
+
["const size_t", "xsize"],
|
301
|
+
["const size_t", "ysize"]],
|
302
|
+
:desc=>
|
303
|
+
"This function returns a pointer to a newly allocated interpolation\n" +
|
304
|
+
"object of type T for xsize grid points in the x\n" +
|
305
|
+
"direction and ysize grid points in the y direction."},
|
306
|
+
{:func_name=>"gsl_interp2d_init",
|
307
|
+
:func_type=>"int",
|
308
|
+
:args=>
|
309
|
+
[["gsl_interp2d *", "interp"],
|
310
|
+
["const double", "xa[]"],
|
311
|
+
["const double", "ya[]"],
|
312
|
+
["const double", "za[]"],
|
313
|
+
["const size_t", "xsize"],
|
314
|
+
["const size_t", "ysize"]],
|
315
|
+
:desc=>
|
316
|
+
"This function initializes the interpolation object interp for the\n" +
|
317
|
+
"data (xa,ya,za) where xa and ya are arrays of\n" +
|
318
|
+
"the x and y grid points of size xsize and ysize\n" +
|
319
|
+
"respectively, and za is an array of function values of size\n" +
|
320
|
+
"xsize*ysize. The interpolation object (gsl_interp2d) does\n" +
|
321
|
+
"not save the data arrays xa, ya, and za and only stores the\n" +
|
322
|
+
"static state computed from the data. The xa and ya data arrays\n" +
|
323
|
+
"are always assumed to be strictly ordered, with increasing x,y values; \n" +
|
324
|
+
"the behavior for other arrangements is not defined."},
|
325
|
+
{:func_name=>"gsl_interp2d_free",
|
326
|
+
:func_type=>"void",
|
327
|
+
:args=>[["gsl_interp2d *", "interp"]],
|
328
|
+
:desc=>"This function frees the interpolation object interp."},
|
329
|
+
{:func_name=>"gsl_interp2d_set",
|
330
|
+
:func_type=>"int",
|
331
|
+
:args=>
|
332
|
+
[["const gsl_interp2d *", "interp"],
|
333
|
+
["double", "za[]"],
|
334
|
+
["const size_t", "i"],
|
335
|
+
["const size_t", "j"],
|
336
|
+
["const double", "z"]],
|
337
|
+
:desc=>
|
338
|
+
"This function sets the value z_{ij} for grid point\n" +
|
339
|
+
"(i,j) of the array za to z."},
|
340
|
+
{:func_name=>"gsl_interp2d_get",
|
341
|
+
:func_type=>"double",
|
342
|
+
:args=>
|
343
|
+
[["const gsl_interp2d *", "interp"],
|
344
|
+
["const double", "za[]"],
|
345
|
+
["const size_t", "i"],
|
346
|
+
["const size_t", "j"]],
|
347
|
+
:desc=>
|
348
|
+
"This function returns the value z_{ij} for grid point\n" +
|
349
|
+
"(i,j) stored in the array za."},
|
350
|
+
{:func_name=>"gsl_interp2d_idx",
|
351
|
+
:func_type=>"size_t",
|
352
|
+
:args=>
|
353
|
+
[["const gsl_interp2d *", "interp"],
|
354
|
+
["const size_t", "i"],
|
355
|
+
["const size_t", "j"]],
|
356
|
+
:desc=>
|
357
|
+
"This function returns the index corresponding to the grid point\n" +
|
358
|
+
"(i,j). The index is given by j*xsize + i."},
|
359
|
+
{:func_name=>"gsl_interp2d_name",
|
360
|
+
:func_type=>"const char *",
|
361
|
+
:args=>[["const gsl_interp2d *", "interp"]],
|
362
|
+
:desc=>
|
363
|
+
"This function returns the name of the interpolation type used by interp.\n" +
|
364
|
+
"For example,\n" +
|
365
|
+
"\n" +
|
366
|
+
"printf (\"interp uses '%s' interpolation.\\n\", \n" +
|
367
|
+
" gsl_interp2d_name (interp));\n" +
|
368
|
+
"\n" +
|
369
|
+
"would print something like,\n" +
|
370
|
+
"\n" +
|
371
|
+
"interp uses 'bilinear' interpolation."},
|
372
|
+
{:func_name=>"gsl_interp2d_min_size",
|
373
|
+
:func_type=>"unsigned int",
|
374
|
+
:args=>[["const gsl_interp2d *", "interp"]],
|
375
|
+
:desc=>
|
376
|
+
"These functions return the minimum number of points required by the\n" +
|
377
|
+
"interpolation object interp or interpolation type T. For\n" +
|
378
|
+
"example, bicubic interpolation requires a minimum of 4 points."},
|
379
|
+
{:func_name=>"gsl_interp2d_type_min_size",
|
380
|
+
:func_type=>"unsigned int",
|
381
|
+
:args=>[["const gsl_interp2d_type *", "T"]],
|
382
|
+
:desc=>
|
383
|
+
"These functions return the minimum number of points required by the\n" +
|
384
|
+
"interpolation object interp or interpolation type T. For\n" +
|
385
|
+
"example, bicubic interpolation requires a minimum of 4 points."},
|
386
|
+
{:func_name=>"gsl_interp2d_eval",
|
387
|
+
:func_type=>"double",
|
388
|
+
:args=>
|
389
|
+
[["const gsl_interp2d *", "interp"],
|
390
|
+
["const double", "xa[]"],
|
391
|
+
["const double", "ya[]"],
|
392
|
+
["const double", "za[]"],
|
393
|
+
["const double", "x"],
|
394
|
+
["const double", "y"],
|
395
|
+
["gsl_interp_accel *", "xacc"],
|
396
|
+
["gsl_interp_accel *", "yacc"]],
|
397
|
+
:desc=>
|
398
|
+
"These functions return the interpolated value of z for a given\n" +
|
399
|
+
"point (x,y), using the interpolation object interp, data\n" +
|
400
|
+
"arrays xa, ya, and za and the accelerators xacc\n" +
|
401
|
+
"and yacc. When x is outside the range of xa or y\n" +
|
402
|
+
"is outside the range of ya, the error code\n" +
|
403
|
+
"GSL_EDOM is returned."},
|
404
|
+
{:func_name=>"gsl_interp2d_eval_e",
|
405
|
+
:func_type=>"int",
|
406
|
+
:args=>
|
407
|
+
[["const gsl_interp2d *", "interp"],
|
408
|
+
["const double", "xa[]"],
|
409
|
+
["const double", "ya[]"],
|
410
|
+
["const double", "za[]"],
|
411
|
+
["const double", "x"],
|
412
|
+
["const double", "y"],
|
413
|
+
["gsl_interp_accel *", "xacc"],
|
414
|
+
["gsl_interp_accel *", "yacc"],
|
415
|
+
["double *", "z"]],
|
416
|
+
:desc=>
|
417
|
+
"These functions return the interpolated value of z for a given\n" +
|
418
|
+
"point (x,y), using the interpolation object interp, data\n" +
|
419
|
+
"arrays xa, ya, and za and the accelerators xacc\n" +
|
420
|
+
"and yacc. When x is outside the range of xa or y\n" +
|
421
|
+
"is outside the range of ya, the error code\n" +
|
422
|
+
"GSL_EDOM is returned."},
|
423
|
+
{:func_name=>"gsl_interp2d_eval_extrap",
|
424
|
+
:func_type=>"double",
|
425
|
+
:args=>
|
426
|
+
[["const gsl_interp2d *", "interp"],
|
427
|
+
["const double", "xa[]"],
|
428
|
+
["const double", "ya[]"],
|
429
|
+
["const double", "za[]"],
|
430
|
+
["const double", "x"],
|
431
|
+
["const double", "y"],
|
432
|
+
["gsl_interp_accel *", "xacc"],
|
433
|
+
["gsl_interp_accel *", "yacc"]],
|
434
|
+
:desc=>
|
435
|
+
"These functions return the interpolated value of z for a given\n" +
|
436
|
+
"point (x,y), using the interpolation object interp, data\n" +
|
437
|
+
"arrays xa, ya, and za and the accelerators xacc\n" +
|
438
|
+
"and yacc. The functions perform no bounds checking, so\n" +
|
439
|
+
"when x is outside the range of xa or y\n" +
|
440
|
+
"is outside the range of ya, extrapolation is performed."},
|
441
|
+
{:func_name=>"gsl_interp2d_eval_extrap_e",
|
442
|
+
:func_type=>"int",
|
443
|
+
:args=>
|
444
|
+
[["const gsl_interp2d *", "interp"],
|
445
|
+
["const double", "xa[]"],
|
446
|
+
["const double", "ya[]"],
|
447
|
+
["const double", "za[]"],
|
448
|
+
["const double", "x"],
|
449
|
+
["const double", "y"],
|
450
|
+
["gsl_interp_accel *", "xacc"],
|
451
|
+
["gsl_interp_accel *", "yacc"],
|
452
|
+
["double *", "z"]],
|
453
|
+
:desc=>
|
454
|
+
"These functions return the interpolated value of z for a given\n" +
|
455
|
+
"point (x,y), using the interpolation object interp, data\n" +
|
456
|
+
"arrays xa, ya, and za and the accelerators xacc\n" +
|
457
|
+
"and yacc. The functions perform no bounds checking, so\n" +
|
458
|
+
"when x is outside the range of xa or y\n" +
|
459
|
+
"is outside the range of ya, extrapolation is performed."},
|
460
|
+
{:func_name=>"gsl_interp2d_eval_deriv_x",
|
461
|
+
:func_type=>"double",
|
462
|
+
:args=>
|
463
|
+
[["const gsl_interp2d *", "interp"],
|
464
|
+
["const double", "xa[]"],
|
465
|
+
["const double", "ya[]"],
|
466
|
+
["const double", "za[]"],
|
467
|
+
["const double", "x"],
|
468
|
+
["const double", "y"],
|
469
|
+
["gsl_interp_accel *", "xacc"],
|
470
|
+
["gsl_interp_accel *", "yacc"]],
|
471
|
+
:desc=>
|
472
|
+
"These functions return the interpolated value d\n" +
|
473
|
+
"= \\partial z / \\partial x for a given point (x,y),\n" +
|
474
|
+
"using the interpolation object interp, data\n" +
|
475
|
+
"arrays xa, ya, and za and the accelerators xacc\n" +
|
476
|
+
"and yacc. When x is outside the range of xa or y\n" +
|
477
|
+
"is outside the range of ya, the error code\n" +
|
478
|
+
"GSL_EDOM is returned."},
|
479
|
+
{:func_name=>"gsl_interp2d_eval_deriv_x_e",
|
480
|
+
:func_type=>"int",
|
481
|
+
:args=>
|
482
|
+
[["const gsl_interp2d *", "interp"],
|
483
|
+
["const double", "xa[]"],
|
484
|
+
["const double", "ya[]"],
|
485
|
+
["const double", "za[]"],
|
486
|
+
["const double", "x"],
|
487
|
+
["const double", "y"],
|
488
|
+
["gsl_interp_accel *", "xacc"],
|
489
|
+
["gsl_interp_accel *", "yacc"],
|
490
|
+
["double *", "d"]],
|
491
|
+
:desc=>
|
492
|
+
"These functions return the interpolated value d\n" +
|
493
|
+
"= \\partial z / \\partial x for a given point (x,y),\n" +
|
494
|
+
"using the interpolation object interp, data\n" +
|
495
|
+
"arrays xa, ya, and za and the accelerators xacc\n" +
|
496
|
+
"and yacc. When x is outside the range of xa or y\n" +
|
497
|
+
"is outside the range of ya, the error code\n" +
|
498
|
+
"GSL_EDOM is returned."},
|
499
|
+
{:func_name=>"gsl_interp2d_eval_deriv_y",
|
500
|
+
:func_type=>"double",
|
501
|
+
:args=>
|
502
|
+
[["const gsl_interp2d *", "interp"],
|
503
|
+
["const double", "xa[]"],
|
504
|
+
["const double", "ya[]"],
|
505
|
+
["const double", "za[]"],
|
506
|
+
["const double", "x"],
|
507
|
+
["const double", "y"],
|
508
|
+
["gsl_interp_accel *", "xacc"],
|
509
|
+
["gsl_interp_accel *", "yacc"]],
|
510
|
+
:desc=>
|
511
|
+
"These functions return the interpolated value d\n" +
|
512
|
+
"= \\partial z / \\partial y for a given point (x,y),\n" +
|
513
|
+
"using the interpolation object interp, data\n" +
|
514
|
+
"arrays xa, ya, and za and the accelerators xacc\n" +
|
515
|
+
"and yacc. When x is outside the range of xa or y\n" +
|
516
|
+
"is outside the range of ya, the error code\n" +
|
517
|
+
"GSL_EDOM is returned."},
|
518
|
+
{:func_name=>"gsl_interp2d_eval_deriv_y_e",
|
519
|
+
:func_type=>"int",
|
520
|
+
:args=>
|
521
|
+
[["const gsl_interp2d *", "interp"],
|
522
|
+
["const double", "xa[]"],
|
523
|
+
["const double", "ya[]"],
|
524
|
+
["const double", "za[]"],
|
525
|
+
["const double", "x"],
|
526
|
+
["const double", "y"],
|
527
|
+
["gsl_interp_accel *", "xacc"],
|
528
|
+
["gsl_interp_accel *", "yacc"],
|
529
|
+
["double *", "d"]],
|
530
|
+
:desc=>
|
531
|
+
"These functions return the interpolated value d\n" +
|
532
|
+
"= \\partial z / \\partial y for a given point (x,y),\n" +
|
533
|
+
"using the interpolation object interp, data\n" +
|
534
|
+
"arrays xa, ya, and za and the accelerators xacc\n" +
|
535
|
+
"and yacc. When x is outside the range of xa or y\n" +
|
536
|
+
"is outside the range of ya, the error code\n" +
|
537
|
+
"GSL_EDOM is returned."},
|
538
|
+
{:func_name=>"gsl_interp2d_eval_deriv_xx",
|
539
|
+
:func_type=>"double",
|
540
|
+
:args=>
|
541
|
+
[["const gsl_interp2d *", "interp"],
|
542
|
+
["const double", "xa[]"],
|
543
|
+
["const double", "ya[]"],
|
544
|
+
["const double", "za[]"],
|
545
|
+
["const double", "x"],
|
546
|
+
["const double", "y"],
|
547
|
+
["gsl_interp_accel *", "xacc"],
|
548
|
+
["gsl_interp_accel *", "yacc"]],
|
549
|
+
:desc=>
|
550
|
+
"These functions return the interpolated value d\n" +
|
551
|
+
"= \\partial^2 z / \\partial x^2 for a given point (x,y),\n" +
|
552
|
+
"using the interpolation object interp, data\n" +
|
553
|
+
"arrays xa, ya, and za and the accelerators xacc\n" +
|
554
|
+
"and yacc. When x is outside the range of xa or y\n" +
|
555
|
+
"is outside the range of ya, the error code\n" +
|
556
|
+
"GSL_EDOM is returned."},
|
557
|
+
{:func_name=>"gsl_interp2d_eval_deriv_xx_e",
|
558
|
+
:func_type=>"int",
|
559
|
+
:args=>
|
560
|
+
[["const gsl_interp2d *", "interp"],
|
561
|
+
["const double", "xa[]"],
|
562
|
+
["const double", "ya[]"],
|
563
|
+
["const double", "za[]"],
|
564
|
+
["const double", "x"],
|
565
|
+
["const double", "y"],
|
566
|
+
["gsl_interp_accel *", "xacc"],
|
567
|
+
["gsl_interp_accel *", "yacc"],
|
568
|
+
["double *", "d"]],
|
569
|
+
:desc=>
|
570
|
+
"These functions return the interpolated value d\n" +
|
571
|
+
"= \\partial^2 z / \\partial x^2 for a given point (x,y),\n" +
|
572
|
+
"using the interpolation object interp, data\n" +
|
573
|
+
"arrays xa, ya, and za and the accelerators xacc\n" +
|
574
|
+
"and yacc. When x is outside the range of xa or y\n" +
|
575
|
+
"is outside the range of ya, the error code\n" +
|
576
|
+
"GSL_EDOM is returned."},
|
577
|
+
{:func_name=>"gsl_interp2d_eval_deriv_yy",
|
578
|
+
:func_type=>"double",
|
579
|
+
:args=>
|
580
|
+
[["const gsl_interp2d *", "interp"],
|
581
|
+
["const double", "xa[]"],
|
582
|
+
["const double", "ya[]"],
|
583
|
+
["const double", "za[]"],
|
584
|
+
["const double", "x"],
|
585
|
+
["const double", "y"],
|
586
|
+
["gsl_interp_accel *", "xacc"],
|
587
|
+
["gsl_interp_accel *", "yacc"]],
|
588
|
+
:desc=>
|
589
|
+
"These functions return the interpolated value d\n" +
|
590
|
+
"= \\partial^2 z / \\partial y^2 for a given point (x,y),\n" +
|
591
|
+
"using the interpolation object interp, data\n" +
|
592
|
+
"arrays xa, ya, and za and the accelerators xacc\n" +
|
593
|
+
"and yacc. When x is outside the range of xa or y\n" +
|
594
|
+
"is outside the range of ya, the error code\n" +
|
595
|
+
"GSL_EDOM is returned."},
|
596
|
+
{:func_name=>"gsl_interp2d_eval_deriv_yy_e",
|
597
|
+
:func_type=>"int",
|
598
|
+
:args=>
|
599
|
+
[["const gsl_interp2d *", "interp"],
|
600
|
+
["const double", "xa[]"],
|
601
|
+
["const double", "ya[]"],
|
602
|
+
["const double", "za[]"],
|
603
|
+
["const double", "x"],
|
604
|
+
["const double", "y"],
|
605
|
+
["gsl_interp_accel *", "xacc"],
|
606
|
+
["gsl_interp_accel *", "yacc"],
|
607
|
+
["double *", "d"]],
|
608
|
+
:desc=>
|
609
|
+
"These functions return the interpolated value d\n" +
|
610
|
+
"= \\partial^2 z / \\partial y^2 for a given point (x,y),\n" +
|
611
|
+
"using the interpolation object interp, data\n" +
|
612
|
+
"arrays xa, ya, and za and the accelerators xacc\n" +
|
613
|
+
"and yacc. When x is outside the range of xa or y\n" +
|
614
|
+
"is outside the range of ya, the error code\n" +
|
615
|
+
"GSL_EDOM is returned."},
|
616
|
+
{:func_name=>"gsl_interp2d_eval_deriv_xy",
|
617
|
+
:func_type=>"double",
|
618
|
+
:args=>
|
619
|
+
[["const gsl_interp2d *", "interp"],
|
620
|
+
["const double", "xa[]"],
|
621
|
+
["const double", "ya[]"],
|
622
|
+
["const double", "za[]"],
|
623
|
+
["const double", "x"],
|
624
|
+
["const double", "y"],
|
625
|
+
["gsl_interp_accel *", "xacc"],
|
626
|
+
["gsl_interp_accel *", "yacc"]],
|
627
|
+
:desc=>
|
628
|
+
"These functions return the interpolated value d\n" +
|
629
|
+
"= \\partial^2 z / \\partial x \\partial y for a given point (x,y),\n" +
|
630
|
+
"using the interpolation object interp, data\n" +
|
631
|
+
"arrays xa, ya, and za and the accelerators xacc\n" +
|
632
|
+
"and yacc. When x is outside the range of xa or y\n" +
|
633
|
+
"is outside the range of ya, the error code\n" +
|
634
|
+
"GSL_EDOM is returned."},
|
635
|
+
{:func_name=>"gsl_interp2d_eval_deriv_xy_e",
|
636
|
+
:func_type=>"int",
|
637
|
+
:args=>
|
638
|
+
[["const gsl_interp2d *", "interp"],
|
639
|
+
["const double", "xa[]"],
|
640
|
+
["const double", "ya[]"],
|
641
|
+
["const double", "za[]"],
|
642
|
+
["const double", "x"],
|
643
|
+
["const double", "y"],
|
644
|
+
["gsl_interp_accel *", "xacc"],
|
645
|
+
["gsl_interp_accel *", "yacc"],
|
646
|
+
["double *", "d"]],
|
647
|
+
:desc=>
|
648
|
+
"These functions return the interpolated value d\n" +
|
649
|
+
"= \\partial^2 z / \\partial x \\partial y for a given point (x,y),\n" +
|
650
|
+
"using the interpolation object interp, data\n" +
|
651
|
+
"arrays xa, ya, and za and the accelerators xacc\n" +
|
652
|
+
"and yacc. When x is outside the range of xa or y\n" +
|
653
|
+
"is outside the range of ya, the error code\n" +
|
654
|
+
"GSL_EDOM is returned."},
|
655
|
+
{:func_name=>"gsl_spline2d_alloc",
|
656
|
+
:func_type=>"gsl_spline2d *",
|
657
|
+
:args=>
|
658
|
+
[["const gsl_interp2d_type *", "T"],
|
659
|
+
["size_t", "xsize"],
|
660
|
+
["size_t", "ysize"]],
|
661
|
+
:desc=>""},
|
662
|
+
{:func_name=>"gsl_spline2d_init",
|
663
|
+
:func_type=>"int",
|
664
|
+
:args=>
|
665
|
+
[["gsl_spline2d *", "spline"],
|
666
|
+
["const double", "xa[]"],
|
667
|
+
["const double", "ya[]"],
|
668
|
+
["const double", "za[]"],
|
669
|
+
["size_t", "xsize"],
|
670
|
+
["size_t", "ysize"]],
|
671
|
+
:desc=>""},
|
672
|
+
{:func_name=>"gsl_spline2d_free",
|
673
|
+
:func_type=>"void",
|
674
|
+
:args=>[["gsl_spline2d *", "spline"]],
|
675
|
+
:desc=>""},
|
676
|
+
{:func_name=>"gsl_spline2d_name",
|
677
|
+
:func_type=>"const char *",
|
678
|
+
:args=>[["const gsl_spline2d *", "spline"]],
|
679
|
+
:desc=>""},
|
680
|
+
{:func_name=>"gsl_spline2d_min_size",
|
681
|
+
:func_type=>"unsigned int",
|
682
|
+
:args=>[["const gsl_spline2d *", "spline"]],
|
683
|
+
:desc=>""},
|
684
|
+
{:func_name=>"gsl_spline2d_eval",
|
685
|
+
:func_type=>"double",
|
686
|
+
:args=>
|
687
|
+
[["const gsl_spline2d *", "spline"],
|
688
|
+
["const double", "x"],
|
689
|
+
["const double", "y"],
|
690
|
+
["gsl_interp_accel *", "xacc"],
|
691
|
+
["gsl_interp_accel *", "yacc"]],
|
692
|
+
:desc=>""},
|
693
|
+
{:func_name=>"gsl_spline2d_eval_e",
|
694
|
+
:func_type=>"int",
|
695
|
+
:args=>
|
696
|
+
[["const gsl_spline2d *", "spline"],
|
697
|
+
["const double", "x"],
|
698
|
+
["const double", "y"],
|
699
|
+
["gsl_interp_accel *", "xacc"],
|
700
|
+
["gsl_interp_accel *", "yacc"],
|
701
|
+
["double *", "z"]],
|
702
|
+
:desc=>""},
|
703
|
+
{:func_name=>"gsl_spline2d_eval_deriv_x",
|
704
|
+
:func_type=>"double",
|
705
|
+
:args=>
|
706
|
+
[["const gsl_spline2d *", "spline"],
|
707
|
+
["const double", "x"],
|
708
|
+
["const double", "y"],
|
709
|
+
["gsl_interp_accel *", "xacc"],
|
710
|
+
["gsl_interp_accel *", "yacc"]],
|
711
|
+
:desc=>""},
|
712
|
+
{:func_name=>"gsl_spline2d_eval_deriv_x_e",
|
713
|
+
:func_type=>"int",
|
714
|
+
:args=>
|
715
|
+
[["const gsl_spline2d *", "spline"],
|
716
|
+
["const double", "x"],
|
717
|
+
["const double", "y"],
|
718
|
+
["gsl_interp_accel *", "xacc"],
|
719
|
+
["gsl_interp_accel *", "yacc"],
|
720
|
+
["double *", "d"]],
|
721
|
+
:desc=>""},
|
722
|
+
{:func_name=>"gsl_spline2d_eval_deriv_y",
|
723
|
+
:func_type=>"double",
|
724
|
+
:args=>
|
725
|
+
[["const gsl_spline2d *", "spline"],
|
726
|
+
["const double", "x"],
|
727
|
+
["const double", "y"],
|
728
|
+
["gsl_interp_accel *", "xacc"],
|
729
|
+
["gsl_interp_accel *", "yacc"]],
|
730
|
+
:desc=>""},
|
731
|
+
{:func_name=>"gsl_spline2d_eval_deriv_y_e",
|
732
|
+
:func_type=>"int",
|
733
|
+
:args=>
|
734
|
+
[["const gsl_spline2d *", "spline"],
|
735
|
+
["const double", "x"],
|
736
|
+
["const double", "y"],
|
737
|
+
["gsl_interp_accel *", "xacc"],
|
738
|
+
["gsl_interp_accel *", "yacc"],
|
739
|
+
["double *", "d"]],
|
740
|
+
:desc=>""},
|
741
|
+
{:func_name=>"gsl_spline2d_eval_deriv_xx",
|
742
|
+
:func_type=>"double",
|
743
|
+
:args=>
|
744
|
+
[["const gsl_spline2d *", "spline"],
|
745
|
+
["const double", "x"],
|
746
|
+
["const double", "y"],
|
747
|
+
["gsl_interp_accel *", "xacc"],
|
748
|
+
["gsl_interp_accel *", "yacc"]],
|
749
|
+
:desc=>""},
|
750
|
+
{:func_name=>"gsl_spline2d_eval_deriv_xx_e",
|
751
|
+
:func_type=>"int",
|
752
|
+
:args=>
|
753
|
+
[["const gsl_spline2d *", "spline"],
|
754
|
+
["const double", "x"],
|
755
|
+
["const double", "y"],
|
756
|
+
["gsl_interp_accel *", "xacc"],
|
757
|
+
["gsl_interp_accel *", "yacc"],
|
758
|
+
["double *", "d"]],
|
759
|
+
:desc=>""},
|
760
|
+
{:func_name=>"gsl_spline2d_eval_deriv_yy",
|
761
|
+
:func_type=>"double",
|
762
|
+
:args=>
|
763
|
+
[["const gsl_spline2d *", "spline"],
|
764
|
+
["const double", "x"],
|
765
|
+
["const double", "y"],
|
766
|
+
["gsl_interp_accel *", "xacc"],
|
767
|
+
["gsl_interp_accel *", "yacc"]],
|
768
|
+
:desc=>""},
|
769
|
+
{:func_name=>"gsl_spline2d_eval_deriv_yy_e",
|
770
|
+
:func_type=>"int",
|
771
|
+
:args=>
|
772
|
+
[["const gsl_spline2d *", "spline"],
|
773
|
+
["const double", "x"],
|
774
|
+
["const double", "y"],
|
775
|
+
["gsl_interp_accel *", "xacc"],
|
776
|
+
["gsl_interp_accel *", "yacc"],
|
777
|
+
["double *", "d"]],
|
778
|
+
:desc=>""},
|
779
|
+
{:func_name=>"gsl_spline2d_eval_deriv_xy",
|
780
|
+
:func_type=>"double",
|
781
|
+
:args=>
|
782
|
+
[["const gsl_spline2d *", "spline"],
|
783
|
+
["const double", "x"],
|
784
|
+
["const double", "y"],
|
785
|
+
["gsl_interp_accel *", "xacc"],
|
786
|
+
["gsl_interp_accel *", "yacc"]],
|
787
|
+
:desc=>""},
|
788
|
+
{:func_name=>"gsl_spline2d_eval_deriv_xy_e",
|
789
|
+
:func_type=>"int",
|
790
|
+
:args=>
|
791
|
+
[["const gsl_spline2d *", "spline"],
|
792
|
+
["const double", "x"],
|
793
|
+
["const double", "y"],
|
794
|
+
["gsl_interp_accel *", "xacc"],
|
795
|
+
["gsl_interp_accel *", "yacc"],
|
796
|
+
["double *", "d"]],
|
797
|
+
:desc=>""},
|
798
|
+
{:func_name=>"gsl_spline2d_set",
|
799
|
+
:func_type=>"int",
|
800
|
+
:args=>
|
801
|
+
[["const gsl_spline2d *", "spline"],
|
802
|
+
["double", "za[]"],
|
803
|
+
["const size_t", "i"],
|
804
|
+
["const size_t", "j"],
|
805
|
+
["const double", "z"]],
|
806
|
+
:desc=>""},
|
807
|
+
{:func_name=>"gsl_spline2d_get",
|
808
|
+
:func_type=>"double",
|
809
|
+
:args=>
|
810
|
+
[["const gsl_spline2d *", "spline"],
|
811
|
+
["const double", "za[]"],
|
812
|
+
["const size_t", "i"],
|
813
|
+
["const size_t", "j"]],
|
814
|
+
:desc=>
|
815
|
+
"This function returns the value z_{ij} for grid point\n" +
|
816
|
+
"(i,j) stored in the array za."}]
|