From 6e4df94a09ef214904556b42d1e5f4ab33c6632e Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 18:45:06 +0200
Subject: [PATCH 01/25] OCaml 5 compatibility: caml_copy_double
---
src/mlgsl_blas.c | 6 +-
src/mlgsl_blas_complex.c | 4 +-
src/mlgsl_blas_complex_float.c | 4 +-
src/mlgsl_blas_float.c | 10 +--
src/mlgsl_cheb.c | 4 +-
src/mlgsl_complex.c | 2 +-
src/mlgsl_fit.c | 2 +-
src/mlgsl_fun.c | 10 +--
src/mlgsl_histo.c | 12 +--
src/mlgsl_integration.c | 4 +-
src/mlgsl_interp.c | 8 +-
src/mlgsl_linalg.c | 4 +-
src/mlgsl_linalg_complex.c | 2 +-
src/mlgsl_math.c | 12 +--
src/mlgsl_min.c | 2 +-
src/mlgsl_monte.c | 8 +-
src/mlgsl_multimin.c | 6 +-
src/mlgsl_odeiv.c | 6 +-
src/mlgsl_poly.c | 14 ++--
src/mlgsl_randist.c | 142 ++++++++++++++++-----------------
src/mlgsl_rng.c | 4 +-
src/mlgsl_roots.c | 4 +-
src/mlgsl_sf.c | 26 +++---
src/mlgsl_stats.c | 34 ++++----
src/mlgsl_sum.c | 4 +-
25 files changed, 167 insertions(+), 167 deletions(-)
diff --git a/src/mlgsl_blas.c b/src/mlgsl_blas.c
index 8183748..ecd530d 100644
--- a/src/mlgsl_blas.c
+++ b/src/mlgsl_blas.c
@@ -19,21 +19,21 @@ CAMLprim value ml_gsl_blas_ddot(value X, value Y)
_DECLARE_VECTOR2(X, Y);
_CONVERT_VECTOR2(X, Y);
gsl_blas_ddot(&v_X, &v_Y, &r);
- return copy_double(r);
+ return caml_copy_double(r);
}
CAMLprim value ml_gsl_blas_dnrm2(value X)
{
_DECLARE_VECTOR(X);
_CONVERT_VECTOR(X);
- return copy_double(gsl_blas_dnrm2(&v_X));
+ return caml_copy_double(gsl_blas_dnrm2(&v_X));
}
CAMLprim value ml_gsl_blas_dasum(value X)
{
_DECLARE_VECTOR(X);
_CONVERT_VECTOR(X);
- return copy_double(gsl_blas_dasum(&v_X));
+ return caml_copy_double(gsl_blas_dasum(&v_X));
}
CAMLprim value ml_gsl_blas_idamax(value X)
diff --git a/src/mlgsl_blas_complex.c b/src/mlgsl_blas_complex.c
index 9493915..36c5dcb 100644
--- a/src/mlgsl_blas_complex.c
+++ b/src/mlgsl_blas_complex.c
@@ -35,14 +35,14 @@ CAMLprim value ml_gsl_blas_znrm2(value X)
{
_DECLARE_VECTOR(X);
_CONVERT_VECTOR(X);
- return copy_double(gsl_blas_dznrm2(&v_X));
+ return caml_copy_double(gsl_blas_dznrm2(&v_X));
}
CAMLprim value ml_gsl_blas_zasum(value X)
{
_DECLARE_VECTOR(X);
_CONVERT_VECTOR(X);
- return copy_double(gsl_blas_dzasum(&v_X));
+ return caml_copy_double(gsl_blas_dzasum(&v_X));
}
CAMLprim value ml_gsl_blas_izamax(value X)
diff --git a/src/mlgsl_blas_complex_float.c b/src/mlgsl_blas_complex_float.c
index b05e552..be952fc 100644
--- a/src/mlgsl_blas_complex_float.c
+++ b/src/mlgsl_blas_complex_float.c
@@ -37,14 +37,14 @@ CAMLprim value ml_gsl_blas_scnrm2(value X)
{
_DECLARE_VECTOR(X);
_CONVERT_VECTOR(X);
- return copy_double(gsl_blas_scnrm2(&v_X));
+ return caml_copy_double(gsl_blas_scnrm2(&v_X));
}
CAMLprim value ml_gsl_blas_scasum(value X)
{
_DECLARE_VECTOR(X);
_CONVERT_VECTOR(X);
- return copy_double(gsl_blas_scasum(&v_X));
+ return caml_copy_double(gsl_blas_scasum(&v_X));
}
CAMLprim value ml_gsl_blas_icamax(value X)
diff --git a/src/mlgsl_blas_float.c b/src/mlgsl_blas_float.c
index f0d5aa1..4b0ff35 100644
--- a/src/mlgsl_blas_float.c
+++ b/src/mlgsl_blas_float.c
@@ -19,7 +19,7 @@ CAMLprim value ml_gsl_blas_sdsdot(value alpha, value X, value Y)
_DECLARE_VECTOR2(X, Y);
_CONVERT_VECTOR2(X, Y);
gsl_blas_sdsdot(Double_val(alpha), &v_X, &v_Y, &r);
- return copy_double(r);
+ return caml_copy_double(r);
}
CAMLprim value ml_gsl_blas_dsdot(value X, value Y)
@@ -28,7 +28,7 @@ CAMLprim value ml_gsl_blas_dsdot(value X, value Y)
_DECLARE_VECTOR2(X, Y);
_CONVERT_VECTOR2(X, Y);
gsl_blas_dsdot(&v_X, &v_Y, &r);
- return copy_double(r);
+ return caml_copy_double(r);
}
CAMLprim value ml_gsl_blas_sdot(value X, value Y)
@@ -37,21 +37,21 @@ CAMLprim value ml_gsl_blas_sdot(value X, value Y)
_DECLARE_VECTOR2(X, Y);
_CONVERT_VECTOR2(X, Y);
gsl_blas_sdot(&v_X, &v_Y, &r);
- return copy_double(r);
+ return caml_copy_double(r);
}
CAMLprim value ml_gsl_blas_snrm2(value X)
{
_DECLARE_VECTOR(X);
_CONVERT_VECTOR(X);
- return copy_double(gsl_blas_snrm2(&v_X));
+ return caml_copy_double(gsl_blas_snrm2(&v_X));
}
CAMLprim value ml_gsl_blas_sasum(value X)
{
_DECLARE_VECTOR(X);
_CONVERT_VECTOR(X);
- return copy_double(gsl_blas_sasum(&v_X));
+ return caml_copy_double(gsl_blas_sasum(&v_X));
}
CAMLprim value ml_gsl_blas_isamax(value X)
diff --git a/src/mlgsl_cheb.c b/src/mlgsl_cheb.c
index 94ea11d..7e08566 100644
--- a/src/mlgsl_cheb.c
+++ b/src/mlgsl_cheb.c
@@ -40,7 +40,7 @@ CAMLprim value ml_gsl_cheb_init(value cs, value f, value a, value b)
CAMLreturn(Val_unit);
}
-ML2(gsl_cheb_eval, CHEB_VAL, Double_val, copy_double)
+ML2(gsl_cheb_eval, CHEB_VAL, Double_val, caml_copy_double)
CAMLprim value ml_gsl_cheb_eval_err(value cheb, value x)
{
@@ -49,7 +49,7 @@ CAMLprim value ml_gsl_cheb_eval_err(value cheb, value x)
return copy_two_double_arr(res, err);
}
-ML3(gsl_cheb_eval_n, CHEB_VAL, Int_val, Double_val, copy_double)
+ML3(gsl_cheb_eval_n, CHEB_VAL, Int_val, Double_val, caml_copy_double)
CAMLprim value ml_gsl_cheb_eval_n_err(value cheb, value order, value x)
{
diff --git a/src/mlgsl_complex.c b/src/mlgsl_complex.c
index e1f37f2..2308c42 100644
--- a/src/mlgsl_complex.c
+++ b/src/mlgsl_complex.c
@@ -38,7 +38,7 @@ CAMLprim value ml_gsl_complex_logabs(value Z)
{
_DECLARE_COMPLEX(Z);
_CONVERT_COMPLEX(Z);
- return copy_double(gsl_complex_logabs(z_Z));
+ return caml_copy_double(gsl_complex_logabs(z_Z));
}
diff --git a/src/mlgsl_fit.c b/src/mlgsl_fit.c
index 0776c0a..0ae3279 100644
--- a/src/mlgsl_fit.c
+++ b/src/mlgsl_fit.c
@@ -130,7 +130,7 @@ CAMLprim value ml_gsl_multifit_linear(value wo, value x, value y,
gsl_multifit_wlinear(&m_x, &v_w, &v_y, &v_c, &m_cov,
&chisq, MultifitWS_val(ws));
}
- return copy_double(chisq);
+ return caml_copy_double(chisq);
}
CAMLprim value ml_gsl_multifit_linear_bc(value *args, int argc)
diff --git a/src/mlgsl_fun.c b/src/mlgsl_fun.c
index 9b7aa39..8af9b27 100644
--- a/src/mlgsl_fun.c
+++ b/src/mlgsl_fun.c
@@ -21,7 +21,7 @@ double gslfun_callback(double x, void *params)
{
struct callback_params *p=params;
value res;
- value v_x = copy_double(x);
+ value v_x = caml_copy_double(x);
res=callback(p->closure, v_x);
return Double_val(res);
}
@@ -30,7 +30,7 @@ double gslfun_callback(double x, void *params)
double gslfun_callback_indir(double x, void *params)
{
value res;
- value v_x = copy_double(x);
+ value v_x = caml_copy_double(x);
value *closure = params;
res=callback(*closure, v_x);
return Double_val(res);
@@ -40,7 +40,7 @@ double gslfun_callback_f(double x, void *params)
{
struct callback_params *p=params;
value res;
- value v_x=copy_double(x);
+ value v_x=caml_copy_double(x);
res=callback(Field(p->closure, 0), v_x);
return Double_val(res);
}
@@ -49,7 +49,7 @@ double gslfun_callback_df(double x, void *params)
{
struct callback_params *p=params;
value res;
- value v_x=copy_double(x);
+ value v_x=caml_copy_double(x);
res=callback(Field(p->closure, 1), v_x);
return Double_val(res);
}
@@ -59,7 +59,7 @@ void gslfun_callback_fdf(double x, void *params,
{
struct callback_params *p=params;
value res;
- value v_x=copy_double(x);
+ value v_x=caml_copy_double(x);
res=callback(Field(p->closure, 2), v_x);
*f =Double_val(Field(res, 0));
*df=Double_val(Field(res, 1));
diff --git a/src/mlgsl_histo.c b/src/mlgsl_histo.c
index 085edd9..1ecaa36 100644
--- a/src/mlgsl_histo.c
+++ b/src/mlgsl_histo.c
@@ -60,7 +60,7 @@ CAMLprim value ml_gsl_histogram_max_val(value vh)
{
gsl_histogram h;
histo_of_val(&h, vh);
- return copy_double(gsl_histogram_max_val(&h));
+ return caml_copy_double(gsl_histogram_max_val(&h));
}
CAMLprim value ml_gsl_histogram_max_bin(value vh)
@@ -74,7 +74,7 @@ CAMLprim value ml_gsl_histogram_min_val(value vh)
{
gsl_histogram h;
histo_of_val(&h, vh);
- return copy_double(gsl_histogram_min_val(&h));
+ return caml_copy_double(gsl_histogram_min_val(&h));
}
CAMLprim value ml_gsl_histogram_min_bin(value vh)
@@ -88,21 +88,21 @@ CAMLprim value ml_gsl_histogram_mean(value vh)
{
gsl_histogram h;
histo_of_val(&h, vh);
- return copy_double(gsl_histogram_mean(&h));
+ return caml_copy_double(gsl_histogram_mean(&h));
}
CAMLprim value ml_gsl_histogram_sigma(value vh)
{
gsl_histogram h;
histo_of_val(&h, vh);
- return copy_double(gsl_histogram_sigma(&h));
+ return caml_copy_double(gsl_histogram_sigma(&h));
}
CAMLprim value ml_gsl_histogram_sum(value vh)
{
gsl_histogram h;
histo_of_val(&h, vh);
- return copy_double(gsl_histogram_sum(&h));
+ return caml_copy_double(gsl_histogram_sum(&h));
}
CAMLprim value ml_gsl_histogram_equal_bins_p(value vh1, value vh2)
@@ -186,5 +186,5 @@ CAMLprim value ml_gsl_histogram_pdf_sample(value vp, value r)
{
gsl_histogram_pdf p;
histopdf_of_val(&p, vp);
- return copy_double(gsl_histogram_pdf_sample(&p, r));
+ return caml_copy_double(gsl_histogram_pdf_sample(&p, r));
}
diff --git a/src/mlgsl_integration.c b/src/mlgsl_integration.c
index 666d735..a671fc5 100644
--- a/src/mlgsl_integration.c
+++ b/src/mlgsl_integration.c
@@ -28,8 +28,8 @@ CAMLprim value ml_gsl_integration_qng(value fun, value a, value b,
gsl_integration_qng(&gf, Double_val(a), Double_val(b),
Double_val(epsabs), Double_val(epsrel),
&result, &abserr, &neval);
- r = copy_double(result);
- e = copy_double(abserr);
+ r = caml_copy_double(result);
+ e = caml_copy_double(abserr);
res = alloc_small(3, 0);
Field(res, 0) = r;
Field(res, 1) = e;
diff --git a/src/mlgsl_interp.c b/src/mlgsl_interp.c
index 689625c..06ef37c 100644
--- a/src/mlgsl_interp.c
+++ b/src/mlgsl_interp.c
@@ -70,7 +70,7 @@ CAMLprim value ml_gsl_interp_accel_free(value ia)
CAMLprim value ml_gsl_interp_eval(value i, value xa, value ya, value x, value A)
{
- return copy_double(gsl_interp_eval(Interp_val(i),
+ return caml_copy_double(gsl_interp_eval(Interp_val(i),
Double_array_val(xa),
Double_array_val(ya),
Double_val(x),
@@ -80,7 +80,7 @@ CAMLprim value ml_gsl_interp_eval(value i, value xa, value ya, value x, value A)
CAMLprim value ml_gsl_interp_eval_deriv(value i, value xa, value ya,
value x, value A)
{
- return copy_double(gsl_interp_eval_deriv(Interp_val(i),
+ return caml_copy_double(gsl_interp_eval_deriv(Interp_val(i),
Double_array_val(xa),
Double_array_val(ya),
Double_val(x),
@@ -90,7 +90,7 @@ CAMLprim value ml_gsl_interp_eval_deriv(value i, value xa, value ya,
CAMLprim value ml_gsl_interp_eval_deriv2(value i, value xa, value ya,
value x, value A)
{
- return copy_double(gsl_interp_eval_deriv2(Interp_val(i),
+ return caml_copy_double(gsl_interp_eval_deriv2(Interp_val(i),
Double_array_val(xa),
Double_array_val(ya),
Double_val(x),
@@ -100,7 +100,7 @@ CAMLprim value ml_gsl_interp_eval_deriv2(value i, value xa, value ya,
CAMLprim value ml_gsl_interp_eval_integ(value i, value xa, value ya,
value a, value b, value A)
{
- return copy_double(gsl_interp_eval_integ(Interp_val(i),
+ return caml_copy_double(gsl_interp_eval_integ(Interp_val(i),
Double_array_val(xa),
Double_array_val(ya),
Double_val(a), Double_val(b),
diff --git a/src/mlgsl_linalg.c b/src/mlgsl_linalg.c
index d399dc4..37cee2b 100644
--- a/src/mlgsl_linalg.c
+++ b/src/mlgsl_linalg.c
@@ -90,14 +90,14 @@ CAMLprim value ml_gsl_linalg_LU_det(value LU, value sig)
{
_DECLARE_MATRIX(LU);
_CONVERT_MATRIX(LU);
- return copy_double(gsl_linalg_LU_det(&m_LU, Int_val(sig)));
+ return caml_copy_double(gsl_linalg_LU_det(&m_LU, Int_val(sig)));
}
CAMLprim value ml_gsl_linalg_LU_lndet(value LU)
{
_DECLARE_MATRIX(LU);
_CONVERT_MATRIX(LU);
- return copy_double(gsl_linalg_LU_lndet(&m_LU));
+ return caml_copy_double(gsl_linalg_LU_lndet(&m_LU));
}
CAMLprim value ml_gsl_linalg_LU_sgndet(value LU, value sig)
diff --git a/src/mlgsl_linalg_complex.c b/src/mlgsl_linalg_complex.c
index 79bc348..b417d55 100644
--- a/src/mlgsl_linalg_complex.c
+++ b/src/mlgsl_linalg_complex.c
@@ -85,7 +85,7 @@ CAMLprim value ml_gsl_linalg_complex_LU_lndet(value LU)
{
_DECLARE_MATRIX(LU);
_CONVERT_MATRIX(LU);
- return copy_double(gsl_linalg_complex_LU_lndet(&m_LU));
+ return caml_copy_double(gsl_linalg_complex_LU_lndet(&m_LU));
}
CAMLprim value ml_gsl_linalg_complex_LU_sgndet(value LU, value sig)
diff --git a/src/mlgsl_math.c b/src/mlgsl_math.c
index cf68966..8f781c1 100644
--- a/src/mlgsl_math.c
+++ b/src/mlgsl_math.c
@@ -8,11 +8,11 @@
#include "wrappers.h"
-ML1(gsl_log1p, Double_val, copy_double)
-ML1(gsl_expm1, Double_val, copy_double)
-ML2(gsl_hypot, Double_val, Double_val, copy_double)
-ML1(gsl_acosh, Double_val, copy_double)
-ML1(gsl_asinh, Double_val, copy_double)
-ML1(gsl_atanh, Double_val, copy_double)
+ML1(gsl_log1p, Double_val, caml_copy_double)
+ML1(gsl_expm1, Double_val, caml_copy_double)
+ML2(gsl_hypot, Double_val, Double_val, caml_copy_double)
+ML1(gsl_acosh, Double_val, caml_copy_double)
+ML1(gsl_asinh, Double_val, caml_copy_double)
+ML1(gsl_atanh, Double_val, caml_copy_double)
ML3(gsl_fcmp, Double_val, Double_val, Double_val, Val_int)
diff --git a/src/mlgsl_min.c b/src/mlgsl_min.c
index 9856399..a563b31 100644
--- a/src/mlgsl_min.c
+++ b/src/mlgsl_min.c
@@ -63,7 +63,7 @@ ML1(gsl_min_fminimizer_name, Minimizer_val, copy_string)
ML1(gsl_min_fminimizer_iterate, Minimizer_val, Unit)
-ML1(gsl_min_fminimizer_x_minimum, Minimizer_val, copy_double)
+ML1(gsl_min_fminimizer_x_minimum, Minimizer_val, caml_copy_double)
CAMLprim value ml_gsl_min_fminimizer_x_interv(value S)
{
diff --git a/src/mlgsl_monte.c b/src/mlgsl_monte.c
index ffecb55..a89b077 100644
--- a/src/mlgsl_monte.c
+++ b/src/mlgsl_monte.c
@@ -188,11 +188,11 @@ CAMLprim value ml_gsl_monte_miser_get_params(value state)
CAMLlocal1(r);
gsl_monte_miser_state *s = GSLMISERSTATE_VAL(state);
r=alloc_tuple(5);
- Store_field(r, 0, copy_double(s->estimate_frac));
+ Store_field(r, 0, caml_copy_double(s->estimate_frac));
Store_field(r, 1, Val_int(s->min_calls));
Store_field(r, 2, Val_int(s->min_calls_per_bisection));
- Store_field(r, 3, copy_double(s->alpha));
- Store_field(r, 4, copy_double(s->dither));
+ Store_field(r, 3, caml_copy_double(s->alpha));
+ Store_field(r, 4, caml_copy_double(s->dither));
CAMLreturn(r);
}
@@ -306,7 +306,7 @@ CAMLprim value ml_gsl_monte_vegas_get_params(value state)
CAMLlocal1(r);
gsl_monte_vegas_state *s = GSLVEGASSTATE_VAL(state);
r=alloc_tuple(6);
- Store_field(r, 0, copy_double(s->alpha));
+ Store_field(r, 0, caml_copy_double(s->alpha));
Store_field(r, 1, Val_int(s->iterations));
Store_field(r, 2, Val_int(s->stage));
Store_field(r, 3, Val_int(s->mode + 1));
diff --git a/src/mlgsl_multimin.c b/src/mlgsl_multimin.c
index 85fa3d4..22e6af6 100644
--- a/src/mlgsl_multimin.c
+++ b/src/mlgsl_multimin.c
@@ -105,7 +105,7 @@ CAMLprim value ml_gsl_multimin_fdfminimizer_minimum(value ox, value odx, value o
gsl_vector_memcpy(&v_g,
gsl_multimin_fdfminimizer_gradient(t));
}
- return copy_double(gsl_multimin_fdfminimizer_minimum(t));
+ return caml_copy_double(gsl_multimin_fdfminimizer_minimum(t));
}
CAMLprim value ml_gsl_multimin_test_gradient(value S, value epsabs)
@@ -184,10 +184,10 @@ CAMLprim value ml_gsl_multimin_fminimizer_minimum(value ox, value T)
_CONVERT_VECTOR(x);
gsl_vector_memcpy(&v_x, gsl_multimin_fminimizer_x(t));
}
- return copy_double(gsl_multimin_fminimizer_minimum(t));
+ return caml_copy_double(gsl_multimin_fminimizer_minimum(t));
}
-ML1(gsl_multimin_fminimizer_size, GSLMULTIMINFMINIMIZER_VAL, copy_double)
+ML1(gsl_multimin_fminimizer_size, GSLMULTIMINFMINIMIZER_VAL, caml_copy_double)
CAMLprim value ml_gsl_multimin_test_size(value S, value epsabs)
{
diff --git a/src/mlgsl_odeiv.c b/src/mlgsl_odeiv.c
index 7a4376b..917bd2c 100644
--- a/src/mlgsl_odeiv.c
+++ b/src/mlgsl_odeiv.c
@@ -30,7 +30,7 @@ static int ml_gsl_odeiv_func(double t, const double y[],
{
struct mlgsl_odeiv_params *p = params;
value vt, res;
- vt = copy_double(t);
+ vt = caml_copy_double(t);
memcpy(Double_array_val(p->arr1), y, p->dim * sizeof(double));
res = callback3_exn(p->closure, vt, p->arr1, p->arr2);
if(Is_exception_result(res))
@@ -45,7 +45,7 @@ static int ml_gsl_odeiv_jacobian(double t, const double y[],
{
struct mlgsl_odeiv_params *p = params;
value res, args[4];
- args[0] = copy_double(t);
+ args[0] = caml_copy_double(t);
memcpy(Double_array_val(p->arr1), y, p->dim * sizeof(double));
args[1] = p->arr1;
Data_bigarray_val(p->mat) = dfdy;
@@ -231,7 +231,7 @@ CAMLprim value ml_gsl_odeiv_control_hadjust(value c, value s, value y,
{
CAMLparam0();
CAMLlocal2(vh, r);
- vh = copy_double(c_h);
+ vh = caml_copy_double(c_h);
r = alloc_small(2, 0);
Field(r, 0) = Val_int(status + 1);
Field(r, 1) = vh;
diff --git a/src/mlgsl_poly.c b/src/mlgsl_poly.c
index 8f7f73f..45773b7 100644
--- a/src/mlgsl_poly.c
+++ b/src/mlgsl_poly.c
@@ -14,7 +14,7 @@
CAMLprim value ml_gsl_poly_eval(value c, value x)
{
int len = Double_array_length(c);
- return copy_double(gsl_poly_eval(Double_array_val(c), len, Double_val(x)));
+ return caml_copy_double(gsl_poly_eval(Double_array_val(c), len, Double_val(x)));
}
CAMLprim value ml_gsl_poly_solve_quadratic(value a, value b, value c)
@@ -30,8 +30,8 @@ CAMLprim value ml_gsl_poly_solve_quadratic(value a, value b, value c)
r = Val_int(0);
else{
r = alloc(2, 0);
- Store_field(r, 0, copy_double(x0));
- Store_field(r, 1, copy_double(x1));
+ Store_field(r, 0, caml_copy_double(x0));
+ Store_field(r, 1, caml_copy_double(x1));
} ;
CAMLreturn(r);
}
@@ -75,13 +75,13 @@ CAMLprim value ml_gsl_poly_solve_cubic(value a, value b, value c)
break;
case 1:
r = alloc(1, 0);
- Store_field(r, 0, copy_double(x0));
+ Store_field(r, 0, caml_copy_double(x0));
break;
case 3:
r = alloc(3, 1);
- Store_field(r, 0, copy_double(x0));
- Store_field(r, 1, copy_double(x1));
- Store_field(r, 2, copy_double(x2));
+ Store_field(r, 0, caml_copy_double(x0));
+ Store_field(r, 1, caml_copy_double(x1));
+ Store_field(r, 2, caml_copy_double(x2));
} ;
CAMLreturn(r);
};
diff --git a/src/mlgsl_randist.c b/src/mlgsl_randist.c
index 9296354..e337200 100644
--- a/src/mlgsl_randist.c
+++ b/src/mlgsl_randist.c
@@ -14,22 +14,22 @@
#include "mlgsl_matrix_double.h"
/* GAUSSIAN */
-ML2(gsl_ran_gaussian, Rng_val, Double_val, copy_double)
-ML2(gsl_ran_gaussian_ratio_method, Rng_val, Double_val, copy_double)
-ML2(gsl_ran_gaussian_ziggurat, Rng_val, Double_val, copy_double)
-ML2(gsl_ran_gaussian_pdf, Double_val, Double_val, copy_double)
+ML2(gsl_ran_gaussian, Rng_val, Double_val, caml_copy_double)
+ML2(gsl_ran_gaussian_ratio_method, Rng_val, Double_val, caml_copy_double)
+ML2(gsl_ran_gaussian_ziggurat, Rng_val, Double_val, caml_copy_double)
+ML2(gsl_ran_gaussian_pdf, Double_val, Double_val, caml_copy_double)
-ML1(gsl_ran_ugaussian, Rng_val, copy_double)
-ML1(gsl_ran_ugaussian_ratio_method, Rng_val, copy_double)
-ML1(gsl_ran_ugaussian_pdf, Double_val, copy_double)
+ML1(gsl_ran_ugaussian, Rng_val, caml_copy_double)
+ML1(gsl_ran_ugaussian_ratio_method, Rng_val, caml_copy_double)
+ML1(gsl_ran_ugaussian_pdf, Double_val, caml_copy_double)
/* GAUSSIAN TAIL */
-ML3(gsl_ran_gaussian_tail, Rng_val, Double_val, Double_val, copy_double)
-ML3(gsl_ran_gaussian_tail_pdf, Double_val, Double_val, Double_val ,copy_double)
+ML3(gsl_ran_gaussian_tail, Rng_val, Double_val, Double_val, caml_copy_double)
+ML3(gsl_ran_gaussian_tail_pdf, Double_val, Double_val, Double_val ,caml_copy_double)
-ML2(gsl_ran_ugaussian_tail, Rng_val, Double_val, copy_double)
-ML2(gsl_ran_ugaussian_tail_pdf, Double_val, Double_val, copy_double)
+ML2(gsl_ran_ugaussian_tail, Rng_val, Double_val, caml_copy_double)
+ML2(gsl_ran_ugaussian_tail_pdf, Double_val, Double_val, caml_copy_double)
/* BIVARIATE */
@@ -42,7 +42,7 @@ CAMLprim value ml_gsl_ran_bivariate_gaussian(value rng, value sigma_x, value sig
Double_val(rho), &x, &y);
return copy_two_double(x, y);
}
-ML5(gsl_ran_bivariate_gaussian_pdf, Double_val, Double_val, Double_val, Double_val, Double_val, copy_double)
+ML5(gsl_ran_bivariate_gaussian_pdf, Double_val, Double_val, Double_val, Double_val, Double_val, caml_copy_double)
/* MULTIVARIATE */
CAMLprim value ml_gsl_ran_multivariate_gaussian(value rng, value mu, value l, value out)
@@ -65,57 +65,57 @@ CAMLprim value ml_gsl_ran_multivariate_gaussian(value rng, value mu, value l, va
}
/* EXPONENTIAL */
-ML2(gsl_ran_exponential, Rng_val, Double_val, copy_double)
-ML2(gsl_ran_exponential_pdf, Double_val, Double_val, copy_double)
+ML2(gsl_ran_exponential, Rng_val, Double_val, caml_copy_double)
+ML2(gsl_ran_exponential_pdf, Double_val, Double_val, caml_copy_double)
/* LAPLACE */
-ML2(gsl_ran_laplace, Rng_val, Double_val, copy_double)
-ML2(gsl_ran_laplace_pdf, Double_val, Double_val, copy_double)
+ML2(gsl_ran_laplace, Rng_val, Double_val, caml_copy_double)
+ML2(gsl_ran_laplace_pdf, Double_val, Double_val, caml_copy_double)
/* EXPONENTIAL POWER */
-ML3(gsl_ran_exppow, Rng_val, Double_val, Double_val, copy_double)
-ML3(gsl_ran_exppow_pdf, Double_val, Double_val, Double_val, copy_double)
+ML3(gsl_ran_exppow, Rng_val, Double_val, Double_val, caml_copy_double)
+ML3(gsl_ran_exppow_pdf, Double_val, Double_val, Double_val, caml_copy_double)
/* CAUCHY */
-ML2(gsl_ran_cauchy, Rng_val, Double_val, copy_double)
-ML2(gsl_ran_cauchy_pdf, Double_val, Double_val, copy_double)
+ML2(gsl_ran_cauchy, Rng_val, Double_val, caml_copy_double)
+ML2(gsl_ran_cauchy_pdf, Double_val, Double_val, caml_copy_double)
/* RAYLEIGH */
-ML2(gsl_ran_rayleigh, Rng_val, Double_val, copy_double)
-ML2(gsl_ran_rayleigh_pdf, Double_val, Double_val, copy_double)
+ML2(gsl_ran_rayleigh, Rng_val, Double_val, caml_copy_double)
+ML2(gsl_ran_rayleigh_pdf, Double_val, Double_val, caml_copy_double)
/* RAYLEIGH TAIL */
-ML3(gsl_ran_rayleigh_tail, Rng_val, Double_val, Double_val, copy_double)
-ML3(gsl_ran_rayleigh_tail_pdf, Double_val, Double_val, Double_val, copy_double)
+ML3(gsl_ran_rayleigh_tail, Rng_val, Double_val, Double_val, caml_copy_double)
+ML3(gsl_ran_rayleigh_tail_pdf, Double_val, Double_val, Double_val, caml_copy_double)
/* LANDAU */
-ML1(gsl_ran_landau, Rng_val, copy_double)
-ML1(gsl_ran_landau_pdf, Double_val, copy_double)
+ML1(gsl_ran_landau, Rng_val, caml_copy_double)
+ML1(gsl_ran_landau_pdf, Double_val, caml_copy_double)
/* LEVY ALPHA-STABLE */
-ML3(gsl_ran_levy, Rng_val, Double_val, Double_val, copy_double)
+ML3(gsl_ran_levy, Rng_val, Double_val, Double_val, caml_copy_double)
/* LEVY SKEW ALPHA-STABLE */
-ML4(gsl_ran_levy_skew, Rng_val, Double_val, Double_val, Double_val, copy_double)
+ML4(gsl_ran_levy_skew, Rng_val, Double_val, Double_val, Double_val, caml_copy_double)
/* GAMMA */
-ML3(gsl_ran_gamma, Rng_val, Double_val, Double_val, copy_double)
-ML2(gsl_ran_gamma_int, Rng_val, Unsigned_int_val, copy_double)
-ML3(gsl_ran_gamma_pdf, Double_val, Double_val, Double_val, copy_double)
-ML3(gsl_ran_gamma_mt, Rng_val, Double_val, Double_val, copy_double)
-ML3(gsl_ran_gamma_knuth, Rng_val, Double_val, Double_val, copy_double)
+ML3(gsl_ran_gamma, Rng_val, Double_val, Double_val, caml_copy_double)
+ML2(gsl_ran_gamma_int, Rng_val, Unsigned_int_val, caml_copy_double)
+ML3(gsl_ran_gamma_pdf, Double_val, Double_val, Double_val, caml_copy_double)
+ML3(gsl_ran_gamma_mt, Rng_val, Double_val, Double_val, caml_copy_double)
+ML3(gsl_ran_gamma_knuth, Rng_val, Double_val, Double_val, caml_copy_double)
/* FLAT */
-ML3(gsl_ran_flat, Rng_val, Double_val, Double_val, copy_double)
-ML3(gsl_ran_flat_pdf, Double_val, Double_val, Double_val, copy_double)
+ML3(gsl_ran_flat, Rng_val, Double_val, Double_val, caml_copy_double)
+ML3(gsl_ran_flat_pdf, Double_val, Double_val, Double_val, caml_copy_double)
/* LOGNORMAL */
-ML3(gsl_ran_lognormal, Rng_val, Double_val, Double_val, copy_double)
-ML3(gsl_ran_lognormal_pdf, Double_val, Double_val, Double_val, copy_double)
+ML3(gsl_ran_lognormal, Rng_val, Double_val, Double_val, caml_copy_double)
+ML3(gsl_ran_lognormal_pdf, Double_val, Double_val, Double_val, caml_copy_double)
/* CHISQ */
-ML2(gsl_ran_chisq, Rng_val, Double_val, copy_double)
-ML2(gsl_ran_chisq_pdf, Double_val, Double_val, copy_double)
+ML2(gsl_ran_chisq, Rng_val, Double_val, caml_copy_double)
+ML2(gsl_ran_chisq_pdf, Double_val, Double_val, caml_copy_double)
/* DIRICHLET */
CAMLprim value ml_gsl_ran_dirichlet(value rng, value alpha, value theta)
@@ -136,7 +136,7 @@ CAMLprim value ml_gsl_ran_dirichlet_pdf(value alpha, value theta)
GSL_ERROR("alpha and theta must have same size", GSL_EBADLEN);
r = gsl_ran_dirichlet_pdf(K, Double_array_val(alpha),
Double_array_val(theta));
- return copy_double(r);
+ return caml_copy_double(r);
}
CAMLprim value ml_gsl_ran_dirichlet_lnpdf(value alpha, value theta)
@@ -147,28 +147,28 @@ CAMLprim value ml_gsl_ran_dirichlet_lnpdf(value alpha, value theta)
GSL_ERROR("alpha and theta must have same size", GSL_EBADLEN);
r = gsl_ran_dirichlet_lnpdf(K, Double_array_val(alpha),
Double_array_val(theta));
- return copy_double(r);
+ return caml_copy_double(r);
}
/* FDIST */
-ML3(gsl_ran_fdist, Rng_val, Double_val, Double_val, copy_double)
-ML3(gsl_ran_fdist_pdf, Double_val, Double_val, Double_val, copy_double)
+ML3(gsl_ran_fdist, Rng_val, Double_val, Double_val, caml_copy_double)
+ML3(gsl_ran_fdist_pdf, Double_val, Double_val, Double_val, caml_copy_double)
/* TDIST */
-ML2(gsl_ran_tdist, Rng_val, Double_val, copy_double)
-ML2(gsl_ran_tdist_pdf, Double_val, Double_val, copy_double)
+ML2(gsl_ran_tdist, Rng_val, Double_val, caml_copy_double)
+ML2(gsl_ran_tdist_pdf, Double_val, Double_val, caml_copy_double)
/* BETA */
-ML3(gsl_ran_beta, Rng_val, Double_val, Double_val, copy_double)
-ML3(gsl_ran_beta_pdf, Double_val, Double_val, Double_val, copy_double)
+ML3(gsl_ran_beta, Rng_val, Double_val, Double_val, caml_copy_double)
+ML3(gsl_ran_beta_pdf, Double_val, Double_val, Double_val, caml_copy_double)
/* LOGISTIC */
-ML2(gsl_ran_logistic, Rng_val, Double_val, copy_double)
-ML2(gsl_ran_logistic_pdf, Double_val, Double_val, copy_double)
+ML2(gsl_ran_logistic, Rng_val, Double_val, caml_copy_double)
+ML2(gsl_ran_logistic_pdf, Double_val, Double_val, caml_copy_double)
/* PARETO */
-ML3(gsl_ran_pareto, Rng_val, Double_val, Double_val, copy_double)
-ML3(gsl_ran_pareto_pdf, Double_val, Double_val, Double_val, copy_double)
+ML3(gsl_ran_pareto, Rng_val, Double_val, Double_val, caml_copy_double)
+ML3(gsl_ran_pareto_pdf, Double_val, Double_val, Double_val, caml_copy_double)
/* SPHERICAL */
CAMLprim value ml_gsl_ran_dir_2d(value rng)
@@ -193,9 +193,9 @@ CAMLprim value ml_gsl_ran_dir_3d(value rng)
CAMLparam0();
CAMLlocal1(r);
r=alloc_tuple(3);
- Store_field(r, 0, copy_double(x));
- Store_field(r, 1, copy_double(y));
- Store_field(r, 2, copy_double(z));
+ Store_field(r, 0, caml_copy_double(x));
+ Store_field(r, 1, caml_copy_double(y));
+ Store_field(r, 2, caml_copy_double(z));
CAMLreturn(r);
}
}
@@ -207,30 +207,30 @@ CAMLprim value ml_gsl_ran_dir_nd(value rng, value x)
}
/* WEIBULL */
-ML3(gsl_ran_weibull, Rng_val, Double_val, Double_val, copy_double)
-ML3(gsl_ran_weibull_pdf, Double_val, Double_val, Double_val, copy_double)
+ML3(gsl_ran_weibull, Rng_val, Double_val, Double_val, caml_copy_double)
+ML3(gsl_ran_weibull_pdf, Double_val, Double_val, Double_val, caml_copy_double)
/* GUMBEL1 */
-ML3(gsl_ran_gumbel1, Rng_val, Double_val, Double_val, copy_double)
-ML3(gsl_ran_gumbel1_pdf, Double_val, Double_val, Double_val, copy_double)
+ML3(gsl_ran_gumbel1, Rng_val, Double_val, Double_val, caml_copy_double)
+ML3(gsl_ran_gumbel1_pdf, Double_val, Double_val, Double_val, caml_copy_double)
/* GUMBEL2 */
-ML3(gsl_ran_gumbel2, Rng_val, Double_val, Double_val, copy_double)
-ML3(gsl_ran_gumbel2_pdf, Double_val, Double_val, Double_val, copy_double)
+ML3(gsl_ran_gumbel2, Rng_val, Double_val, Double_val, caml_copy_double)
+ML3(gsl_ran_gumbel2_pdf, Double_val, Double_val, Double_val, caml_copy_double)
/* POISSON */
ML2(gsl_ran_poisson, Rng_val, Double_val, Val_int)
-ML2(gsl_ran_poisson_pdf, Int_val, Double_val, copy_double)
+ML2(gsl_ran_poisson_pdf, Int_val, Double_val, caml_copy_double)
/* BERNOULLI */
ML2(gsl_ran_bernoulli, Rng_val, Double_val, Val_int)
-ML2(gsl_ran_bernoulli_pdf, Int_val, Double_val, copy_double)
+ML2(gsl_ran_bernoulli_pdf, Int_val, Double_val, caml_copy_double)
/* BINOMIAL */
ML3(gsl_ran_binomial, Rng_val, Double_val, Int_val, Val_int)
ML3(gsl_ran_binomial_knuth, Rng_val, Double_val, Int_val, Val_int)
ML3(gsl_ran_binomial_tpe, Rng_val, Double_val, Int_val, Val_int)
-ML3(gsl_ran_binomial_pdf, Int_val, Double_val, Int_val, copy_double)
+ML3(gsl_ran_binomial_pdf, Int_val, Double_val, Int_val, caml_copy_double)
/* MULTINOMIAL */
CAMLprim value ml_gsl_ran_multinomial(value rng, value n, value p)
@@ -257,7 +257,7 @@ CAMLprim value ml_gsl_ran_multinomial_pdf(value p, value n)
for(i=0; i<K; i++)
N[i] = Int_val(Field(n, i));
r = gsl_ran_multinomial_pdf(K, Double_array_val(p), N);
- return copy_double(r);
+ return caml_copy_double(r);
}
CAMLprim value ml_gsl_ran_multinomial_lnpdf(value p, value n)
@@ -269,29 +269,29 @@ CAMLprim value ml_gsl_ran_multinomial_lnpdf(value p, value n)
for(i=0; i<K; i++)
N[i] = Int_val(Field(n, i));
r = gsl_ran_multinomial_lnpdf(K, Double_array_val(p), N);
- return copy_double(r);
+ return caml_copy_double(r);
}
/* NEGATIVE BINOMIAL */
ML3(gsl_ran_negative_binomial, Rng_val, Double_val, Double_val, Val_int)
-ML3(gsl_ran_negative_binomial_pdf, Int_val, Double_val, Double_val, copy_double)
+ML3(gsl_ran_negative_binomial_pdf, Int_val, Double_val, Double_val, caml_copy_double)
/* PASCAL */
ML3(gsl_ran_pascal, Rng_val, Double_val, Int_val, Val_int)
-ML3(gsl_ran_pascal_pdf, Int_val, Double_val, Int_val, copy_double)
+ML3(gsl_ran_pascal_pdf, Int_val, Double_val, Int_val, caml_copy_double)
/* GEOMETRIC */
ML2(gsl_ran_geometric, Rng_val, Double_val, Val_int)
-ML2(gsl_ran_geometric_pdf, Int_val, Double_val, copy_double)
+ML2(gsl_ran_geometric_pdf, Int_val, Double_val, caml_copy_double)
/* HYPERGEOMETRIC */
ML4(gsl_ran_hypergeometric, Rng_val, Int_val, Int_val, Int_val, Val_int)
-ML4(gsl_ran_hypergeometric_pdf, Int_val, Int_val, Int_val, Int_val, copy_double)
+ML4(gsl_ran_hypergeometric_pdf, Int_val, Int_val, Int_val, Int_val, caml_copy_double)
/* LOGARITHMIC */
ML2(gsl_ran_logarithmic, Rng_val, Double_val, Val_int)
-ML2(gsl_ran_logarithmic_pdf, Int_val, Double_val, copy_double)
+ML2(gsl_ran_logarithmic_pdf, Int_val, Double_val, caml_copy_double)
/* SHUFFLING */
@@ -349,5 +349,5 @@ CAMLprim value ml_gsl_ran_discrete_preproc(value p)
#define Discrete_val(v) ((gsl_ran_discrete_t *)(Field(v, 0)))
ML2(gsl_ran_discrete, Rng_val, Discrete_val, Val_int)
-ML2(gsl_ran_discrete_pdf, Int_val, Discrete_val, copy_double)
+ML2(gsl_ran_discrete_pdf, Int_val, Discrete_val, caml_copy_double)
ML1(gsl_ran_discrete_free, Discrete_val, Unit)
diff --git a/src/mlgsl_rng.c b/src/mlgsl_rng.c
index 7561769..5ece69a 100644
--- a/src/mlgsl_rng.c
+++ b/src/mlgsl_rng.c
@@ -211,12 +211,12 @@ value ml_gsl_rng_get(value rng)
value ml_gsl_rng_uniform(value rng)
{
- return copy_double(gsl_rng_uniform(Rng_val(rng))) ;
+ return caml_copy_double(gsl_rng_uniform(Rng_val(rng))) ;
}
value ml_gsl_rng_uniform_pos(value rng)
{
- return copy_double(gsl_rng_uniform_pos(Rng_val(rng))) ;
+ return caml_copy_double(gsl_rng_uniform_pos(Rng_val(rng))) ;
}
value ml_gsl_rng_uniform_int(value rng, value n)
diff --git a/src/mlgsl_roots.c b/src/mlgsl_roots.c
index c1d54ce..6d72668 100644
--- a/src/mlgsl_roots.c
+++ b/src/mlgsl_roots.c
@@ -125,8 +125,8 @@ ML1(gsl_root_fdfsolver_name, FDFsolver_val, copy_string)
ML1(gsl_root_fsolver_iterate, Fsolver_val, Unit)
ML1(gsl_root_fdfsolver_iterate, FDFsolver_val, Unit)
-ML1(gsl_root_fsolver_root, Fsolver_val, copy_double)
-ML1(gsl_root_fdfsolver_root, FDFsolver_val, copy_double)
+ML1(gsl_root_fsolver_root, Fsolver_val, caml_copy_double)
+ML1(gsl_root_fdfsolver_root, FDFsolver_val, caml_copy_double)
CAMLprim value ml_gsl_root_fsolver_x_interv(value S)
{
diff --git a/src/mlgsl_sf.c b/src/mlgsl_sf.c
index fdf7d7b..a983828 100644
--- a/src/mlgsl_sf.c
+++ b/src/mlgsl_sf.c
@@ -34,8 +34,8 @@ static inline value val_of_result_e10(gsl_sf_result_e10 *result)
{
CAMLparam0();
CAMLlocal3(r, v, e) ;
- v = copy_double(result->val);
- e = copy_double(result->err);
+ v = caml_copy_double(result->val);
+ e = caml_copy_double(result->err);
r = alloc_small(3, 0);
Field(r, 0) = v;
Field(r, 1) = e;
@@ -84,19 +84,19 @@ CAMLprim value ml_gsl_sf_result_smash_e(value e10)
return val_of_result(&res); }
#define SF1(name, conv1) \
- ML1(gsl_sf_##name, conv1, copy_double) \
+ ML1(gsl_sf_##name, conv1, caml_copy_double) \
ML1_res(gsl_sf_##name##_e, conv1)
#define SF2(name, conv1, conv2) \
- ML2(gsl_sf_##name, conv1, conv2, copy_double) \
+ ML2(gsl_sf_##name, conv1, conv2, caml_copy_double) \
ML2_res(gsl_sf_##name##_e, conv1, conv2)
#define SF3(name, conv1, conv2, conv3) \
- ML3(gsl_sf_##name, conv1, conv2, conv3, copy_double) \
+ ML3(gsl_sf_##name, conv1, conv2, conv3, caml_copy_double) \
ML3_res(gsl_sf_##name##_e, conv1, conv2, conv3)
#define SF4(name, conv1, conv2, conv3, conv4) \
- ML4(gsl_sf_##name, conv1, conv2, conv3, conv4, copy_double) \
+ ML4(gsl_sf_##name, conv1, conv2, conv3, conv4, caml_copy_double) \
ML4_res(gsl_sf_##name##_e, conv1, conv2, conv3, conv4)
#define SF5(name, conv1, conv2, conv3, conv4, conv5) \
- ML5(gsl_sf_##name, conv1, conv2, conv3, conv4, conv5, copy_double) \
+ ML5(gsl_sf_##name, conv1, conv2, conv3, conv4, conv5, caml_copy_double) \
ML5_res(gsl_sf_##name##_e, conv1, conv2, conv3, conv4, conv5)
@@ -269,7 +269,7 @@ CAMLprim value ml_gsl_sf_ellint_D(value arg1, value arg2, value arg3)
double res =
gsl_sf_ellint_D(
Double_val(arg1), Double_val(arg2), dummy_n, GSL_MODE_val(arg3));
- CAMLreturn(caml_copy_double(res));
+ CAMLreturn(caml_caml_copy_double(res));
}
CAMLprim value ml_gsl_sf_ellint_D_e(value arg1, value arg2, value arg3)
@@ -367,7 +367,7 @@ CAMLprim value ml_gsl_sf_lngamma_sgn_e(value x)
CAMLparam0();
CAMLlocal3(v,r,s);
r=val_of_result(&res);
- s=copy_double(sgn);
+ s=caml_copy_double(sgn);
v=alloc_small(2, 0);
Field(v, 0)=r;
Field(v, 1)=s;
@@ -400,7 +400,7 @@ CAMLprim value ml_gsl_sf_lnpoch_sgn_e(value a, value x)
CAMLparam0();
CAMLlocal3(v,r,s);
r=val_of_result(&res);
- s=copy_double(sgn);
+ s=caml_copy_double(sgn);
v=alloc_small(2, 0);
Field(v, 0)=r;
Field(v, 1)=s;
@@ -422,7 +422,7 @@ CAMLprim value ml_gsl_sf_lnbeta_sgn_e(value x, value y)
CAMLparam0();
CAMLlocal3(v,r,s);
r=val_of_result(&res);
- s=copy_double(sgn);
+ s=caml_copy_double(sgn);
v=alloc_small(2, 0);
Field(v, 0)=r;
Field(v, 1)=s;
@@ -614,8 +614,8 @@ CAMLprim value ml_gsl_sf_rect_to_polar(value x, value y)
gsl_sf_rect_to_polar(Double_val(x), Double_val(y), &r, &theta);
return val_of_result_pair (&r, &theta);
}
-ML1(gsl_sf_angle_restrict_symm, Double_val, copy_double)
-ML1(gsl_sf_angle_restrict_pos, Double_val, copy_double)
+ML1(gsl_sf_angle_restrict_symm, Double_val, caml_copy_double)
+ML1(gsl_sf_angle_restrict_pos, Double_val, caml_copy_double)
ML2_res(gsl_sf_sin_err_e, Double_val, Double_val)
ML2_res(gsl_sf_cos_err_e, Double_val, Double_val)
diff --git a/src/mlgsl_stats.c b/src/mlgsl_stats.c
index 2c91ede..a92c75c 100644
--- a/src/mlgsl_stats.c
+++ b/src/mlgsl_stats.c
@@ -29,7 +29,7 @@ CAMLprim value ml_gsl_stats_mean(value ow, value data)
result = gsl_stats_wmean(Double_array_val(w), 1,
Double_array_val(data), 1, len);
}
- return copy_double(result);
+ return caml_copy_double(result);
}
CAMLprim value ml_gsl_stats_variance(value ow, value omean, value data)
@@ -53,7 +53,7 @@ CAMLprim value ml_gsl_stats_variance(value ow, value omean, value data)
Double_array_val(data), 1, len,
Double_val(Unoption(omean)));
}
- return copy_double(result);
+ return caml_copy_double(result);
}
CAMLprim value ml_gsl_stats_sd(value ow, value omean, value data)
@@ -77,7 +77,7 @@ CAMLprim value ml_gsl_stats_sd(value ow, value omean, value data)
Double_array_val(data), 1, len,
Double_val(Unoption(omean)));
}
- return copy_double(result);
+ return caml_copy_double(result);
}
CAMLprim value ml_gsl_stats_variance_with_fixed_mean(value ow,
@@ -95,7 +95,7 @@ CAMLprim value ml_gsl_stats_variance_with_fixed_mean(value ow,
Double_array_val(data), 1,
len, Double_val(mean));
}
- return copy_double(result);
+ return caml_copy_double(result);
}
CAMLprim value ml_gsl_stats_sd_with_fixed_mean(value ow,
@@ -113,7 +113,7 @@ CAMLprim value ml_gsl_stats_sd_with_fixed_mean(value ow,
Double_array_val(data), 1,
len, Double_val(mean));
}
- return copy_double(result);
+ return caml_copy_double(result);
}
CAMLprim value ml_gsl_stats_absdev(value ow, value omean, value data)
@@ -137,7 +137,7 @@ CAMLprim value ml_gsl_stats_absdev(value ow, value omean, value data)
Double_array_val(data), 1, len,
Double_val(Unoption(omean)));
}
- return copy_double(result);
+ return caml_copy_double(result);
}
CAMLprim value ml_gsl_stats_skew(value ow, value data)
@@ -152,7 +152,7 @@ CAMLprim value ml_gsl_stats_skew(value ow, value data)
result = gsl_stats_wskew(Double_array_val(w), 1,
Double_array_val(data), 1, len);
}
- return copy_double(result);
+ return caml_copy_double(result);
}
CAMLprim value ml_gsl_stats_skew_m_sd(value ow, value mean,
@@ -170,7 +170,7 @@ CAMLprim value ml_gsl_stats_skew_m_sd(value ow, value mean,
Double_array_val(data), 1, len,
Double_val(mean), Double_val(sd));
}
- return copy_double(result);
+ return caml_copy_double(result);
}
CAMLprim value ml_gsl_stats_kurtosis(value ow, value data)
@@ -185,7 +185,7 @@ CAMLprim value ml_gsl_stats_kurtosis(value ow, value data)
result = gsl_stats_wkurtosis(Double_array_val(w), 1,
Double_array_val(data), 1, len);
}
- return copy_double(result);
+ return caml_copy_double(result);
}
CAMLprim value ml_gsl_stats_kurtosis_m_sd(value ow, value mean,
@@ -203,7 +203,7 @@ CAMLprim value ml_gsl_stats_kurtosis_m_sd(value ow, value mean,
Double_array_val(data), 1, len,
Double_val(mean), Double_val(sd));
}
- return copy_double(result);
+ return caml_copy_double(result);
}
CAMLprim value ml_gsl_stats_lag1_autocorrelation(value omean, value data)
@@ -215,7 +215,7 @@ CAMLprim value ml_gsl_stats_lag1_autocorrelation(value omean, value data)
else
result = gsl_stats_lag1_autocorrelation_m(Double_array_val(data), 1, len,
Double_val(Unoption(omean)));
- return copy_double(result);
+ return caml_copy_double(result);
}
CAMLprim value ml_gsl_stats_covariance(value data1, value data2)
@@ -225,7 +225,7 @@ CAMLprim value ml_gsl_stats_covariance(value data1, value data2)
check_array_size(data1, data2);
result = gsl_stats_covariance(Double_array_val(data1), 1,
Double_array_val(data2), 1, len);
- return copy_double(result);
+ return caml_copy_double(result);
}
CAMLprim value ml_gsl_stats_covariance_m(value mean1, value data1,
@@ -237,21 +237,21 @@ CAMLprim value ml_gsl_stats_covariance_m(value mean1, value data1,
result = gsl_stats_covariance_m(Double_array_val(data1), 1,
Double_array_val(data2), 1, len,
Double_val(mean1), Double_val(mean2));
- return copy_double(result);
+ return caml_copy_double(result);
}
CAMLprim value ml_gsl_stats_max(value data)
{
size_t len = Double_array_length(data);
double result = gsl_stats_max(Double_array_val(data), 1, len);
- return copy_double(result);
+ return caml_copy_double(result);
}
CAMLprim value ml_gsl_stats_min(value data)
{
size_t len = Double_array_length(data);
double result = gsl_stats_min(Double_array_val(data), 1, len);
- return copy_double(result);
+ return caml_copy_double(result);
}
CAMLprim value ml_gsl_stats_minmax(value data)
@@ -293,7 +293,7 @@ CAMLprim value ml_gsl_stats_quantile_from_sorted_data(value data, value f)
size_t len = Double_array_length(data);
double r = gsl_stats_quantile_from_sorted_data(Double_array_val(data),
1, len, Double_val(f));
- return copy_double(r);
+ return caml_copy_double(r);
}
CAMLprim value ml_gsl_stats_correlation(value data1, value data2)
@@ -303,5 +303,5 @@ CAMLprim value ml_gsl_stats_correlation(value data1, value data2)
check_array_size(data1, data2);
r = gsl_stats_correlation(Double_array_val(data1), 1,
Double_array_val(data2), 1, len);
- return copy_double(r);
+ return caml_copy_double(r);
}
diff --git a/src/mlgsl_sum.c b/src/mlgsl_sum.c
index 3af4d2d..fd12506 100644
--- a/src/mlgsl_sum.c
+++ b/src/mlgsl_sum.c
@@ -26,7 +26,7 @@ CAMLprim value ml_gsl_sum_levin_u_getinfo(value ws)
gsl_sum_levin_u_workspace *W=WS_val(ws);
CAMLparam0();
CAMLlocal2(v, s);
- s=copy_double(W->sum_plain);
+ s=caml_copy_double(W->sum_plain);
v=alloc_small(3, 0);
Field(v, 0)=Val_int(W->size);
Field(v, 1)=Val_int(W->terms_used);
@@ -51,7 +51,7 @@ CAMLprim value ml_gsl_sum_levin_utrunc_getinfo(value ws)
gsl_sum_levin_utrunc_workspace *W=WStrunc_val(ws);
CAMLparam0();
CAMLlocal2(v, s);
- s=copy_double(W->sum_plain);
+ s=caml_copy_double(W->sum_plain);
v=alloc_small(3, 0);
Field(v, 0)=Val_int(W->size);
Field(v, 1)=Val_int(W->terms_used);
From 6701a722d3c0d7f96a33efdb63abe339c2809b4e Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 18:48:55 +0200
Subject: [PATCH 02/25] OCaml 5.0 compatibility: Data_bigarray_val
---
src/mlgsl_combi.c | 2 +-
src/mlgsl_fun.c | 44 ++++++++++++++++++++++----------------------
src/mlgsl_odeiv.c | 2 +-
3 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/src/mlgsl_combi.c b/src/mlgsl_combi.c
index f59dfd7..edb7494 100644
--- a/src/mlgsl_combi.c
+++ b/src/mlgsl_combi.c
@@ -8,7 +8,7 @@ static void combi_of_val(gsl_combination *c, value vc)
{
c->n = Int_val(Field(vc, 0));
c->k = Int_val(Field(vc, 1));
- c->data = Data_bigarray_val(Field(vc, 2));
+ c->data = Caml_ba_data_val(Field(vc, 2));
}
CAMLprim value ml_gsl_combination_init_first(value vc)
diff --git a/src/mlgsl_fun.c b/src/mlgsl_fun.c
index 8af9b27..712f6c0 100644
--- a/src/mlgsl_fun.c
+++ b/src/mlgsl_fun.c
@@ -99,8 +99,8 @@ int gsl_multiroot_callback(const gsl_vector *x, void *params, gsl_vector *F)
x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
f_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
- x_v = gsl_vector_view_array(Data_bigarray_val(x_barr), len);
- f_v = gsl_vector_view_array(Data_bigarray_val(f_barr), len);
+ x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
+ f_v = gsl_vector_view_array(Caml_ba_data_val(f_barr), len);
gsl_vector_memcpy(&x_v.vector, x);
callback2(p->closure, x_barr, f_barr);
@@ -118,8 +118,8 @@ int gsl_multiroot_callback_f(const gsl_vector *x, void *params, gsl_vector *F)
x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
f_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
- x_v = gsl_vector_view_array(Data_bigarray_val(x_barr), len);
- f_v = gsl_vector_view_array(Data_bigarray_val(f_barr), len);
+ x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
+ f_v = gsl_vector_view_array(Caml_ba_data_val(f_barr), len);
gsl_vector_memcpy(&x_v.vector, x);
callback2(Field(p->closure, 0), x_barr, f_barr);
@@ -138,8 +138,8 @@ int gsl_multiroot_callback_df(const gsl_vector *x, void *params, gsl_matrix *J)
x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
j_barr = alloc_bigarray_dims(barr_flags, 2, NULL, len, len);
- x_v = gsl_vector_view_array(Data_bigarray_val(x_barr), len);
- j_v = gsl_matrix_view_array(Data_bigarray_val(j_barr), len, len);
+ x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
+ j_v = gsl_matrix_view_array(Caml_ba_data_val(j_barr), len, len);
gsl_vector_memcpy(&x_v.vector, x);
callback2(Field(p->closure, 1), x_barr, j_barr);
@@ -160,9 +160,9 @@ int gsl_multiroot_callback_fdf(const gsl_vector *x, void *params,
x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
f_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
j_barr = alloc_bigarray_dims(barr_flags, 2, NULL, len, len);
- x_v = gsl_vector_view_array(Data_bigarray_val(x_barr), len);
- f_v = gsl_vector_view_array(Data_bigarray_val(f_barr), len);
- j_v = gsl_matrix_view_array(Data_bigarray_val(j_barr), len, len);
+ x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
+ f_v = gsl_vector_view_array(Caml_ba_data_val(f_barr), len);
+ j_v = gsl_matrix_view_array(Caml_ba_data_val(j_barr), len, len);
gsl_vector_memcpy(&x_v.vector, x);
callback3(Field(p->closure, 2), x_barr, f_barr, j_barr);
@@ -184,7 +184,7 @@ double gsl_multimin_callback(const gsl_vector *x, void *params)
value res;
x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
- x_v = gsl_vector_view_array(Data_bigarray_val(x_barr), len);
+ x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
gsl_vector_memcpy(&x_v.vector, x);
res=callback(p->closure, x_barr);
@@ -201,7 +201,7 @@ double gsl_multimin_callback_f(const gsl_vector *x, void *params)
value res;
x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
- x_v = gsl_vector_view_array(Data_bigarray_val(x_barr), len);
+ x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
gsl_vector_memcpy(&x_v.vector, x);
res=callback(Field(p->closure, 0), x_barr);
@@ -218,8 +218,8 @@ void gsl_multimin_callback_df(const gsl_vector *x, void *params, gsl_vector *G)
x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
g_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
- x_v = gsl_vector_view_array(Data_bigarray_val(x_barr), len);
- g_v = gsl_vector_view_array(Data_bigarray_val(g_barr), len);
+ x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
+ g_v = gsl_vector_view_array(Caml_ba_data_val(g_barr), len);
gsl_vector_memcpy(&x_v.vector, x);
callback2(Field(p->closure, 1), x_barr, g_barr);
@@ -238,8 +238,8 @@ void gsl_multimin_callback_fdf(const gsl_vector *x, void *params,
x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
g_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
- x_v = gsl_vector_view_array(Data_bigarray_val(x_barr), len);
- g_v = gsl_vector_view_array(Data_bigarray_val(g_barr), len);
+ x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
+ g_v = gsl_vector_view_array(Caml_ba_data_val(g_barr), len);
gsl_vector_memcpy(&x_v.vector, x);
res=callback2(Field(p->closure, 2), x_barr, g_barr);
@@ -261,8 +261,8 @@ int gsl_multifit_callback_f(const gsl_vector *X, void *params, gsl_vector *F)
x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, p);
f_barr = alloc_bigarray_dims(barr_flags, 1, NULL, n);
- x_v = gsl_vector_view_array(Data_bigarray_val(x_barr), p);
- f_v = gsl_vector_view_array(Data_bigarray_val(f_barr), n);
+ x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), p);
+ f_v = gsl_vector_view_array(Caml_ba_data_val(f_barr), n);
gsl_vector_memcpy(&x_v.vector, X);
callback2(Field(parms->closure, 0), x_barr, f_barr);
@@ -283,8 +283,8 @@ int gsl_multifit_callback_df(const gsl_vector *X, void *params, gsl_matrix *J)
x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, p);
j_barr = alloc_bigarray_dims(barr_flags, 2, NULL, n, p);
- x_v = gsl_vector_view_array(Data_bigarray_val(x_barr), p);
- j_v = gsl_matrix_view_array(Data_bigarray_val(j_barr), n, p);
+ x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), p);
+ j_v = gsl_matrix_view_array(Caml_ba_data_val(j_barr), n, p);
gsl_vector_memcpy(&x_v.vector, X);
res=callback2(Field(parms->closure, 1), x_barr, j_barr);
@@ -308,9 +308,9 @@ int gsl_multifit_callback_fdf(const gsl_vector *X, void *params,
x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, p);
f_barr = alloc_bigarray_dims(barr_flags, 1, NULL, n);
j_barr = alloc_bigarray_dims(barr_flags, 2, NULL, n, p);
- x_v = gsl_vector_view_array(Data_bigarray_val(x_barr), p);
- f_v = gsl_vector_view_array(Data_bigarray_val(f_barr), n);
- j_v = gsl_matrix_view_array(Data_bigarray_val(j_barr), n, p);
+ x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), p);
+ f_v = gsl_vector_view_array(Caml_ba_data_val(f_barr), n);
+ j_v = gsl_matrix_view_array(Caml_ba_data_val(j_barr), n, p);
gsl_vector_memcpy(&x_v.vector, X);
callback3(Field(parms->closure, 2), x_barr, f_barr, j_barr);
diff --git a/src/mlgsl_odeiv.c b/src/mlgsl_odeiv.c
index 917bd2c..4d5dab3 100644
--- a/src/mlgsl_odeiv.c
+++ b/src/mlgsl_odeiv.c
@@ -48,7 +48,7 @@ static int ml_gsl_odeiv_jacobian(double t, const double y[],
args[0] = caml_copy_double(t);
memcpy(Double_array_val(p->arr1), y, p->dim * sizeof(double));
args[1] = p->arr1;
- Data_bigarray_val(p->mat) = dfdy;
+ Caml_ba_data_val(p->mat) = dfdy;
args[2] = p->mat;
args[3] = p->arr2;
res = callbackN_exn(p->jac_closure, 4, args);
From 2ea8b6fddb23162fa6c5132a83612e4e79092b3d Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:08:20 +0200
Subject: [PATCH 03/25] OCaml 5.0 compatibility: copy_double bis
---
src/wrappers.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/wrappers.h b/src/wrappers.h
index bdaea4b..514998f 100644
--- a/src/wrappers.h
+++ b/src/wrappers.h
@@ -30,8 +30,8 @@ static inline value copy_two_double(double a, double b)
{
CAMLparam0();
CAMLlocal3(r, va, vb);
- va = copy_double(a);
- vb = copy_double(b);
+ va = caml_copy_double(a);
+ vb = caml_copy_double(b);
r = alloc_small(2, 0);
Field(r, 0) = va;
Field(r, 1) = vb;
From c1c37b2f74c89c1030116fb53f707a7dc99bf53a Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:10:32 +0200
Subject: [PATCH 04/25] OCaml 5.0 compatibility: alloc_small
---
src/mlgsl_fit.c | 4 ++--
src/mlgsl_ieee.c | 4 ++--
src/mlgsl_integration.c | 2 +-
src/mlgsl_min.c | 2 +-
src/mlgsl_monte.c | 10 +++++-----
src/mlgsl_multifit.c | 2 +-
src/mlgsl_multimin.c | 4 ++--
src/mlgsl_multiroots.c | 4 ++--
src/mlgsl_odeiv.c | 2 +-
src/mlgsl_poly.c | 14 +++++++-------
src/mlgsl_rng.c | 2 +-
src/mlgsl_roots.c | 4 ++--
src/mlgsl_sf.c | 10 +++++-----
src/mlgsl_stats.c | 2 +-
src/mlgsl_sum.c | 4 ++--
src/mlgsl_vector_impl.h | 2 +-
src/wrappers.h | 6 +++---
17 files changed, 39 insertions(+), 39 deletions(-)
diff --git a/src/mlgsl_fit.c b/src/mlgsl_fit.c
index 0ae3279..905cea6 100644
--- a/src/mlgsl_fit.c
+++ b/src/mlgsl_fit.c
@@ -36,7 +36,7 @@ CAMLprim value ml_gsl_fit_linear(value wo, value x, value y)
Double_array_val(y), 1, N,
&c0, &c1, &cov00, &cov01, &cov11, &sumsq);
}
- r=alloc_small(6 * Double_wosize, Double_array_tag);
+ r=caml_alloc_small(6 * Double_wosize, Double_array_tag);
Store_double_field(r, 0, c0);
Store_double_field(r, 1, c1);
Store_double_field(r, 2, cov00);
@@ -80,7 +80,7 @@ CAMLprim value ml_gsl_fit_mul(value wo, value x, value y)
Double_array_val(y), 1, N,
&c1, &cov11, &sumsq);
}
- r=alloc_small(3 * Double_wosize, Double_array_tag);
+ r=caml_alloc_small(3 * Double_wosize, Double_array_tag);
Store_double_field(r, 0, c1);
Store_double_field(r, 1, cov11);
Store_double_field(r, 2, sumsq);
diff --git a/src/mlgsl_ieee.c b/src/mlgsl_ieee.c
index 90d868a..1aaa246 100644
--- a/src/mlgsl_ieee.c
+++ b/src/mlgsl_ieee.c
@@ -16,7 +16,7 @@ static value rep_val(const gsl_ieee_double_rep *r)
CAMLparam0();
CAMLlocal2(v, m);
m=copy_string(r->mantissa);
- v=alloc_small(4, 0);
+ v=caml_alloc_small(4, 0);
Field(v, 0)= Val_int(r->sign);
Field(v, 1)= m;
Field(v, 2)= Val_int(r->exponent);
@@ -111,7 +111,7 @@ static value rev_conv_excepts(int e)
for(i = tab_size-2; i >= 0 ; i--)
if(except_conv[i] & e) {
- c = alloc_small(2, Tag_cons);
+ c = caml_alloc_small(2, Tag_cons);
Field(c, 0) = Val_int(i);
Field(c, 1) = v;
v = c;
diff --git a/src/mlgsl_integration.c b/src/mlgsl_integration.c
index a671fc5..dff1830 100644
--- a/src/mlgsl_integration.c
+++ b/src/mlgsl_integration.c
@@ -30,7 +30,7 @@ CAMLprim value ml_gsl_integration_qng(value fun, value a, value b,
&result, &abserr, &neval);
r = caml_copy_double(result);
e = caml_copy_double(abserr);
- res = alloc_small(3, 0);
+ res = caml_alloc_small(3, 0);
Field(res, 0) = r;
Field(res, 1) = e;
Field(res, 2) = Val_int(neval);
diff --git a/src/mlgsl_min.c b/src/mlgsl_min.c
index a563b31..7e7ebf6 100644
--- a/src/mlgsl_min.c
+++ b/src/mlgsl_min.c
@@ -29,7 +29,7 @@ CAMLprim value ml_gsl_min_fminimizer_alloc(value t)
s=gsl_min_fminimizer_alloc(Minimizertype_val(t));
params=stat_alloc(sizeof *params);
- res=alloc_small(2, Abstract_tag);
+ res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)s;
Field(res, 1) = (value)params;
params->gslfun.gf.function = &gslfun_callback ;
diff --git a/src/mlgsl_monte.c b/src/mlgsl_monte.c
index a89b077..18693af 100644
--- a/src/mlgsl_monte.c
+++ b/src/mlgsl_monte.c
@@ -49,7 +49,7 @@ CAMLprim value ml_gsl_monte_plain_alloc(value d)
CAMLparam0();
CAMLlocal1(res);
- res=alloc_small(2, Abstract_tag);
+ res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)s;
Field(res, 1) = (value)params;
params->gslfun.mf.f = &gsl_monte_callback;
@@ -124,7 +124,7 @@ CAMLprim value ml_gsl_monte_miser_alloc(value d)
{
CAMLparam0();
CAMLlocal1(res);
- res=alloc_small(2, Abstract_tag);
+ res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)s;
Field(res, 1) = (value)params;
params->gslfun.mf.f = &gsl_monte_callback;
@@ -225,7 +225,7 @@ CAMLprim value ml_gsl_monte_vegas_alloc(value d)
{
CAMLparam0();
CAMLlocal1(res);
- res=alloc_small(3, Abstract_tag);
+ res=caml_alloc_small(3, Abstract_tag);
Field(res, 0) = (value)s;
Field(res, 1) = (value)params;
Field(res, 2) = Val_none;
@@ -293,7 +293,7 @@ CAMLprim value ml_gsl_monte_vegas_get_info(value state)
{
value r;
gsl_monte_vegas_state *s = GSLVEGASSTATE_VAL(state);
- r=alloc_small(3 * Double_wosize, Double_array_tag);
+ r=caml_alloc_small(3 * Double_wosize, Double_array_tag);
Store_double_field(r, 0, s->result);
Store_double_field(r, 1, s->sigma);
Store_double_field(r, 2, s->chisq);
@@ -314,7 +314,7 @@ CAMLprim value ml_gsl_monte_vegas_get_params(value state)
{
value vchan;
if(Is_some(GSLVEGASSTREAM_VAL(state))){
- vchan=alloc_small(1, 0);
+ vchan=caml_alloc_small(1, 0);
Field(vchan, 0)=GSLVEGASSTREAM_VAL(state);
}
else
diff --git a/src/mlgsl_multifit.c b/src/mlgsl_multifit.c
index 0f35452..4217846 100644
--- a/src/mlgsl_multifit.c
+++ b/src/mlgsl_multifit.c
@@ -33,7 +33,7 @@ CAMLprim value ml_gsl_multifit_fdfsolver_alloc(value type, value n, value p)
Int_val(n), Int_val(p));
params=stat_alloc(sizeof(*params));
- res=alloc_small(2, Abstract_tag);
+ res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)S;
Field(res, 1) = (value)params;
diff --git a/src/mlgsl_multimin.c b/src/mlgsl_multimin.c
index 22e6af6..f0519c2 100644
--- a/src/mlgsl_multimin.c
+++ b/src/mlgsl_multimin.c
@@ -37,7 +37,7 @@ CAMLprim value ml_gsl_multimin_fdfminimizer_alloc(value type, value d)
T=gsl_multimin_fdfminimizer_alloc(fdfminimizer_of_value(type), dim);
params=stat_alloc(sizeof(*params));
- res=alloc_small(2, Abstract_tag);
+ res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)T;
Field(res, 1) = (value)params;
@@ -136,7 +136,7 @@ CAMLprim value ml_gsl_multimin_fminimizer_alloc(value type, value d)
T=gsl_multimin_fminimizer_alloc(fminimizer_of_value(type), dim);
params=stat_alloc(sizeof(*params));
- res=alloc_small(2, Abstract_tag);
+ res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)T;
Field(res, 1) = (value)params;
diff --git a/src/mlgsl_multiroots.c b/src/mlgsl_multiroots.c
index b333b64..c6cde1a 100644
--- a/src/mlgsl_multiroots.c
+++ b/src/mlgsl_multiroots.c
@@ -47,7 +47,7 @@ CAMLprim value ml_gsl_multiroot_fsolver_alloc(value type, value d)
S=gsl_multiroot_fsolver_alloc(fsolver_of_value(type), dim);
params=stat_alloc(sizeof(*params));
- res=alloc_small(2, Abstract_tag);
+ res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)S;
Field(res, 1) = (value)params;
params->gslfun.mrf.f = &gsl_multiroot_callback;
@@ -70,7 +70,7 @@ CAMLprim value ml_gsl_multiroot_fdfsolver_alloc(value type, value d)
S=gsl_multiroot_fdfsolver_alloc(fdfsolver_of_value(type), dim);
params=stat_alloc(sizeof(*params));
- res=alloc_small(2, Abstract_tag);
+ res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)S;
Field(res, 1) = (value)params;
params->gslfun.mrfdf.f = &gsl_multiroot_callback_f;
diff --git a/src/mlgsl_odeiv.c b/src/mlgsl_odeiv.c
index 4d5dab3..ff988aa 100644
--- a/src/mlgsl_odeiv.c
+++ b/src/mlgsl_odeiv.c
@@ -232,7 +232,7 @@ CAMLprim value ml_gsl_odeiv_control_hadjust(value c, value s, value y,
CAMLparam0();
CAMLlocal2(vh, r);
vh = caml_copy_double(c_h);
- r = alloc_small(2, 0);
+ r = caml_alloc_small(2, 0);
Field(r, 0) = Val_int(status + 1);
Field(r, 1) = vh;
CAMLreturn(r);
diff --git a/src/mlgsl_poly.c b/src/mlgsl_poly.c
index 45773b7..7894171 100644
--- a/src/mlgsl_poly.c
+++ b/src/mlgsl_poly.c
@@ -46,13 +46,13 @@ CAMLprim value ml_gsl_poly_complex_solve_quadratic(value a, value b, value c)
{
CAMLparam0();
CAMLlocal3(r,rz0,rz1);
- rz0 = alloc_small(2 * Double_wosize, Double_array_tag);
+ rz0 = caml_alloc_small(2 * Double_wosize, Double_array_tag);
Store_double_field(rz0, 0, GSL_REAL(z0));
Store_double_field(rz0, 1, GSL_IMAG(z0));
- rz1 = alloc_small(2 * Double_wosize, Double_array_tag);
+ rz1 = caml_alloc_small(2 * Double_wosize, Double_array_tag);
Store_double_field(rz1, 0, GSL_REAL(z1));
Store_double_field(rz1, 1, GSL_IMAG(z1));
- r = alloc_small(2, 0);
+ r = caml_alloc_small(2, 0);
Field(r,0) = rz0 ;
Field(r,1) = rz1 ;
CAMLreturn(r);
@@ -95,16 +95,16 @@ CAMLprim value ml_gsl_poly_complex_solve_cubic(value a, value b, value c)
{
CAMLparam0();
CAMLlocal4(r,rz0, rz1, rz2);
- rz0 = alloc_small(2 * Double_wosize, Double_array_tag);
+ rz0 = caml_alloc_small(2 * Double_wosize, Double_array_tag);
Store_double_field(rz0, 0, GSL_REAL(z0));
Store_double_field(rz0, 1, GSL_IMAG(z0));
- rz1 = alloc_small(2 * Double_wosize, Double_array_tag);
+ rz1 = caml_alloc_small(2 * Double_wosize, Double_array_tag);
Store_double_field(rz1, 0, GSL_REAL(z1));
Store_double_field(rz1, 1, GSL_IMAG(z1));
- rz2 = alloc_small(2 * Double_wosize, Double_array_tag);
+ rz2 = caml_alloc_small(2 * Double_wosize, Double_array_tag);
Store_double_field(rz2, 0, GSL_REAL(z2));
Store_double_field(rz2, 1, GSL_IMAG(z2));
- r = alloc_small(3, 0);
+ r = caml_alloc_small(3, 0);
Field(r,0) = rz0 ;
Field(r,1) = rz1 ;
Field(r,2) = rz2 ;
diff --git a/src/mlgsl_rng.c b/src/mlgsl_rng.c
index 5ece69a..4769724 100644
--- a/src/mlgsl_rng.c
+++ b/src/mlgsl_rng.c
@@ -185,7 +185,7 @@ value ml_gsl_rng_dump_state(value rng)
const char *name = gsl_rng_name(Rng_val(rng));
n = copy_string(name);
s = caml_alloc_initialized_string(len, state);
- v = alloc_small(2, 0);
+ v = caml_alloc_small(2, 0);
Field(v, 0) = n;
Field(v, 1) = s;
CAMLreturn(v);
diff --git a/src/mlgsl_roots.c b/src/mlgsl_roots.c
index 6d72668..fbf9e50 100644
--- a/src/mlgsl_roots.c
+++ b/src/mlgsl_roots.c
@@ -40,7 +40,7 @@ CAMLprim value ml_gsl_root_fsolver_alloc(value t)
{
CAMLparam0();
CAMLlocal1(res);
- res=alloc_small(2, Abstract_tag);
+ res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)s;
Field(res, 1) = (value)params;
params->gslfun.gf.function = &gslfun_callback;
@@ -64,7 +64,7 @@ CAMLprim value ml_gsl_root_fdfsolver_alloc(value t)
{
CAMLparam0();
CAMLlocal1(res);
- res=alloc_small(2, Abstract_tag);
+ res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)s;
Field(res, 1) = (value)params;
params->gslfun.gfdf.f = &gslfun_callback_f;
diff --git a/src/mlgsl_sf.c b/src/mlgsl_sf.c
index a983828..5448a60 100644
--- a/src/mlgsl_sf.c
+++ b/src/mlgsl_sf.c
@@ -24,7 +24,7 @@ static value val_of_result_pair (gsl_sf_result *re, gsl_sf_result *im)
CAMLlocal3 (v, v_re, v_im);
v_re = val_of_result (re);
v_im = val_of_result (im);
- v = alloc_small (2, 0);
+ v = caml_alloc_small (2, 0);
Field (v, 0) = v_re;
Field (v, 1) = v_im;
CAMLreturn (v);
@@ -36,7 +36,7 @@ static inline value val_of_result_e10(gsl_sf_result_e10 *result)
CAMLlocal3(r, v, e) ;
v = caml_copy_double(result->val);
e = caml_copy_double(result->err);
- r = alloc_small(3, 0);
+ r = caml_alloc_small(3, 0);
Field(r, 0) = v;
Field(r, 1) = e;
Field(r, 2) = Val_int(result->e10);
@@ -368,7 +368,7 @@ CAMLprim value ml_gsl_sf_lngamma_sgn_e(value x)
CAMLlocal3(v,r,s);
r=val_of_result(&res);
s=caml_copy_double(sgn);
- v=alloc_small(2, 0);
+ v=caml_alloc_small(2, 0);
Field(v, 0)=r;
Field(v, 1)=s;
CAMLreturn(v);
@@ -401,7 +401,7 @@ CAMLprim value ml_gsl_sf_lnpoch_sgn_e(value a, value x)
CAMLlocal3(v,r,s);
r=val_of_result(&res);
s=caml_copy_double(sgn);
- v=alloc_small(2, 0);
+ v=caml_alloc_small(2, 0);
Field(v, 0)=r;
Field(v, 1)=s;
CAMLreturn(v);
@@ -423,7 +423,7 @@ CAMLprim value ml_gsl_sf_lnbeta_sgn_e(value x, value y)
CAMLlocal3(v,r,s);
r=val_of_result(&res);
s=caml_copy_double(sgn);
- v=alloc_small(2, 0);
+ v=caml_alloc_small(2, 0);
Field(v, 0)=r;
Field(v, 1)=s;
CAMLreturn(v);
diff --git a/src/mlgsl_stats.c b/src/mlgsl_stats.c
index a92c75c..88c7c70 100644
--- a/src/mlgsl_stats.c
+++ b/src/mlgsl_stats.c
@@ -282,7 +282,7 @@ CAMLprim value ml_gsl_stats_minmax_index(value data)
size_t mi, ma;
value r;
gsl_stats_minmax_index(&mi, &ma, Double_array_val(data), 1, len);
- r = alloc_small(2, 0);
+ r = caml_alloc_small(2, 0);
Field(r, 0) = Val_int(mi);
Field(r, 1) = Val_int(ma);
return r;
diff --git a/src/mlgsl_sum.c b/src/mlgsl_sum.c
index fd12506..6657771 100644
--- a/src/mlgsl_sum.c
+++ b/src/mlgsl_sum.c
@@ -27,7 +27,7 @@ CAMLprim value ml_gsl_sum_levin_u_getinfo(value ws)
CAMLparam0();
CAMLlocal2(v, s);
s=caml_copy_double(W->sum_plain);
- v=alloc_small(3, 0);
+ v=caml_alloc_small(3, 0);
Field(v, 0)=Val_int(W->size);
Field(v, 1)=Val_int(W->terms_used);
Field(v, 2)=s;
@@ -52,7 +52,7 @@ CAMLprim value ml_gsl_sum_levin_utrunc_getinfo(value ws)
CAMLparam0();
CAMLlocal2(v, s);
s=caml_copy_double(W->sum_plain);
- v=alloc_small(3, 0);
+ v=caml_alloc_small(3, 0);
Field(v, 0)=Val_int(W->size);
Field(v, 1)=Val_int(W->terms_used);
Field(v, 2)=s;
diff --git a/src/mlgsl_vector_impl.h b/src/mlgsl_vector_impl.h
index 287e696..b688df0 100644
--- a/src/mlgsl_vector_impl.h
+++ b/src/mlgsl_vector_impl.h
@@ -117,7 +117,7 @@ CAMLprim value FUNCTION(ml_gsl_vector,minmaxindex)(value a)
_DECLARE_VECTOR(a);
_CONVERT_VECTOR(a);
FUNCTION(gsl_vector,minmax_index)(&v_a, &x, &y);
- v=alloc_small(2, 0);
+ v=caml_alloc_small(2, 0);
Field(v, 0) = Val_int(x);
Field(v, 1) = Val_int(y);
return v;
diff --git a/src/wrappers.h b/src/wrappers.h
index 514998f..87dd7e0 100644
--- a/src/wrappers.h
+++ b/src/wrappers.h
@@ -32,7 +32,7 @@ static inline value copy_two_double(double a, double b)
CAMLlocal3(r, va, vb);
va = caml_copy_double(a);
vb = caml_copy_double(b);
- r = alloc_small(2, 0);
+ r = caml_alloc_small(2, 0);
Field(r, 0) = va;
Field(r, 1) = vb;
CAMLreturn(r);
@@ -41,14 +41,14 @@ static inline value copy_two_double(double a, double b)
static inline value copy_two_double_arr(double a, double b)
{
value r;
- r=alloc_small(2 * Double_wosize, Double_array_tag);
+ r=caml_alloc_small(2 * Double_wosize, Double_array_tag);
Store_double_field(r, 0, a);
Store_double_field(r, 1, b);
return r;
}
#define Abstract_ptr(v, p) \
- ( v=alloc_small(1, Abstract_tag), Field(v, 0)=Val_bp(p) )
+ ( v=caml_alloc_small(1, Abstract_tag), Field(v, 0)=Val_bp(p) )
#define ML1(name, conv1, convr) \
CAMLprim value ml_##name(value arg1) \
From abfa4f41f90801558eab8e33e609ad788bdf2e3d Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:11:40 +0200
Subject: [PATCH 05/25] OCaml 5.0 compatibility: Bigarray_val
---
src/mlgsl_matrix.h | 2 +-
src/mlgsl_permut.c | 4 ++--
src/mlgsl_permut.h | 2 +-
src/mlgsl_vector.h | 2 +-
src/mlgsl_wavelet.c | 2 +-
5 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/mlgsl_matrix.h b/src/mlgsl_matrix.h
index f70908a..a5966d0 100644
--- a/src/mlgsl_matrix.h
+++ b/src/mlgsl_matrix.h
@@ -14,7 +14,7 @@
static inline void TYPE(mlgsl_mat_of_bigarray)(TYPE(gsl_matrix) *cmat,
value vmat){
- struct caml_bigarray *bigarr = Bigarray_val(vmat);
+ struct caml_bigarray *bigarr = Caml_ba_array_val(vmat);
cmat->block = NULL;
cmat->owner = 0;
cmat->size1 = bigarr->dim[0];
diff --git a/src/mlgsl_permut.c b/src/mlgsl_permut.c
index 365d5a8..b9133b0 100644
--- a/src/mlgsl_permut.c
+++ b/src/mlgsl_permut.c
@@ -67,7 +67,7 @@ CAMLprim value ml_gsl_permute(value p, value arr)
CAMLprim value ml_gsl_permute_barr(value p, value arr)
{
GSL_PERMUT_OF_BIGARRAY(p);
- struct caml_bigarray *barr = Bigarray_val(arr);
+ struct caml_bigarray *barr = Caml_ba_array_val(arr);
enum caml_bigarray_kind kind = (barr->flags) & BIGARRAY_KIND_MASK ;
switch(kind){
case BIGARRAY_FLOAT32:
@@ -122,7 +122,7 @@ CAMLprim value ml_gsl_permute_inverse(value p, value arr)
CAMLprim value ml_gsl_permute_inverse_barr(value p, value arr)
{
GSL_PERMUT_OF_BIGARRAY(p);
- struct caml_bigarray *barr = Bigarray_val(arr);
+ struct caml_bigarray *barr = Caml_ba_array_val(arr);
enum caml_bigarray_kind kind = (barr->flags) & BIGARRAY_KIND_MASK ;
switch(kind){
case BIGARRAY_FLOAT32:
diff --git a/src/mlgsl_permut.h b/src/mlgsl_permut.h
index 4a4956e..1db17a9 100644
--- a/src/mlgsl_permut.h
+++ b/src/mlgsl_permut.h
@@ -6,7 +6,7 @@
#include <caml/bigarray.h>
#define GSL_PERMUT_OF_BIGARRAY(arr) \
- struct caml_bigarray *bigarr_##arr = Bigarray_val(arr); \
+ struct caml_bigarray *bigarr_##arr = Caml_ba_array_val(arr); \
gsl_permutation perm_##arr = { \
/*.size =*/ bigarr_##arr->dim[0], \
/*.data =*/ bigarr_##arr->data }
diff --git a/src/mlgsl_vector.h b/src/mlgsl_vector.h
index c08e43a..15180a2 100644
--- a/src/mlgsl_vector.h
+++ b/src/mlgsl_vector.h
@@ -14,7 +14,7 @@
static inline void TYPE(mlgsl_vec_of_bigarray)(TYPE(gsl_vector) *cvec,
value vvec){
- struct caml_bigarray *bigarr = Bigarray_val(vvec);
+ struct caml_bigarray *bigarr = Caml_ba_array_val(vvec);
cvec->block = NULL;
cvec->owner = 0;
cvec->size = bigarr->dim[0];
diff --git a/src/mlgsl_wavelet.c b/src/mlgsl_wavelet.c
index c47bfb9..8d4a15b 100644
--- a/src/mlgsl_wavelet.c
+++ b/src/mlgsl_wavelet.c
@@ -96,7 +96,7 @@ ml_gsl_wavelet_transform (value w, value dir, value vf, value ws)
CAMLprim value
ml_gsl_wavelet_transform_bigarray (value w, value dir, value b, value ws)
{
- struct caml_bigarray *bigarr = Bigarray_val(b);
+ struct caml_bigarray *bigarr = Caml_ba_array_val(b);
double *data = bigarr->data;
size_t n = bigarr->dim[0];
gsl_wavelet_transform (Wavelet_val (w), data, 1, n,
From 2411a75f44b54a61298aa5b230c997fe676cf20f Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:13:31 +0200
Subject: [PATCH 06/25] OCaml 5.0 compatibility: caml_ba_array
---
src/mlgsl_matrix.h | 2 +-
src/mlgsl_permut.c | 8 ++++----
src/mlgsl_permut.h | 2 +-
src/mlgsl_vector.h | 2 +-
src/mlgsl_wavelet.c | 2 +-
5 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/mlgsl_matrix.h b/src/mlgsl_matrix.h
index a5966d0..f232e06 100644
--- a/src/mlgsl_matrix.h
+++ b/src/mlgsl_matrix.h
@@ -14,7 +14,7 @@
static inline void TYPE(mlgsl_mat_of_bigarray)(TYPE(gsl_matrix) *cmat,
value vmat){
- struct caml_bigarray *bigarr = Caml_ba_array_val(vmat);
+ struct caml_ba_array *bigarr = Caml_ba_array_val(vmat);
cmat->block = NULL;
cmat->owner = 0;
cmat->size1 = bigarr->dim[0];
diff --git a/src/mlgsl_permut.c b/src/mlgsl_permut.c
index b9133b0..d5a1adc 100644
--- a/src/mlgsl_permut.c
+++ b/src/mlgsl_permut.c
@@ -67,8 +67,8 @@ CAMLprim value ml_gsl_permute(value p, value arr)
CAMLprim value ml_gsl_permute_barr(value p, value arr)
{
GSL_PERMUT_OF_BIGARRAY(p);
- struct caml_bigarray *barr = Caml_ba_array_val(arr);
- enum caml_bigarray_kind kind = (barr->flags) & BIGARRAY_KIND_MASK ;
+ struct caml_ba_array *barr = Caml_ba_array_val(arr);
+ enum caml_ba_array_kind kind = (barr->flags) & BIGARRAY_KIND_MASK ;
switch(kind){
case BIGARRAY_FLOAT32:
gsl_permute_float(perm_p.data, barr->data, 1, barr->dim[0]); break;
@@ -122,8 +122,8 @@ CAMLprim value ml_gsl_permute_inverse(value p, value arr)
CAMLprim value ml_gsl_permute_inverse_barr(value p, value arr)
{
GSL_PERMUT_OF_BIGARRAY(p);
- struct caml_bigarray *barr = Caml_ba_array_val(arr);
- enum caml_bigarray_kind kind = (barr->flags) & BIGARRAY_KIND_MASK ;
+ struct caml_ba_array *barr = Caml_ba_array_val(arr);
+ enum caml_ba_array_kind kind = (barr->flags) & BIGARRAY_KIND_MASK ;
switch(kind){
case BIGARRAY_FLOAT32:
gsl_permute_float_inverse(perm_p.data, barr->data, 1, barr->dim[0]); break;
diff --git a/src/mlgsl_permut.h b/src/mlgsl_permut.h
index 1db17a9..2e60b3a 100644
--- a/src/mlgsl_permut.h
+++ b/src/mlgsl_permut.h
@@ -6,7 +6,7 @@
#include <caml/bigarray.h>
#define GSL_PERMUT_OF_BIGARRAY(arr) \
- struct caml_bigarray *bigarr_##arr = Caml_ba_array_val(arr); \
+ struct caml_ba_array *bigarr_##arr = Caml_ba_array_val(arr); \
gsl_permutation perm_##arr = { \
/*.size =*/ bigarr_##arr->dim[0], \
/*.data =*/ bigarr_##arr->data }
diff --git a/src/mlgsl_vector.h b/src/mlgsl_vector.h
index 15180a2..fa1c99a 100644
--- a/src/mlgsl_vector.h
+++ b/src/mlgsl_vector.h
@@ -14,7 +14,7 @@
static inline void TYPE(mlgsl_vec_of_bigarray)(TYPE(gsl_vector) *cvec,
value vvec){
- struct caml_bigarray *bigarr = Caml_ba_array_val(vvec);
+ struct caml_ba_array *bigarr = Caml_ba_array_val(vvec);
cvec->block = NULL;
cvec->owner = 0;
cvec->size = bigarr->dim[0];
diff --git a/src/mlgsl_wavelet.c b/src/mlgsl_wavelet.c
index 8d4a15b..5e36102 100644
--- a/src/mlgsl_wavelet.c
+++ b/src/mlgsl_wavelet.c
@@ -96,7 +96,7 @@ ml_gsl_wavelet_transform (value w, value dir, value vf, value ws)
CAMLprim value
ml_gsl_wavelet_transform_bigarray (value w, value dir, value b, value ws)
{
- struct caml_bigarray *bigarr = Caml_ba_array_val(b);
+ struct caml_ba_array *bigarr = Caml_ba_array_val(b);
double *data = bigarr->data;
size_t n = bigarr->dim[0];
gsl_wavelet_transform (Wavelet_val (w), data, 1, n,
From 572fe18b742e69c93fa0426b43a03735e4f6ffcd Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:14:27 +0200
Subject: [PATCH 07/25] OCaml 5.0 compatibility: caml_failwith
---
src/mlgsl_error.c | 2 +-
src/mlgsl_rng.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mlgsl_error.c b/src/mlgsl_error.c
index b5cece5..af91c17 100644
--- a/src/mlgsl_error.c
+++ b/src/mlgsl_error.c
@@ -35,7 +35,7 @@ static void ml_gsl_error_handler(const char *reason, const char *file,
else if (GSL_CONTINUE <= gsl_errno && gsl_errno <= GSL_FAILURE)
ml_errno = gsl_errno + 2;
else
- failwith("invalid GSL error code");
+ caml_failwith("invalid GSL error code");
exn_msg = caml_copy_string(reason);
caml_callback2(Field(*ml_gsl_err_handler,0), Val_int(ml_errno), exn_msg);
diff --git a/src/mlgsl_rng.c b/src/mlgsl_rng.c
index 4769724..e440387 100644
--- a/src/mlgsl_rng.c
+++ b/src/mlgsl_rng.c
@@ -99,7 +99,7 @@ static int int_of_rngtype(const gsl_rng_type *rngt)
if(i < len)
return i;
else
- failwith("should not happen") ;
+ caml_failwith("should not happen") ;
}
value ml_gsl_rng_get_default(value unit)
From f081fa5677bc42a118945c16e7c0261bdaa6c5ee Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:15:40 +0200
Subject: [PATCH 08/25] OCaml 5.0 compatibility: caml_copy_string
---
src/mlgsl_ieee.c | 2 +-
src/mlgsl_interp.c | 2 +-
src/mlgsl_min.c | 2 +-
src/mlgsl_multifit.c | 2 +-
src/mlgsl_multimin.c | 4 ++--
src/mlgsl_multiroots.c | 4 ++--
src/mlgsl_odeiv.c | 4 ++--
src/mlgsl_qrng.c | 2 +-
src/mlgsl_rng.c | 4 ++--
src/mlgsl_roots.c | 4 ++--
src/mlgsl_wavelet.c | 2 +-
11 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/src/mlgsl_ieee.c b/src/mlgsl_ieee.c
index 1aaa246..6e743ed 100644
--- a/src/mlgsl_ieee.c
+++ b/src/mlgsl_ieee.c
@@ -15,7 +15,7 @@ static value rep_val(const gsl_ieee_double_rep *r)
{
CAMLparam0();
CAMLlocal2(v, m);
- m=copy_string(r->mantissa);
+ m=caml_copy_string(r->mantissa);
v=caml_alloc_small(4, 0);
Field(v, 0)= Val_int(r->sign);
Field(v, 1)= m;
diff --git a/src/mlgsl_interp.c b/src/mlgsl_interp.c
index 06ef37c..6d08f1a 100644
--- a/src/mlgsl_interp.c
+++ b/src/mlgsl_interp.c
@@ -47,7 +47,7 @@ CAMLprim value ml_gsl_interp_init(value i, value x, value y, value size)
CAMLprim value ml_gsl_interp_name(value i)
{
- return copy_string(gsl_interp_name(Interp_val(i)));
+ return caml_copy_string(gsl_interp_name(Interp_val(i)));
}
CAMLprim value ml_gsl_interp_min_size(value i)
diff --git a/src/mlgsl_min.c b/src/mlgsl_min.c
index 7e7ebf6..3dbba6b 100644
--- a/src/mlgsl_min.c
+++ b/src/mlgsl_min.c
@@ -59,7 +59,7 @@ CAMLprim value ml_gsl_min_fminimizer_free(value s)
return Val_unit;
}
-ML1(gsl_min_fminimizer_name, Minimizer_val, copy_string)
+ML1(gsl_min_fminimizer_name, Minimizer_val, caml_copy_string)
ML1(gsl_min_fminimizer_iterate, Minimizer_val, Unit)
diff --git a/src/mlgsl_multifit.c b/src/mlgsl_multifit.c
index 4217846..e487fe5 100644
--- a/src/mlgsl_multifit.c
+++ b/src/mlgsl_multifit.c
@@ -71,7 +71,7 @@ CAMLprim value ml_gsl_multifit_fdfsolver_free(value S)
return Val_unit;
}
-ML1(gsl_multifit_fdfsolver_name, FDFSOLVER_VAL, copy_string)
+ML1(gsl_multifit_fdfsolver_name, FDFSOLVER_VAL, caml_copy_string)
ML1(gsl_multifit_fdfsolver_iterate, FDFSOLVER_VAL, Unit)
diff --git a/src/mlgsl_multimin.c b/src/mlgsl_multimin.c
index f0519c2..ab17836 100644
--- a/src/mlgsl_multimin.c
+++ b/src/mlgsl_multimin.c
@@ -77,7 +77,7 @@ CAMLprim value ml_gsl_multimin_fdfminimizer_free(value S)
return Val_unit;
}
-ML1(gsl_multimin_fdfminimizer_name, GSLMULTIMINFDFMINIMIZER_VAL, copy_string)
+ML1(gsl_multimin_fdfminimizer_name, GSLMULTIMINFDFMINIMIZER_VAL, caml_copy_string)
ML1(gsl_multimin_fdfminimizer_iterate, GSLMULTIMINFDFMINIMIZER_VAL, Unit)
ML1(gsl_multimin_fdfminimizer_restart, GSLMULTIMINFDFMINIMIZER_VAL, Unit)
@@ -172,7 +172,7 @@ CAMLprim value ml_gsl_multimin_fminimizer_free(value S)
return Val_unit;
}
-ML1(gsl_multimin_fminimizer_name, GSLMULTIMINFMINIMIZER_VAL, copy_string)
+ML1(gsl_multimin_fminimizer_name, GSLMULTIMINFMINIMIZER_VAL, caml_copy_string)
ML1(gsl_multimin_fminimizer_iterate, GSLMULTIMINFMINIMIZER_VAL, Unit)
CAMLprim value ml_gsl_multimin_fminimizer_minimum(value ox, value T)
diff --git a/src/mlgsl_multiroots.c b/src/mlgsl_multiroots.c
index c6cde1a..2b0cbfc 100644
--- a/src/mlgsl_multiroots.c
+++ b/src/mlgsl_multiroots.c
@@ -130,8 +130,8 @@ CAMLprim value ml_gsl_multiroot_fdfsolver_free(value S)
return Val_unit;
}
-ML1(gsl_multiroot_fsolver_name, GSLMULTIROOTSOLVER_VAL, copy_string)
-ML1(gsl_multiroot_fdfsolver_name, GSLMULTIROOTFDFSOLVER_VAL, copy_string)
+ML1(gsl_multiroot_fsolver_name, GSLMULTIROOTSOLVER_VAL, caml_copy_string)
+ML1(gsl_multiroot_fdfsolver_name, GSLMULTIROOTFDFSOLVER_VAL, caml_copy_string)
ML1(gsl_multiroot_fsolver_iterate, GSLMULTIROOTSOLVER_VAL, Unit)
ML1(gsl_multiroot_fdfsolver_iterate, GSLMULTIROOTFDFSOLVER_VAL, Unit)
diff --git a/src/mlgsl_odeiv.c b/src/mlgsl_odeiv.c
index ff988aa..8354205 100644
--- a/src/mlgsl_odeiv.c
+++ b/src/mlgsl_odeiv.c
@@ -126,7 +126,7 @@ CAMLprim value ml_gsl_odeiv_step_alloc(value step_type, value dim)
ML1(gsl_odeiv_step_free, ODEIV_STEP_VAL, Unit)
ML1(gsl_odeiv_step_reset, ODEIV_STEP_VAL, Unit)
-ML1(gsl_odeiv_step_name, ODEIV_STEP_VAL, copy_string)
+ML1(gsl_odeiv_step_name, ODEIV_STEP_VAL, caml_copy_string)
ML1(gsl_odeiv_step_order, ODEIV_STEP_VAL, Val_int)
CAMLprim value ml_gsl_odeiv_step_apply(value step, value t, value h, value y,
@@ -218,7 +218,7 @@ CAMLprim value ml_gsl_odeiv_control_scaled_new(value eps_abs, value eps_rel,
#define ODEIV_CONTROL_VAL(v) ((gsl_odeiv_control *)Field((v), 0))
ML1(gsl_odeiv_control_free, ODEIV_CONTROL_VAL, Unit)
-ML1(gsl_odeiv_control_name, ODEIV_CONTROL_VAL, copy_string)
+ML1(gsl_odeiv_control_name, ODEIV_CONTROL_VAL, caml_copy_string)
CAMLprim value ml_gsl_odeiv_control_hadjust(value c, value s, value y,
value yerr, value dydt, value h)
diff --git a/src/mlgsl_qrng.c b/src/mlgsl_qrng.c
index bc4dbff..0313403 100644
--- a/src/mlgsl_qrng.c
+++ b/src/mlgsl_qrng.c
@@ -48,7 +48,7 @@ CAMLprim value ml_gsl_qrng_sample(value qrng)
return arr;
}
-ML1(gsl_qrng_name, Qrng_val, copy_string)
+ML1(gsl_qrng_name, Qrng_val, caml_copy_string)
CAMLprim value ml_gsl_qrng_memcpy(value src, value dst)
{
diff --git a/src/mlgsl_rng.c b/src/mlgsl_rng.c
index e440387..83d6091 100644
--- a/src/mlgsl_rng.c
+++ b/src/mlgsl_rng.c
@@ -145,7 +145,7 @@ value ml_gsl_rng_set(value rng, value seed)
value ml_gsl_rng_name(value rng)
{
- return copy_string(gsl_rng_name(Rng_val(rng)));
+ return caml_copy_string(gsl_rng_name(Rng_val(rng)));
}
value ml_gsl_rng_max(value rng)
@@ -183,7 +183,7 @@ value ml_gsl_rng_dump_state(value rng)
size_t len = gsl_rng_size(Rng_val(rng));
void *state = gsl_rng_state(Rng_val(rng));
const char *name = gsl_rng_name(Rng_val(rng));
- n = copy_string(name);
+ n = caml_copy_string(name);
s = caml_alloc_initialized_string(len, state);
v = caml_alloc_small(2, 0);
Field(v, 0) = n;
diff --git a/src/mlgsl_roots.c b/src/mlgsl_roots.c
index fbf9e50..55f0049 100644
--- a/src/mlgsl_roots.c
+++ b/src/mlgsl_roots.c
@@ -120,8 +120,8 @@ CAMLprim value ml_gsl_root_fdfsolver_free(value s)
return Val_unit;
}
-ML1(gsl_root_fsolver_name, Fsolver_val, copy_string)
-ML1(gsl_root_fdfsolver_name, FDFsolver_val, copy_string)
+ML1(gsl_root_fsolver_name, Fsolver_val, caml_copy_string)
+ML1(gsl_root_fdfsolver_name, FDFsolver_val, caml_copy_string)
ML1(gsl_root_fsolver_iterate, Fsolver_val, Unit)
ML1(gsl_root_fdfsolver_iterate, FDFsolver_val, Unit)
diff --git a/src/mlgsl_wavelet.c b/src/mlgsl_wavelet.c
index 5e36102..91cd35c 100644
--- a/src/mlgsl_wavelet.c
+++ b/src/mlgsl_wavelet.c
@@ -39,7 +39,7 @@ ml_gsl_wavelet_alloc (value ty, value k)
#define Wavelet_val(v) (gsl_wavelet *)Field(v, 0)
ML1 (gsl_wavelet_free, Wavelet_val, Unit)
-ML1 (gsl_wavelet_name, Wavelet_val, copy_string)
+ML1 (gsl_wavelet_name, Wavelet_val, caml_copy_string)
CAMLprim value
ml_gsl_wavelet_workspace_alloc (value n)
From ce2b4f3bd7d2325d25a41eb43ac4d0a25b4a63ad Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:17:02 +0200
Subject: [PATCH 09/25] OCaml 5 compat: convert_flag_list
---
src/mlgsl_ieee.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mlgsl_ieee.c b/src/mlgsl_ieee.c
index 6e743ed..8797e2a 100644
--- a/src/mlgsl_ieee.c
+++ b/src/mlgsl_ieee.c
@@ -50,7 +50,7 @@ CAMLprim value ml_gsl_ieee_set_mode(value oprecision, value orounding, value ex_
GSL_IEEE_MASK_DENORMALIZED, GSL_IEEE_MASK_OVERFLOW,
GSL_IEEE_MASK_UNDERFLOW, GSL_IEEE_MASK_ALL,
GSL_IEEE_TRAP_INEXACT } ;
- int mask = convert_flag_list(ex_list, mask_conv);
+ int mask = caml_convert_flag_list(ex_list, mask_conv);
#define Lookup_precision(v) precision_conv[ Int_val(v) ]
#define Lookup_round(v) round_conv[ Int_val(v) ]
@@ -99,7 +99,7 @@ static int except_conv [] = {
static int conv_excepts(value e)
{
- return convert_flag_list(e, except_conv);
+ return caml_convert_flag_list(e, except_conv);
}
static value rev_conv_excepts(int e)
From 150c60c3fe0f073e75a88db03d1221617c42d7ce Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:18:47 +0200
Subject: [PATCH 10/25] OCaml 5 compat: alloc
---
src/mlgsl_cheb.c | 2 +-
src/mlgsl_fun.c | 44 ++++++++++++++++++++++----------------------
src/mlgsl_monte.c | 10 +++++-----
src/mlgsl_odeiv.c | 6 +++---
src/mlgsl_poly.c | 6 +++---
src/mlgsl_qrng.c | 2 +-
src/mlgsl_randist.c | 4 ++--
7 files changed, 37 insertions(+), 37 deletions(-)
diff --git a/src/mlgsl_cheb.c b/src/mlgsl_cheb.c
index 7e08566..0f700d6 100644
--- a/src/mlgsl_cheb.c
+++ b/src/mlgsl_cheb.c
@@ -27,7 +27,7 @@ CAMLprim value ml_gsl_cheb_coefs(value c)
CAMLlocal1(a);
gsl_cheb_series *cs = CHEB_VAL(c);
size_t len = cs->order + 1;
- a = alloc(len * Double_wosize, Double_array_tag);
+ a = caml_alloc(len * Double_wosize, Double_array_tag);
memcpy(Bp_val(a), cs->c, len * sizeof (double));
CAMLreturn(a);
}
diff --git a/src/mlgsl_fun.c b/src/mlgsl_fun.c
index 712f6c0..662fe48 100644
--- a/src/mlgsl_fun.c
+++ b/src/mlgsl_fun.c
@@ -97,8 +97,8 @@ int gsl_multiroot_callback(const gsl_vector *x, void *params, gsl_vector *F)
int len = x->size;
gsl_vector_view x_v, f_v;
- x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
- f_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
+ x_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, len);
+ f_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, len);
x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
f_v = gsl_vector_view_array(Caml_ba_data_val(f_barr), len);
@@ -116,8 +116,8 @@ int gsl_multiroot_callback_f(const gsl_vector *x, void *params, gsl_vector *F)
int len = x->size;
gsl_vector_view x_v, f_v;
- x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
- f_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
+ x_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, len);
+ f_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, len);
x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
f_v = gsl_vector_view_array(Caml_ba_data_val(f_barr), len);
@@ -136,8 +136,8 @@ int gsl_multiroot_callback_df(const gsl_vector *x, void *params, gsl_matrix *J)
gsl_vector_view x_v;
gsl_matrix_view j_v;
- x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
- j_barr = alloc_bigarray_dims(barr_flags, 2, NULL, len, len);
+ x_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, len);
+ j_barr = caml_ba_alloc_dims(barr_flags, 2, NULL, len, len);
x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
j_v = gsl_matrix_view_array(Caml_ba_data_val(j_barr), len, len);
@@ -157,9 +157,9 @@ int gsl_multiroot_callback_fdf(const gsl_vector *x, void *params,
gsl_vector_view x_v, f_v;
gsl_matrix_view j_v;
- x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
- f_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
- j_barr = alloc_bigarray_dims(barr_flags, 2, NULL, len, len);
+ x_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, len);
+ f_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, len);
+ j_barr = caml_ba_alloc_dims(barr_flags, 2, NULL, len, len);
x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
f_v = gsl_vector_view_array(Caml_ba_data_val(f_barr), len);
j_v = gsl_matrix_view_array(Caml_ba_data_val(j_barr), len, len);
@@ -183,7 +183,7 @@ double gsl_multimin_callback(const gsl_vector *x, void *params)
gsl_vector_view x_v;
value res;
- x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
+ x_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, len);
x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
gsl_vector_memcpy(&x_v.vector, x);
@@ -200,7 +200,7 @@ double gsl_multimin_callback_f(const gsl_vector *x, void *params)
gsl_vector_view x_v;
value res;
- x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
+ x_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, len);
x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
gsl_vector_memcpy(&x_v.vector, x);
@@ -216,8 +216,8 @@ void gsl_multimin_callback_df(const gsl_vector *x, void *params, gsl_vector *G)
int len = x->size;
gsl_vector_view x_v, g_v;
- x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
- g_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
+ x_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, len);
+ g_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, len);
x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
g_v = gsl_vector_view_array(Caml_ba_data_val(g_barr), len);
@@ -236,8 +236,8 @@ void gsl_multimin_callback_fdf(const gsl_vector *x, void *params,
gsl_vector_view x_v, g_v;
value res;
- x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
- g_barr = alloc_bigarray_dims(barr_flags, 1, NULL, len);
+ x_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, len);
+ g_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, len);
x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
g_v = gsl_vector_view_array(Caml_ba_data_val(g_barr), len);
@@ -259,8 +259,8 @@ int gsl_multifit_callback_f(const gsl_vector *X, void *params, gsl_vector *F)
size_t n = F->size;
gsl_vector_view x_v, f_v;
- x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, p);
- f_barr = alloc_bigarray_dims(barr_flags, 1, NULL, n);
+ x_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, p);
+ f_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, n);
x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), p);
f_v = gsl_vector_view_array(Caml_ba_data_val(f_barr), n);
@@ -281,8 +281,8 @@ int gsl_multifit_callback_df(const gsl_vector *X, void *params, gsl_matrix *J)
gsl_matrix_view j_v;
value res;
- x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, p);
- j_barr = alloc_bigarray_dims(barr_flags, 2, NULL, n, p);
+ x_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, p);
+ j_barr = caml_ba_alloc_dims(barr_flags, 2, NULL, n, p);
x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), p);
j_v = gsl_matrix_view_array(Caml_ba_data_val(j_barr), n, p);
@@ -305,9 +305,9 @@ int gsl_multifit_callback_fdf(const gsl_vector *X, void *params,
gsl_vector_view x_v, f_v;
gsl_matrix_view j_v;
- x_barr = alloc_bigarray_dims(barr_flags, 1, NULL, p);
- f_barr = alloc_bigarray_dims(barr_flags, 1, NULL, n);
- j_barr = alloc_bigarray_dims(barr_flags, 2, NULL, n, p);
+ x_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, p);
+ f_barr = caml_ba_alloc_dims(barr_flags, 1, NULL, n);
+ j_barr = caml_ba_alloc_dims(barr_flags, 2, NULL, n, p);
x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), p);
f_v = gsl_vector_view_array(Caml_ba_data_val(f_barr), n);
j_v = gsl_matrix_view_array(Caml_ba_data_val(j_barr), n, p);
diff --git a/src/mlgsl_monte.c b/src/mlgsl_monte.c
index 18693af..5feab52 100644
--- a/src/mlgsl_monte.c
+++ b/src/mlgsl_monte.c
@@ -56,7 +56,7 @@ CAMLprim value ml_gsl_monte_plain_alloc(value d)
params->gslfun.mf.dim = dim;
params->gslfun.mf.params = params;
params->closure = Val_unit;
- params->dbl = alloc(dim * Double_wosize, Double_array_tag);
+ params->dbl = caml_alloc(dim * Double_wosize, Double_array_tag);
register_global_root(&(params->closure));
register_global_root(&(params->dbl));
@@ -131,7 +131,7 @@ CAMLprim value ml_gsl_monte_miser_alloc(value d)
params->gslfun.mf.dim = dim;
params->gslfun.mf.params = params;
params->closure = Val_unit;
- params->dbl = alloc(dim * Double_wosize, Double_array_tag);
+ params->dbl = caml_alloc(dim * Double_wosize, Double_array_tag);
register_global_root(&(params->closure));
register_global_root(&(params->dbl));
@@ -187,7 +187,7 @@ CAMLprim value ml_gsl_monte_miser_get_params(value state)
CAMLparam0();
CAMLlocal1(r);
gsl_monte_miser_state *s = GSLMISERSTATE_VAL(state);
- r=alloc_tuple(5);
+ r=caml_alloc_tuple(5);
Store_field(r, 0, caml_copy_double(s->estimate_frac));
Store_field(r, 1, Val_int(s->min_calls));
Store_field(r, 2, Val_int(s->min_calls_per_bisection));
@@ -233,7 +233,7 @@ CAMLprim value ml_gsl_monte_vegas_alloc(value d)
params->gslfun.mf.dim = dim;
params->gslfun.mf.params = params;
params->closure = Val_unit;
- params->dbl = alloc(dim * Double_wosize, Double_array_tag);
+ params->dbl = caml_alloc(dim * Double_wosize, Double_array_tag);
register_global_root(&(params->closure));
register_global_root(&(params->dbl));
@@ -305,7 +305,7 @@ CAMLprim value ml_gsl_monte_vegas_get_params(value state)
CAMLparam0();
CAMLlocal1(r);
gsl_monte_vegas_state *s = GSLVEGASSTATE_VAL(state);
- r=alloc_tuple(6);
+ r=caml_alloc_tuple(6);
Store_field(r, 0, caml_copy_double(s->alpha));
Store_field(r, 1, Val_int(s->iterations));
Store_field(r, 2, Val_int(s->stage));
diff --git a/src/mlgsl_odeiv.c b/src/mlgsl_odeiv.c
index 8354205..ffa75ff 100644
--- a/src/mlgsl_odeiv.c
+++ b/src/mlgsl_odeiv.c
@@ -70,14 +70,14 @@ CAMLprim value ml_gsl_odeiv_alloc_system(value func, value ojac, value dim)
register_global_root(&(p->closure));
p->jac_closure = (Is_none(ojac) ? Val_unit : Unoption(ojac));
register_global_root(&(p->jac_closure));
- p->arr1 = alloc(Int_val(dim) * Double_wosize, Double_array_tag);
+ p->arr1 = caml_alloc(Int_val(dim) * Double_wosize, Double_array_tag);
register_global_root(&(p->arr1));
- p->arr2 = alloc(Int_val(dim) * Double_wosize, Double_array_tag);
+ p->arr2 = caml_alloc(Int_val(dim) * Double_wosize, Double_array_tag);
register_global_root(&(p->arr2));
p->mat =
Is_none(ojac)
? Val_unit
- : alloc_bigarray_dims(barr_flags, 2, NULL, Int_val(dim), Int_val(dim));
+ : caml_ba_alloc_dims(barr_flags, 2, NULL, Int_val(dim), Int_val(dim));
register_global_root(&(p->mat));
syst=stat_alloc(sizeof (*syst));
diff --git a/src/mlgsl_poly.c b/src/mlgsl_poly.c
index 7894171..f358598 100644
--- a/src/mlgsl_poly.c
+++ b/src/mlgsl_poly.c
@@ -29,7 +29,7 @@ CAMLprim value ml_gsl_poly_solve_quadratic(value a, value b, value c)
if(n == 0)
r = Val_int(0);
else{
- r = alloc(2, 0);
+ r = caml_alloc(2, 0);
Store_field(r, 0, caml_copy_double(x0));
Store_field(r, 1, caml_copy_double(x1));
} ;
@@ -74,11 +74,11 @@ CAMLprim value ml_gsl_poly_solve_cubic(value a, value b, value c)
case 0:
break;
case 1:
- r = alloc(1, 0);
+ r = caml_alloc(1, 0);
Store_field(r, 0, caml_copy_double(x0));
break;
case 3:
- r = alloc(3, 1);
+ r = caml_alloc(3, 1);
Store_field(r, 0, caml_copy_double(x0));
Store_field(r, 1, caml_copy_double(x1));
Store_field(r, 2, caml_copy_double(x2));
diff --git a/src/mlgsl_qrng.c b/src/mlgsl_qrng.c
index 0313403..d77d5f8 100644
--- a/src/mlgsl_qrng.c
+++ b/src/mlgsl_qrng.c
@@ -43,7 +43,7 @@ CAMLprim value ml_gsl_qrng_get(value qrng, value x)
CAMLprim value ml_gsl_qrng_sample(value qrng)
{
gsl_qrng * q = Qrng_val(qrng);
- value arr = alloc(q->dimension * Double_wosize, Double_array_tag);
+ value arr = caml_alloc(q->dimension * Double_wosize, Double_array_tag);
gsl_qrng_get(q, Double_array_val(arr));
return arr;
}
diff --git a/src/mlgsl_randist.c b/src/mlgsl_randist.c
index e337200..15eaff5 100644
--- a/src/mlgsl_randist.c
+++ b/src/mlgsl_randist.c
@@ -192,7 +192,7 @@ CAMLprim value ml_gsl_ran_dir_3d(value rng)
{
CAMLparam0();
CAMLlocal1(r);
- r=alloc_tuple(3);
+ r=caml_alloc_tuple(3);
Store_field(r, 0, caml_copy_double(x));
Store_field(r, 1, caml_copy_double(y));
Store_field(r, 2, caml_copy_double(z));
@@ -241,7 +241,7 @@ CAMLprim value ml_gsl_ran_multinomial(value rng, value n, value p)
gsl_ran_multinomial(Rng_val(rng), K, Int_val(n), Double_array_val(p), N);
{
mlsize_t i;
- r = alloc(K, 0);
+ r = caml_alloc(K, 0);
for(i=0; i<K; i++)
Store_field(r, i, Val_int(N[i]));
}
From c22f01749e3f0d7c18ef83d967372c16c9826c60 Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:31:49 +0200
Subject: [PATCH 11/25] OCaml 5 compat: raise_constant, invalid_argument
---
src/mlgsl_fft.c | 4 ++--
src/mlgsl_rng.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/mlgsl_fft.c b/src/mlgsl_fft.c
index f3f4753..bfd93f2 100644
--- a/src/mlgsl_fft.c
+++ b/src/mlgsl_fft.c
@@ -28,9 +28,9 @@ static void check_layout(value fft_arr,
if(!layout_exn) {
layout_exn = caml_named_value("mlgsl_layout_exn");
if(!layout_exn) /* Gromeleu */
- invalid_argument("wrong fft_array layout");
+ caml_invalid_argument("wrong fft_array layout");
}
- raise_constant(*layout_exn);
+ caml_raise_constant(*layout_exn);
}
}
diff --git a/src/mlgsl_rng.c b/src/mlgsl_rng.c
index 83d6091..5fbbd10 100644
--- a/src/mlgsl_rng.c
+++ b/src/mlgsl_rng.c
@@ -198,7 +198,7 @@ value ml_gsl_rng_set_state(value rng, value v)
value state = Field(v, 1);
if(strcmp(name, gsl_rng_name(r)) != 0 ||
gsl_rng_size(r) != string_length(state) )
- invalid_argument("Gsl.Rng.set_state : wrong rng type");
+ caml_invalid_argument("Gsl.Rng.set_state : wrong rng type");
memcpy(r->state, Bp_val(state), string_length(state));
return Val_unit;
}
From bda997d8a1f0cdb32c9c2172428107bc9b5f05ae Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:39:50 +0200
Subject: [PATCH 12/25] OCaml 5 compat: callback
---
src/mlgsl_fun.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/mlgsl_fun.c b/src/mlgsl_fun.c
index 662fe48..8b0b4e1 100644
--- a/src/mlgsl_fun.c
+++ b/src/mlgsl_fun.c
@@ -22,7 +22,7 @@ double gslfun_callback(double x, void *params)
struct callback_params *p=params;
value res;
value v_x = caml_copy_double(x);
- res=callback(p->closure, v_x);
+ res=caml_callback(p->closure, v_x);
return Double_val(res);
}
@@ -32,7 +32,7 @@ double gslfun_callback_indir(double x, void *params)
value res;
value v_x = caml_copy_double(x);
value *closure = params;
- res=callback(*closure, v_x);
+ res=caml_callback(*closure, v_x);
return Double_val(res);
}
@@ -41,7 +41,7 @@ double gslfun_callback_f(double x, void *params)
struct callback_params *p=params;
value res;
value v_x=caml_copy_double(x);
- res=callback(Field(p->closure, 0), v_x);
+ res=caml_callback(Field(p->closure, 0), v_x);
return Double_val(res);
}
@@ -50,7 +50,7 @@ double gslfun_callback_df(double x, void *params)
struct callback_params *p=params;
value res;
value v_x=caml_copy_double(x);
- res=callback(Field(p->closure, 1), v_x);
+ res=caml_callback(Field(p->closure, 1), v_x);
return Double_val(res);
}
@@ -60,7 +60,7 @@ void gslfun_callback_fdf(double x, void *params,
struct callback_params *p=params;
value res;
value v_x=caml_copy_double(x);
- res=callback(Field(p->closure, 2), v_x);
+ res=caml_callback(Field(p->closure, 2), v_x);
*f =Double_val(Field(res, 0));
*df=Double_val(Field(res, 1));
}
@@ -73,7 +73,7 @@ double gsl_monte_callback(double *x_arr, size_t dim, void *params)
value res;
memcpy(Double_array_val(p->dbl), x_arr, dim*sizeof(double));
- res=callback(p->closure, p->dbl);
+ res=caml_callback(p->closure, p->dbl);
return Double_val(res);
}
@@ -82,7 +82,7 @@ double gsl_monte_callback_fast(double *x_arr, size_t dim, void *params)
struct callback_params *p=params;
value res;
- res=callback(p->closure, (value)x_arr);
+ res=caml_callback(p->closure, (value)x_arr);
return Double_val(res);
}
From 11f10e3db9474597f0dc34c5684551a1ec2811cd Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:40:56 +0200
Subject: [PATCH 13/25] OCaml 5 compat: bigarray enums
---
src/mlgsl_fun.c | 22 ++++++++++----------
src/mlgsl_odeiv.c | 2 +-
src/mlgsl_permut.c | 52 +++++++++++++++++++++++-----------------------
3 files changed, 38 insertions(+), 38 deletions(-)
diff --git a/src/mlgsl_fun.c b/src/mlgsl_fun.c
index 8b0b4e1..feddcc3 100644
--- a/src/mlgsl_fun.c
+++ b/src/mlgsl_fun.c
@@ -91,7 +91,7 @@ double gsl_monte_callback_fast(double *x_arr, size_t dim, void *params)
/* MULTIROOT CALLBACKS */
int gsl_multiroot_callback(const gsl_vector *x, void *params, gsl_vector *F)
{
- int barr_flags = BIGARRAY_FLOAT64 | BIGARRAY_C_LAYOUT;
+ int barr_flags = CAML_BA_FLOAT64 | CAML_BA_C_LAYOUT;
struct callback_params *p=params;
value x_barr, f_barr;
int len = x->size;
@@ -110,7 +110,7 @@ int gsl_multiroot_callback(const gsl_vector *x, void *params, gsl_vector *F)
int gsl_multiroot_callback_f(const gsl_vector *x, void *params, gsl_vector *F)
{
- int barr_flags = BIGARRAY_FLOAT64 | BIGARRAY_C_LAYOUT;
+ int barr_flags = CAML_BA_FLOAT64 | CAML_BA_C_LAYOUT;
struct callback_params *p=params;
value x_barr, f_barr;
int len = x->size;
@@ -129,7 +129,7 @@ int gsl_multiroot_callback_f(const gsl_vector *x, void *params, gsl_vector *F)
int gsl_multiroot_callback_df(const gsl_vector *x, void *params, gsl_matrix *J)
{
- int barr_flags = BIGARRAY_FLOAT64 | BIGARRAY_C_LAYOUT;
+ int barr_flags = CAML_BA_FLOAT64 | CAML_BA_C_LAYOUT;
struct callback_params *p=params;
value x_barr, j_barr;
int len = x->size;
@@ -150,7 +150,7 @@ int gsl_multiroot_callback_df(const gsl_vector *x, void *params, gsl_matrix *J)
int gsl_multiroot_callback_fdf(const gsl_vector *x, void *params,
gsl_vector *F, gsl_matrix *J)
{
- int barr_flags = BIGARRAY_FLOAT64 | BIGARRAY_C_LAYOUT;
+ int barr_flags = CAML_BA_FLOAT64 | CAML_BA_C_LAYOUT;
struct callback_params *p=params;
value x_barr, f_barr, j_barr;
int len = x->size;
@@ -176,7 +176,7 @@ int gsl_multiroot_callback_fdf(const gsl_vector *x, void *params,
/* MULTIMIN CALLBACKS */
double gsl_multimin_callback(const gsl_vector *x, void *params)
{
- int barr_flags = BIGARRAY_FLOAT64 | BIGARRAY_C_LAYOUT;
+ int barr_flags = CAML_BA_FLOAT64 | CAML_BA_C_LAYOUT;
struct callback_params *p=params;
value x_barr;
int len = x->size;
@@ -193,7 +193,7 @@ double gsl_multimin_callback(const gsl_vector *x, void *params)
double gsl_multimin_callback_f(const gsl_vector *x, void *params)
{
- int barr_flags = BIGARRAY_FLOAT64 | BIGARRAY_C_LAYOUT;
+ int barr_flags = CAML_BA_FLOAT64 | CAML_BA_C_LAYOUT;
struct callback_params *p=params;
value x_barr;
int len = x->size;
@@ -210,7 +210,7 @@ double gsl_multimin_callback_f(const gsl_vector *x, void *params)
void gsl_multimin_callback_df(const gsl_vector *x, void *params, gsl_vector *G)
{
- int barr_flags = BIGARRAY_FLOAT64 | BIGARRAY_C_LAYOUT;
+ int barr_flags = CAML_BA_FLOAT64 | CAML_BA_C_LAYOUT;
struct callback_params *p=params;
value x_barr, g_barr;
int len = x->size;
@@ -229,7 +229,7 @@ void gsl_multimin_callback_df(const gsl_vector *x, void *params, gsl_vector *G)
void gsl_multimin_callback_fdf(const gsl_vector *x, void *params,
double *f, gsl_vector *G)
{
- int barr_flags = BIGARRAY_FLOAT64 | BIGARRAY_C_LAYOUT;
+ int barr_flags = CAML_BA_FLOAT64 | CAML_BA_C_LAYOUT;
struct callback_params *p=params;
value x_barr, g_barr;
int len = x->size;
@@ -252,7 +252,7 @@ void gsl_multimin_callback_fdf(const gsl_vector *x, void *params,
/* MULTIFIT CALLBACKS */
int gsl_multifit_callback_f(const gsl_vector *X, void *params, gsl_vector *F)
{
- int barr_flags = BIGARRAY_FLOAT64 | BIGARRAY_C_LAYOUT;
+ int barr_flags = CAML_BA_FLOAT64 | CAML_BA_C_LAYOUT;
struct callback_params *parms=params;
value x_barr, f_barr;
size_t p = X->size;
@@ -272,7 +272,7 @@ int gsl_multifit_callback_f(const gsl_vector *X, void *params, gsl_vector *F)
int gsl_multifit_callback_df(const gsl_vector *X, void *params, gsl_matrix *J)
{
- int barr_flags = BIGARRAY_FLOAT64 | BIGARRAY_C_LAYOUT;
+ int barr_flags = CAML_BA_FLOAT64 | CAML_BA_C_LAYOUT;
struct callback_params *parms=params;
value x_barr, j_barr;
size_t p = X->size;
@@ -297,7 +297,7 @@ int gsl_multifit_callback_df(const gsl_vector *X, void *params, gsl_matrix *J)
int gsl_multifit_callback_fdf(const gsl_vector *X, void *params,
gsl_vector *F, gsl_matrix *J)
{
- int barr_flags = BIGARRAY_FLOAT64 | BIGARRAY_C_LAYOUT;
+ int barr_flags = CAML_BA_FLOAT64 | CAML_BA_C_LAYOUT;
struct callback_params *parms=params;
value x_barr, f_barr, j_barr;
size_t p = X->size;
diff --git a/src/mlgsl_odeiv.c b/src/mlgsl_odeiv.c
index ffa75ff..d19f2ac 100644
--- a/src/mlgsl_odeiv.c
+++ b/src/mlgsl_odeiv.c
@@ -60,7 +60,7 @@ static int ml_gsl_odeiv_jacobian(double t, const double y[],
CAMLprim value ml_gsl_odeiv_alloc_system(value func, value ojac, value dim)
{
- const int barr_flags = BIGARRAY_FLOAT64 | BIGARRAY_C_LAYOUT | BIGARRAY_EXTERNAL;
+ const int barr_flags = CAML_BA_FLOAT64 | CAML_BA_C_LAYOUT | CAML_BA_EXTERNAL;
struct mlgsl_odeiv_params *p;
gsl_odeiv_system *syst;
value res;
diff --git a/src/mlgsl_permut.c b/src/mlgsl_permut.c
index d5a1adc..555ee35 100644
--- a/src/mlgsl_permut.c
+++ b/src/mlgsl_permut.c
@@ -68,31 +68,31 @@ CAMLprim value ml_gsl_permute_barr(value p, value arr)
{
GSL_PERMUT_OF_BIGARRAY(p);
struct caml_ba_array *barr = Caml_ba_array_val(arr);
- enum caml_ba_array_kind kind = (barr->flags) & BIGARRAY_KIND_MASK ;
+ enum caml_ba_array_kind kind = (barr->flags) & CAML_BA_KIND_MASK ;
switch(kind){
- case BIGARRAY_FLOAT32:
+ case CAML_BA_FLOAT32:
gsl_permute_float(perm_p.data, barr->data, 1, barr->dim[0]); break;
- case BIGARRAY_FLOAT64:
+ case CAML_BA_FLOAT64:
gsl_permute(perm_p.data, barr->data, 1, barr->dim[0]); break;
- case BIGARRAY_SINT8:
+ case CAML_BA_SINT8:
gsl_permute_char(perm_p.data, barr->data, 1, barr->dim[0]); break;
- case BIGARRAY_UINT8:
+ case CAML_BA_UINT8:
gsl_permute_uchar(perm_p.data, barr->data, 1, barr->dim[0]); break;
- case BIGARRAY_SINT16:
+ case CAML_BA_SINT16:
gsl_permute_short(perm_p.data, barr->data, 1, barr->dim[0]); break;
- case BIGARRAY_UINT16:
+ case CAML_BA_UINT16:
gsl_permute_ushort(perm_p.data, barr->data, 1, barr->dim[0]); break;
#ifdef ARCH_SIXTYFOUR
- case BIGARRAY_INT64:
+ case CAML_BA_INT64:
#else
- case BIGARRAY_INT32:
+ case CAML_BA_INT32:
#endif
- case BIGARRAY_CAML_INT:
- case BIGARRAY_NATIVE_INT:
+ case CAML_BA_CAML_INT:
+ case CAML_BA_NATIVE_INT:
gsl_permute_long(perm_p.data, barr->data, 1, barr->dim[0]); break;
- case BIGARRAY_COMPLEX32:
+ case CAML_BA_COMPLEX32:
gsl_permute_complex_float(perm_p.data, barr->data, 1, barr->dim[0]); break;
- case BIGARRAY_COMPLEX64:
+ case CAML_BA_COMPLEX64:
gsl_permute_complex(perm_p.data, barr->data, 1, barr->dim[0]); break;
default:
GSL_ERROR("data type not supported", GSL_EUNIMPL);
@@ -123,31 +123,31 @@ CAMLprim value ml_gsl_permute_inverse_barr(value p, value arr)
{
GSL_PERMUT_OF_BIGARRAY(p);
struct caml_ba_array *barr = Caml_ba_array_val(arr);
- enum caml_ba_array_kind kind = (barr->flags) & BIGARRAY_KIND_MASK ;
+ enum caml_ba_array_kind kind = (barr->flags) & CAML_BA_KIND_MASK ;
switch(kind){
- case BIGARRAY_FLOAT32:
+ case CAML_BA_FLOAT32:
gsl_permute_float_inverse(perm_p.data, barr->data, 1, barr->dim[0]); break;
- case BIGARRAY_FLOAT64:
+ case CAML_BA_FLOAT64:
gsl_permute_inverse(perm_p.data, barr->data, 1, barr->dim[0]); break;
- case BIGARRAY_SINT8:
+ case CAML_BA_SINT8:
gsl_permute_char_inverse(perm_p.data, barr->data, 1, barr->dim[0]); break;
- case BIGARRAY_UINT8:
+ case CAML_BA_UINT8:
gsl_permute_uchar_inverse(perm_p.data, barr->data, 1, barr->dim[0]); break;
- case BIGARRAY_SINT16:
+ case CAML_BA_SINT16:
gsl_permute_short_inverse(perm_p.data, barr->data, 1, barr->dim[0]); break;
- case BIGARRAY_UINT16:
+ case CAML_BA_UINT16:
gsl_permute_ushort_inverse(perm_p.data, barr->data, 1, barr->dim[0]); break;
#ifdef ARCH_SIXTYFOUR
- case BIGARRAY_INT64:
+ case CAML_BA_INT64:
#else
- case BIGARRAY_INT32:
+ case CAML_BA_INT32:
#endif
- case BIGARRAY_CAML_INT:
- case BIGARRAY_NATIVE_INT:
+ case CAML_BA_CAML_INT:
+ case CAML_BA_NATIVE_INT:
gsl_permute_long_inverse(perm_p.data, barr->data, 1, barr->dim[0]); break;
- case BIGARRAY_COMPLEX32:
+ case CAML_BA_COMPLEX32:
gsl_permute_complex_float_inverse(perm_p.data, barr->data, 1, barr->dim[0]); break;
- case BIGARRAY_COMPLEX64:
+ case CAML_BA_COMPLEX64:
gsl_permute_complex_inverse(perm_p.data, barr->data, 1, barr->dim[0]); break;
default:
GSL_ERROR("data type not supported", GSL_EUNIMPL);
From dc078a85e56449e76454325bc70f15f19db0cd66 Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:42:35 +0200
Subject: [PATCH 14/25] OCaml 5 compat: more callbacks
---
src/mlgsl_fun.c | 22 +++++++++++-----------
src/mlgsl_odeiv.c | 2 +-
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/mlgsl_fun.c b/src/mlgsl_fun.c
index feddcc3..dad38ae 100644
--- a/src/mlgsl_fun.c
+++ b/src/mlgsl_fun.c
@@ -103,7 +103,7 @@ int gsl_multiroot_callback(const gsl_vector *x, void *params, gsl_vector *F)
f_v = gsl_vector_view_array(Caml_ba_data_val(f_barr), len);
gsl_vector_memcpy(&x_v.vector, x);
- callback2(p->closure, x_barr, f_barr);
+ caml_callback2(p->closure, x_barr, f_barr);
gsl_vector_memcpy(F, &f_v.vector);
return GSL_SUCCESS;
}
@@ -122,7 +122,7 @@ int gsl_multiroot_callback_f(const gsl_vector *x, void *params, gsl_vector *F)
f_v = gsl_vector_view_array(Caml_ba_data_val(f_barr), len);
gsl_vector_memcpy(&x_v.vector, x);
- callback2(Field(p->closure, 0), x_barr, f_barr);
+ caml_callback2(Field(p->closure, 0), x_barr, f_barr);
gsl_vector_memcpy(F, &f_v.vector);
return GSL_SUCCESS;
}
@@ -142,7 +142,7 @@ int gsl_multiroot_callback_df(const gsl_vector *x, void *params, gsl_matrix *J)
j_v = gsl_matrix_view_array(Caml_ba_data_val(j_barr), len, len);
gsl_vector_memcpy(&x_v.vector, x);
- callback2(Field(p->closure, 1), x_barr, j_barr);
+ caml_callback2(Field(p->closure, 1), x_barr, j_barr);
gsl_matrix_memcpy(J, &j_v.matrix);
return GSL_SUCCESS;
}
@@ -165,7 +165,7 @@ int gsl_multiroot_callback_fdf(const gsl_vector *x, void *params,
j_v = gsl_matrix_view_array(Caml_ba_data_val(j_barr), len, len);
gsl_vector_memcpy(&x_v.vector, x);
- callback3(Field(p->closure, 2), x_barr, f_barr, j_barr);
+ caml_callback3(Field(p->closure, 2), x_barr, f_barr, j_barr);
gsl_vector_memcpy(F, &f_v.vector);
gsl_matrix_memcpy(J, &j_v.matrix);
return GSL_SUCCESS;
@@ -187,7 +187,7 @@ double gsl_multimin_callback(const gsl_vector *x, void *params)
x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
gsl_vector_memcpy(&x_v.vector, x);
- res=callback(p->closure, x_barr);
+ res=caml_callback(p->closure, x_barr);
return Double_val(res);
}
@@ -204,7 +204,7 @@ double gsl_multimin_callback_f(const gsl_vector *x, void *params)
x_v = gsl_vector_view_array(Caml_ba_data_val(x_barr), len);
gsl_vector_memcpy(&x_v.vector, x);
- res=callback(Field(p->closure, 0), x_barr);
+ res=caml_callback(Field(p->closure, 0), x_barr);
return Double_val(res);
}
@@ -222,7 +222,7 @@ void gsl_multimin_callback_df(const gsl_vector *x, void *params, gsl_vector *G)
g_v = gsl_vector_view_array(Caml_ba_data_val(g_barr), len);
gsl_vector_memcpy(&x_v.vector, x);
- callback2(Field(p->closure, 1), x_barr, g_barr);
+ caml_callback2(Field(p->closure, 1), x_barr, g_barr);
gsl_vector_memcpy(G, &g_v.vector);
}
@@ -242,7 +242,7 @@ void gsl_multimin_callback_fdf(const gsl_vector *x, void *params,
g_v = gsl_vector_view_array(Caml_ba_data_val(g_barr), len);
gsl_vector_memcpy(&x_v.vector, x);
- res=callback2(Field(p->closure, 2), x_barr, g_barr);
+ res=caml_callback2(Field(p->closure, 2), x_barr, g_barr);
gsl_vector_memcpy(G, &g_v.vector);
*f=Double_val(res);
}
@@ -265,7 +265,7 @@ int gsl_multifit_callback_f(const gsl_vector *X, void *params, gsl_vector *F)
f_v = gsl_vector_view_array(Caml_ba_data_val(f_barr), n);
gsl_vector_memcpy(&x_v.vector, X);
- callback2(Field(parms->closure, 0), x_barr, f_barr);
+ caml_callback2(Field(parms->closure, 0), x_barr, f_barr);
gsl_vector_memcpy(F, &f_v.vector);
return GSL_SUCCESS;
}
@@ -287,7 +287,7 @@ int gsl_multifit_callback_df(const gsl_vector *X, void *params, gsl_matrix *J)
j_v = gsl_matrix_view_array(Caml_ba_data_val(j_barr), n, p);
gsl_vector_memcpy(&x_v.vector, X);
- res=callback2(Field(parms->closure, 1), x_barr, j_barr);
+ res=caml_callback2(Field(parms->closure, 1), x_barr, j_barr);
if(Is_exception_result(res))
return GSL_FAILURE;
gsl_matrix_memcpy(J, &j_v.matrix);
@@ -313,7 +313,7 @@ int gsl_multifit_callback_fdf(const gsl_vector *X, void *params,
j_v = gsl_matrix_view_array(Caml_ba_data_val(j_barr), n, p);
gsl_vector_memcpy(&x_v.vector, X);
- callback3(Field(parms->closure, 2), x_barr, f_barr, j_barr);
+ caml_callback3(Field(parms->closure, 2), x_barr, f_barr, j_barr);
gsl_vector_memcpy(F, &f_v.vector);
gsl_matrix_memcpy(J, &j_v.matrix);
return GSL_SUCCESS;
diff --git a/src/mlgsl_odeiv.c b/src/mlgsl_odeiv.c
index d19f2ac..ea67116 100644
--- a/src/mlgsl_odeiv.c
+++ b/src/mlgsl_odeiv.c
@@ -32,7 +32,7 @@ static int ml_gsl_odeiv_func(double t, const double y[],
value vt, res;
vt = caml_copy_double(t);
memcpy(Double_array_val(p->arr1), y, p->dim * sizeof(double));
- res = callback3_exn(p->closure, vt, p->arr1, p->arr2);
+ res = caml_callback3_exn(p->closure, vt, p->arr1, p->arr2);
if(Is_exception_result(res))
return GSL_FAILURE;
memcpy(dydt, Double_array_val(p->arr2), p->dim * sizeof(double));
From c35b7a8508e54db755651d06755e1c093ec52b18 Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:47:40 +0200
Subject: [PATCH 15/25] sign_extension warnings
---
src/mlgsl_integration.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/mlgsl_integration.c b/src/mlgsl_integration.c
index dff1830..cfa8080 100644
--- a/src/mlgsl_integration.c
+++ b/src/mlgsl_integration.c
@@ -67,7 +67,7 @@ CAMLprim value ml_gsl_integration_qag(value fun, value a, value b,
int c_key = key_conv [ Int_val(key) ];
gsl_integration_workspace *gslws = GSL_WS(ws);
- c_limit = Opt_arg(limit, Int_val, gslws->limit);
+ c_limit = Opt_arg(limit, (size_t)Int_val, gslws->limit);
gsl_integration_qag(&gf,
Double_val(a), Double_val(b),
Double_val(epsabs), Double_val(epsrel),
@@ -91,7 +91,7 @@ CAMLprim value ml_gsl_integration_qags(value fun, value a, value b,
size_t c_limit;
gsl_integration_workspace *gslws = GSL_WS(ws);
- c_limit = Opt_arg(limit, Int_val, gslws->limit);
+ c_limit = Opt_arg(limit, (size_t)Int_val, gslws->limit);
gsl_integration_qags(&gf,
Double_val(a), Double_val(b),
Double_val(epsabs), Double_val(epsrel),
@@ -116,7 +116,7 @@ CAMLprim value ml_gsl_integration_qagp(value fun, value pts,
size_t c_limit;
gsl_integration_workspace *gslws = GSL_WS(ws);
- c_limit = Opt_arg(limit, Int_val, gslws->limit);
+ c_limit = Opt_arg(limit, (size_t)Int_val, gslws->limit);
gsl_integration_qagp(&gf,
Double_array_val(pts), Double_array_length(pts),
Double_val(epsabs), Double_val(epsrel),
@@ -140,7 +140,7 @@ CAMLprim value ml_gsl_integration_qagi(value fun,
size_t c_limit;
gsl_integration_workspace *gslws = GSL_WS(ws);
- c_limit = Opt_arg(limit, Int_val,gslws->limit);
+ c_limit = Opt_arg(limit, (size_t)Int_val,gslws->limit);
gsl_integration_qagi(&gf,
Double_val(epsabs), Double_val(epsrel),
c_limit, gslws, &result, &abserr);
@@ -157,7 +157,7 @@ CAMLprim value ml_gsl_integration_qagiu(value fun, value a,
size_t c_limit;
gsl_integration_workspace *gslws = GSL_WS(ws);
- c_limit = Opt_arg(limit, Int_val, gslws->limit);
+ c_limit = Opt_arg(limit, (size_t)Int_val, gslws->limit);
gsl_integration_qagiu(&gf, Double_val(a),
Double_val(epsabs), Double_val(epsrel),
c_limit, gslws, &result, &abserr);
@@ -181,7 +181,7 @@ CAMLprim value ml_gsl_integration_qagil(value fun, value b,
size_t c_limit;
gsl_integration_workspace *gslws = GSL_WS(ws);
- c_limit = Opt_arg(limit, Int_val, gslws->limit);
+ c_limit = Opt_arg(limit, (size_t)Int_val, gslws->limit);
gsl_integration_qagil(&gf, Double_val(b),
Double_val(epsabs), Double_val(epsrel),
c_limit, gslws, &result, &abserr);
@@ -208,7 +208,7 @@ CAMLprim value ml_gsl_integration_qawc(value fun, value a, value b, value c,
size_t c_limit;
gsl_integration_workspace *gslws = GSL_WS(ws);
- c_limit = Opt_arg(limit, Int_val, gslws->limit);
+ c_limit = Opt_arg(limit, (size_t)Int_val, gslws->limit);
gsl_integration_qawc(&gf,
Double_val(a), Double_val(b), Double_val(c),
Double_val(epsabs), Double_val(epsrel),
@@ -250,7 +250,7 @@ CAMLprim value ml_gsl_integration_qaws(value fun, value a, value b, value table
size_t c_limit;
gsl_integration_workspace *gslws = GSL_WS(ws);
- c_limit = Opt_arg(limit, Int_val, gslws->limit);
+ c_limit = Opt_arg(limit, (size_t)Int_val, gslws->limit);
gsl_integration_qaws(&gf,
Double_val(a), Double_val(b), QAWSTABLE_VAL(table),
Double_val(epsabs), Double_val(epsrel),
@@ -299,7 +299,7 @@ CAMLprim value ml_gsl_integration_qawo(value fun, value a,
size_t c_limit;
gsl_integration_workspace *gslws = GSL_WS(ws);
- c_limit = Opt_arg(limit, Int_val, gslws->limit);
+ c_limit = Opt_arg(limit, (size_t)Int_val, gslws->limit);
gsl_integration_qawo(&gf, Double_val(a),
Double_val(epsabs), Double_val(epsrel),
c_limit, gslws,
@@ -324,7 +324,7 @@ CAMLprim value ml_gsl_integration_qawf(value fun, value a, value epsabs,
size_t c_limit;
gsl_integration_workspace *gslws = GSL_WS(ws);
- c_limit = Opt_arg(limit, Int_val, gslws->limit);
+ c_limit = Opt_arg(limit, (size_t)Int_val, gslws->limit);
gsl_integration_qawf(&gf, Double_val(a),
Double_val(epsabs), c_limit,
gslws, GSL_WS(cyclews),
From e46cdcc1f21826aaec54d7d326705686aa68c312 Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:48:49 +0200
Subject: [PATCH 16/25] OCaml 5 compat: stat_alloc, stat_free
---
src/mlgsl_min.c | 4 ++--
src/mlgsl_monte.c | 12 ++++++------
src/mlgsl_multifit.c | 4 ++--
src/mlgsl_multimin.c | 8 ++++----
src/mlgsl_multiroots.c | 8 ++++----
src/mlgsl_odeiv.c | 8 ++++----
src/mlgsl_roots.c | 8 ++++----
7 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/src/mlgsl_min.c b/src/mlgsl_min.c
index 3dbba6b..0e2cfff 100644
--- a/src/mlgsl_min.c
+++ b/src/mlgsl_min.c
@@ -27,7 +27,7 @@ CAMLprim value ml_gsl_min_fminimizer_alloc(value t)
gsl_min_fminimizer *s;
s=gsl_min_fminimizer_alloc(Minimizertype_val(t));
- params=stat_alloc(sizeof *params);
+ params=caml_stat_alloc(sizeof *params);
res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)s;
@@ -54,7 +54,7 @@ CAMLprim value ml_gsl_min_fminimizer_set(value s, value f, value min, value lo,
CAMLprim value ml_gsl_min_fminimizer_free(value s)
{
remove_global_root(&(Mparams_val(s)->closure));
- stat_free(Mparams_val(s));
+ caml_stat_free(Mparams_val(s));
gsl_min_fminimizer_free(Minimizer_val(s));
return Val_unit;
}
diff --git a/src/mlgsl_monte.c b/src/mlgsl_monte.c
index 5feab52..82cb7d8 100644
--- a/src/mlgsl_monte.c
+++ b/src/mlgsl_monte.c
@@ -43,7 +43,7 @@ CAMLprim value ml_gsl_monte_plain_alloc(value d)
int dim=Int_val(d);
s=gsl_monte_plain_alloc(dim);
- params=stat_alloc(sizeof(*params));
+ params=caml_stat_alloc(sizeof(*params));
{
CAMLparam0();
@@ -70,7 +70,7 @@ CAMLprim value ml_gsl_monte_plain_free(value s)
{
remove_global_root(&(CallbackParams_val(s)->closure));
remove_global_root(&(CallbackParams_val(s)->dbl));
- stat_free(CallbackParams_val(s));
+ caml_stat_free(CallbackParams_val(s));
gsl_monte_plain_free(GSLPLAINSTATE_VAL(s));
return Val_unit;
}
@@ -119,7 +119,7 @@ CAMLprim value ml_gsl_monte_miser_alloc(value d)
int dim=Int_val(d);
s=gsl_monte_miser_alloc(dim);
- params=stat_alloc(sizeof(*params));
+ params=caml_stat_alloc(sizeof(*params));
{
CAMLparam0();
@@ -145,7 +145,7 @@ CAMLprim value ml_gsl_monte_miser_free(value s)
{
remove_global_root(&(CallbackParams_val(s)->closure));
remove_global_root(&(CallbackParams_val(s)->dbl));
- stat_free(CallbackParams_val(s));
+ caml_stat_free(CallbackParams_val(s));
gsl_monte_miser_free(GSLMISERSTATE_VAL(s));
return Val_unit;
}
@@ -220,7 +220,7 @@ CAMLprim value ml_gsl_monte_vegas_alloc(value d)
int dim=Int_val(d);
s=gsl_monte_vegas_alloc(dim);
- params=stat_alloc(sizeof(*params));
+ params=caml_stat_alloc(sizeof(*params));
{
CAMLparam0();
@@ -249,7 +249,7 @@ CAMLprim value ml_gsl_monte_vegas_free(value state)
gsl_monte_vegas_state *s=GSLVEGASSTATE_VAL(state);
remove_global_root(&(CallbackParams_val(state)->closure));
remove_global_root(&(CallbackParams_val(state)->dbl));
- stat_free(CallbackParams_val(state));
+ caml_stat_free(CallbackParams_val(state));
if(s->ostream != stdout && s->ostream != stderr)
fclose(s->ostream);
remove_global_root(&GSLVEGASSTREAM_VAL(state));
diff --git a/src/mlgsl_multifit.c b/src/mlgsl_multifit.c
index e487fe5..ae0b9e1 100644
--- a/src/mlgsl_multifit.c
+++ b/src/mlgsl_multifit.c
@@ -31,7 +31,7 @@ CAMLprim value ml_gsl_multifit_fdfsolver_alloc(value type, value n, value p)
S=gsl_multifit_fdfsolver_alloc(fdfsolver_of_value(type),
Int_val(n), Int_val(p));
- params=stat_alloc(sizeof(*params));
+ params=caml_stat_alloc(sizeof(*params));
res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)S;
@@ -66,7 +66,7 @@ CAMLprim value ml_gsl_multifit_fdfsolver_free(value S)
{
struct callback_params *p=CALLBACKPARAMS_VAL(S);
remove_global_root(&(p->closure));
- stat_free(p);
+ caml_stat_free(p);
gsl_multifit_fdfsolver_free(FDFSOLVER_VAL(S));
return Val_unit;
}
diff --git a/src/mlgsl_multimin.c b/src/mlgsl_multimin.c
index ab17836..66d41c1 100644
--- a/src/mlgsl_multimin.c
+++ b/src/mlgsl_multimin.c
@@ -35,7 +35,7 @@ CAMLprim value ml_gsl_multimin_fdfminimizer_alloc(value type, value d)
value res;
T=gsl_multimin_fdfminimizer_alloc(fdfminimizer_of_value(type), dim);
- params=stat_alloc(sizeof(*params));
+ params=caml_stat_alloc(sizeof(*params));
res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)T;
@@ -72,7 +72,7 @@ CAMLprim value ml_gsl_multimin_fdfminimizer_free(value S)
{
struct callback_params *p=CALLBACKPARAMS_VAL(S);
remove_global_root(&(p->closure));
- stat_free(p);
+ caml_stat_free(p);
gsl_multimin_fdfminimizer_free(GSLMULTIMINFDFMINIMIZER_VAL(S));
return Val_unit;
}
@@ -134,7 +134,7 @@ CAMLprim value ml_gsl_multimin_fminimizer_alloc(value type, value d)
value res;
T=gsl_multimin_fminimizer_alloc(fminimizer_of_value(type), dim);
- params=stat_alloc(sizeof(*params));
+ params=caml_stat_alloc(sizeof(*params));
res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)T;
@@ -167,7 +167,7 @@ CAMLprim value ml_gsl_multimin_fminimizer_free(value S)
{
struct callback_params *p=CALLBACKPARAMS_VAL(S);
remove_global_root(&(p->closure));
- stat_free(p);
+ caml_stat_free(p);
gsl_multimin_fminimizer_free(GSLMULTIMINFMINIMIZER_VAL(S));
return Val_unit;
}
diff --git a/src/mlgsl_multiroots.c b/src/mlgsl_multiroots.c
index 2b0cbfc..700f40b 100644
--- a/src/mlgsl_multiroots.c
+++ b/src/mlgsl_multiroots.c
@@ -45,7 +45,7 @@ CAMLprim value ml_gsl_multiroot_fsolver_alloc(value type, value d)
value res;
S=gsl_multiroot_fsolver_alloc(fsolver_of_value(type), dim);
- params=stat_alloc(sizeof(*params));
+ params=caml_stat_alloc(sizeof(*params));
res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)S;
@@ -68,7 +68,7 @@ CAMLprim value ml_gsl_multiroot_fdfsolver_alloc(value type, value d)
value res;
S=gsl_multiroot_fdfsolver_alloc(fdfsolver_of_value(type), dim);
- params=stat_alloc(sizeof(*params));
+ params=caml_stat_alloc(sizeof(*params));
res=caml_alloc_small(2, Abstract_tag);
Field(res, 0) = (value)S;
@@ -116,7 +116,7 @@ CAMLprim value ml_gsl_multiroot_fsolver_free(value S)
{
struct callback_params *p=CALLBACKPARAMS_VAL(S);
remove_global_root(&(p->closure));
- stat_free(p);
+ caml_stat_free(p);
gsl_multiroot_fsolver_free(GSLMULTIROOTSOLVER_VAL(S));
return Val_unit;
}
@@ -125,7 +125,7 @@ CAMLprim value ml_gsl_multiroot_fdfsolver_free(value S)
{
struct callback_params *p=CALLBACKPARAMS_VAL(S);
remove_global_root(&(p->closure));
- stat_free(p);
+ caml_stat_free(p);
gsl_multiroot_fdfsolver_free(GSLMULTIROOTFDFSOLVER_VAL(S));
return Val_unit;
}
diff --git a/src/mlgsl_odeiv.c b/src/mlgsl_odeiv.c
index ea67116..ba668f2 100644
--- a/src/mlgsl_odeiv.c
+++ b/src/mlgsl_odeiv.c
@@ -64,7 +64,7 @@ CAMLprim value ml_gsl_odeiv_alloc_system(value func, value ojac, value dim)
struct mlgsl_odeiv_params *p;
gsl_odeiv_system *syst;
value res;
- p=stat_alloc(sizeof (*p));
+ p=caml_stat_alloc(sizeof (*p));
p->dim = Int_val(dim);
p->closure = func;
register_global_root(&(p->closure));
@@ -80,7 +80,7 @@ CAMLprim value ml_gsl_odeiv_alloc_system(value func, value ojac, value dim)
: caml_ba_alloc_dims(barr_flags, 2, NULL, Int_val(dim), Int_val(dim));
register_global_root(&(p->mat));
- syst=stat_alloc(sizeof (*syst));
+ syst=caml_stat_alloc(sizeof (*syst));
syst->function = ml_gsl_odeiv_func;
syst->jacobian = ml_gsl_odeiv_jacobian;
syst->dimension = Int_val(dim);
@@ -100,8 +100,8 @@ CAMLprim value ml_gsl_odeiv_free_system(value vsyst)
remove_global_root(&(p->arr1));
remove_global_root(&(p->arr2));
remove_global_root(&(p->mat));
- stat_free(p);
- stat_free(syst);
+ caml_stat_free(p);
+ caml_stat_free(syst);
return Val_unit;
}
diff --git a/src/mlgsl_roots.c b/src/mlgsl_roots.c
index 55f0049..6d3b97e 100644
--- a/src/mlgsl_roots.c
+++ b/src/mlgsl_roots.c
@@ -35,7 +35,7 @@ CAMLprim value ml_gsl_root_fsolver_alloc(value t)
gsl_root_fsolver *s;
s = gsl_root_fsolver_alloc(Fsolvertype_val(t));
- params=stat_alloc(sizeof(*params));
+ params=caml_stat_alloc(sizeof(*params));
{
CAMLparam0();
@@ -59,7 +59,7 @@ CAMLprim value ml_gsl_root_fdfsolver_alloc(value t)
gsl_root_fdfsolver *s;
s = gsl_root_fdfsolver_alloc(FDFsolvertype_val(t));
- params=stat_alloc(sizeof(*params));
+ params=caml_stat_alloc(sizeof(*params));
{
CAMLparam0();
@@ -106,7 +106,7 @@ CAMLprim value ml_gsl_root_fsolver_free(value s)
{
struct callback_params *p=Fparams_val(s);
remove_global_root(&(p->closure));
- stat_free(p);
+ caml_stat_free(p);
gsl_root_fsolver_free(Fsolver_val(s));
return Val_unit;
}
@@ -115,7 +115,7 @@ CAMLprim value ml_gsl_root_fdfsolver_free(value s)
{
struct callback_params *p=Fparams_val(s);
remove_global_root(&(p->closure));
- stat_free(p);
+ caml_stat_free(p);
gsl_root_fdfsolver_free(FDFsolver_val(s));
return Val_unit;
}
From 7b936576b64fe6b21e1b44e7e4bc5e02a9d42dc0 Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:50:28 +0200
Subject: [PATCH 17/25] OCaml 5 compat: global_root functions
---
src/mlgsl_min.c | 4 ++--
src/mlgsl_monte.c | 28 ++++++++++++++--------------
src/mlgsl_multifit.c | 4 ++--
src/mlgsl_multimin.c | 8 ++++----
src/mlgsl_multiroots.c | 8 ++++----
src/mlgsl_odeiv.c | 20 ++++++++++----------
src/mlgsl_roots.c | 8 ++++----
7 files changed, 40 insertions(+), 40 deletions(-)
diff --git a/src/mlgsl_min.c b/src/mlgsl_min.c
index 0e2cfff..9413139 100644
--- a/src/mlgsl_min.c
+++ b/src/mlgsl_min.c
@@ -36,7 +36,7 @@ CAMLprim value ml_gsl_min_fminimizer_alloc(value t)
params->gslfun.gf.params = params;
params->closure = Val_unit;
params->dbl = Val_unit;
- register_global_root(&(params->closure));
+ caml_register_global_root(&(params->closure));
CAMLreturn(res);
}
#define Minimizer_val(v) ((gsl_min_fminimizer *)Field((v), 0))
@@ -53,7 +53,7 @@ CAMLprim value ml_gsl_min_fminimizer_set(value s, value f, value min, value lo,
CAMLprim value ml_gsl_min_fminimizer_free(value s)
{
- remove_global_root(&(Mparams_val(s)->closure));
+ caml_remove_global_root(&(Mparams_val(s)->closure));
caml_stat_free(Mparams_val(s));
gsl_min_fminimizer_free(Minimizer_val(s));
return Val_unit;
diff --git a/src/mlgsl_monte.c b/src/mlgsl_monte.c
index 82cb7d8..cd52051 100644
--- a/src/mlgsl_monte.c
+++ b/src/mlgsl_monte.c
@@ -58,8 +58,8 @@ CAMLprim value ml_gsl_monte_plain_alloc(value d)
params->closure = Val_unit;
params->dbl = caml_alloc(dim * Double_wosize, Double_array_tag);
- register_global_root(&(params->closure));
- register_global_root(&(params->dbl));
+ caml_register_global_root(&(params->closure));
+ caml_register_global_root(&(params->dbl));
CAMLreturn(res);
}
}
@@ -68,8 +68,8 @@ ML1(gsl_monte_plain_init, GSLPLAINSTATE_VAL, Unit)
CAMLprim value ml_gsl_monte_plain_free(value s)
{
- remove_global_root(&(CallbackParams_val(s)->closure));
- remove_global_root(&(CallbackParams_val(s)->dbl));
+ caml_remove_global_root(&(CallbackParams_val(s)->closure));
+ caml_remove_global_root(&(CallbackParams_val(s)->dbl));
caml_stat_free(CallbackParams_val(s));
gsl_monte_plain_free(GSLPLAINSTATE_VAL(s));
return Val_unit;
@@ -133,8 +133,8 @@ CAMLprim value ml_gsl_monte_miser_alloc(value d)
params->closure = Val_unit;
params->dbl = caml_alloc(dim * Double_wosize, Double_array_tag);
- register_global_root(&(params->closure));
- register_global_root(&(params->dbl));
+ caml_register_global_root(&(params->closure));
+ caml_register_global_root(&(params->dbl));
CAMLreturn(res);
}
}
@@ -143,8 +143,8 @@ ML1(gsl_monte_miser_init, GSLMISERSTATE_VAL, Unit)
CAMLprim value ml_gsl_monte_miser_free(value s)
{
- remove_global_root(&(CallbackParams_val(s)->closure));
- remove_global_root(&(CallbackParams_val(s)->dbl));
+ caml_remove_global_root(&(CallbackParams_val(s)->closure));
+ caml_remove_global_root(&(CallbackParams_val(s)->dbl));
caml_stat_free(CallbackParams_val(s));
gsl_monte_miser_free(GSLMISERSTATE_VAL(s));
return Val_unit;
@@ -235,9 +235,9 @@ CAMLprim value ml_gsl_monte_vegas_alloc(value d)
params->closure = Val_unit;
params->dbl = caml_alloc(dim * Double_wosize, Double_array_tag);
- register_global_root(&(params->closure));
- register_global_root(&(params->dbl));
- register_global_root(&(Field(res, 2)));
+ caml_register_global_root(&(params->closure));
+ caml_register_global_root(&(params->dbl));
+ caml_register_global_root(&(Field(res, 2)));
CAMLreturn(res);
}
}
@@ -247,12 +247,12 @@ ML1(gsl_monte_vegas_init, GSLVEGASSTATE_VAL, Unit)
CAMLprim value ml_gsl_monte_vegas_free(value state)
{
gsl_monte_vegas_state *s=GSLVEGASSTATE_VAL(state);
- remove_global_root(&(CallbackParams_val(state)->closure));
- remove_global_root(&(CallbackParams_val(state)->dbl));
+ caml_remove_global_root(&(CallbackParams_val(state)->closure));
+ caml_remove_global_root(&(CallbackParams_val(state)->dbl));
caml_stat_free(CallbackParams_val(state));
if(s->ostream != stdout && s->ostream != stderr)
fclose(s->ostream);
- remove_global_root(&GSLVEGASSTREAM_VAL(state));
+ caml_remove_global_root(&GSLVEGASSTREAM_VAL(state));
gsl_monte_vegas_free(s);
return Val_unit;
}
diff --git a/src/mlgsl_multifit.c b/src/mlgsl_multifit.c
index ae0b9e1..a8a2fdb 100644
--- a/src/mlgsl_multifit.c
+++ b/src/mlgsl_multifit.c
@@ -45,7 +45,7 @@ CAMLprim value ml_gsl_multifit_fdfsolver_alloc(value type, value n, value p)
params->gslfun.mffdf.params = params;
params->closure = Val_unit;
params->dbl = Val_unit;
- register_global_root(&(params->closure));
+ caml_register_global_root(&(params->closure));
return res;
}
#define FDFSOLVER_VAL(v) ((gsl_multifit_fdfsolver *)(Field(v, 0)))
@@ -65,7 +65,7 @@ CAMLprim value ml_gsl_multifit_fdfsolver_set(value S, value fun, value x)
CAMLprim value ml_gsl_multifit_fdfsolver_free(value S)
{
struct callback_params *p=CALLBACKPARAMS_VAL(S);
- remove_global_root(&(p->closure));
+ caml_remove_global_root(&(p->closure));
caml_stat_free(p);
gsl_multifit_fdfsolver_free(FDFSOLVER_VAL(S));
return Val_unit;
diff --git a/src/mlgsl_multimin.c b/src/mlgsl_multimin.c
index 66d41c1..1143d61 100644
--- a/src/mlgsl_multimin.c
+++ b/src/mlgsl_multimin.c
@@ -48,7 +48,7 @@ CAMLprim value ml_gsl_multimin_fdfminimizer_alloc(value type, value d)
params->gslfun.mmfdf.params = params;
params->closure = Val_unit;
params->dbl = Val_unit;
- register_global_root(&(params->closure));
+ caml_register_global_root(&(params->closure));
return res;
}
#define GSLMULTIMINFDFMINIMIZER_VAL(v) ((gsl_multimin_fdfminimizer *)(Field(v, 0)))
@@ -71,7 +71,7 @@ CAMLprim value ml_gsl_multimin_fdfminimizer_set(value S, value fun, value X,
CAMLprim value ml_gsl_multimin_fdfminimizer_free(value S)
{
struct callback_params *p=CALLBACKPARAMS_VAL(S);
- remove_global_root(&(p->closure));
+ caml_remove_global_root(&(p->closure));
caml_stat_free(p);
gsl_multimin_fdfminimizer_free(GSLMULTIMINFDFMINIMIZER_VAL(S));
return Val_unit;
@@ -145,7 +145,7 @@ CAMLprim value ml_gsl_multimin_fminimizer_alloc(value type, value d)
params->gslfun.mmf.params = params;
params->closure = Val_unit;
params->dbl = Val_unit;
- register_global_root(&(params->closure));
+ caml_register_global_root(&(params->closure));
return res;
}
#define GSLMULTIMINFMINIMIZER_VAL(v) ((gsl_multimin_fminimizer *)(Field(v, 0)))
@@ -166,7 +166,7 @@ CAMLprim value ml_gsl_multimin_fminimizer_set(value S, value fun,
CAMLprim value ml_gsl_multimin_fminimizer_free(value S)
{
struct callback_params *p=CALLBACKPARAMS_VAL(S);
- remove_global_root(&(p->closure));
+ caml_remove_global_root(&(p->closure));
caml_stat_free(p);
gsl_multimin_fminimizer_free(GSLMULTIMINFMINIMIZER_VAL(S));
return Val_unit;
diff --git a/src/mlgsl_multiroots.c b/src/mlgsl_multiroots.c
index 700f40b..3d1ff94 100644
--- a/src/mlgsl_multiroots.c
+++ b/src/mlgsl_multiroots.c
@@ -55,7 +55,7 @@ CAMLprim value ml_gsl_multiroot_fsolver_alloc(value type, value d)
params->gslfun.mrf.params = params;
params->closure = Val_unit;
params->dbl = Val_unit; /* not needed actually */
- register_global_root(&(params->closure));
+ caml_register_global_root(&(params->closure));
return res;
}
#define GSLMULTIROOTSOLVER_VAL(v) ((gsl_multiroot_fsolver *)(Field(v, 0)))
@@ -80,7 +80,7 @@ CAMLprim value ml_gsl_multiroot_fdfsolver_alloc(value type, value d)
params->gslfun.mrfdf.params = params;
params->closure = Val_unit;
params->dbl = Val_unit; /* not needed actually */
- register_global_root(&(params->closure));
+ caml_register_global_root(&(params->closure));
return res;
}
#define GSLMULTIROOTFDFSOLVER_VAL(v) ((gsl_multiroot_fdfsolver *)(Field(v, 0)))
@@ -115,7 +115,7 @@ CAMLprim value ml_gsl_multiroot_fdfsolver_set(value S, value fun, value X)
CAMLprim value ml_gsl_multiroot_fsolver_free(value S)
{
struct callback_params *p=CALLBACKPARAMS_VAL(S);
- remove_global_root(&(p->closure));
+ caml_remove_global_root(&(p->closure));
caml_stat_free(p);
gsl_multiroot_fsolver_free(GSLMULTIROOTSOLVER_VAL(S));
return Val_unit;
@@ -124,7 +124,7 @@ CAMLprim value ml_gsl_multiroot_fsolver_free(value S)
CAMLprim value ml_gsl_multiroot_fdfsolver_free(value S)
{
struct callback_params *p=CALLBACKPARAMS_VAL(S);
- remove_global_root(&(p->closure));
+ caml_remove_global_root(&(p->closure));
caml_stat_free(p);
gsl_multiroot_fdfsolver_free(GSLMULTIROOTFDFSOLVER_VAL(S));
return Val_unit;
diff --git a/src/mlgsl_odeiv.c b/src/mlgsl_odeiv.c
index ba668f2..73b4909 100644
--- a/src/mlgsl_odeiv.c
+++ b/src/mlgsl_odeiv.c
@@ -67,18 +67,18 @@ CAMLprim value ml_gsl_odeiv_alloc_system(value func, value ojac, value dim)
p=caml_stat_alloc(sizeof (*p));
p->dim = Int_val(dim);
p->closure = func;
- register_global_root(&(p->closure));
+ caml_register_global_root(&(p->closure));
p->jac_closure = (Is_none(ojac) ? Val_unit : Unoption(ojac));
- register_global_root(&(p->jac_closure));
+ caml_register_global_root(&(p->jac_closure));
p->arr1 = caml_alloc(Int_val(dim) * Double_wosize, Double_array_tag);
- register_global_root(&(p->arr1));
+ caml_register_global_root(&(p->arr1));
p->arr2 = caml_alloc(Int_val(dim) * Double_wosize, Double_array_tag);
- register_global_root(&(p->arr2));
+ caml_register_global_root(&(p->arr2));
p->mat =
Is_none(ojac)
? Val_unit
: caml_ba_alloc_dims(barr_flags, 2, NULL, Int_val(dim), Int_val(dim));
- register_global_root(&(p->mat));
+ caml_register_global_root(&(p->mat));
syst=caml_stat_alloc(sizeof (*syst));
syst->function = ml_gsl_odeiv_func;
@@ -95,11 +95,11 @@ CAMLprim value ml_gsl_odeiv_free_system(value vsyst)
{
gsl_odeiv_system *syst = ODEIV_SYSTEM_VAL(vsyst);
struct mlgsl_odeiv_params *p = syst->params;
- remove_global_root(&(p->closure));
- remove_global_root(&(p->jac_closure));
- remove_global_root(&(p->arr1));
- remove_global_root(&(p->arr2));
- remove_global_root(&(p->mat));
+ caml_remove_global_root(&(p->closure));
+ caml_remove_global_root(&(p->jac_closure));
+ caml_remove_global_root(&(p->arr1));
+ caml_remove_global_root(&(p->arr2));
+ caml_remove_global_root(&(p->mat));
caml_stat_free(p);
caml_stat_free(syst);
return Val_unit;
diff --git a/src/mlgsl_roots.c b/src/mlgsl_roots.c
index 6d3b97e..acaecad 100644
--- a/src/mlgsl_roots.c
+++ b/src/mlgsl_roots.c
@@ -48,7 +48,7 @@ CAMLprim value ml_gsl_root_fsolver_alloc(value t)
params->closure = Val_unit;
params->dbl = Val_unit;
- register_global_root(&(params->closure));
+ caml_register_global_root(&(params->closure));
CAMLreturn(res);
}
}
@@ -74,7 +74,7 @@ CAMLprim value ml_gsl_root_fdfsolver_alloc(value t)
params->closure = Val_unit;
params->dbl = Val_unit;
- register_global_root(&(params->closure));
+ caml_register_global_root(&(params->closure));
CAMLreturn(res);
}
}
@@ -105,7 +105,7 @@ CAMLprim value ml_gsl_root_fdfsolver_set(value s, value f, value r)
CAMLprim value ml_gsl_root_fsolver_free(value s)
{
struct callback_params *p=Fparams_val(s);
- remove_global_root(&(p->closure));
+ caml_remove_global_root(&(p->closure));
caml_stat_free(p);
gsl_root_fsolver_free(Fsolver_val(s));
return Val_unit;
@@ -114,7 +114,7 @@ CAMLprim value ml_gsl_root_fsolver_free(value s)
CAMLprim value ml_gsl_root_fdfsolver_free(value s)
{
struct callback_params *p=Fparams_val(s);
- remove_global_root(&(p->closure));
+ caml_remove_global_root(&(p->closure));
caml_stat_free(p);
gsl_root_fdfsolver_free(FDFsolver_val(s));
return Val_unit;
From be05e0c3b117da42cffb0e4fd8bf287dfb4b3e7d Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 19:52:05 +0200
Subject: [PATCH 18/25] OCaml 5 compat: caml_ba_kind
---
src/mlgsl_permut.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mlgsl_permut.c b/src/mlgsl_permut.c
index 555ee35..77c8eb4 100644
--- a/src/mlgsl_permut.c
+++ b/src/mlgsl_permut.c
@@ -68,7 +68,7 @@ CAMLprim value ml_gsl_permute_barr(value p, value arr)
{
GSL_PERMUT_OF_BIGARRAY(p);
struct caml_ba_array *barr = Caml_ba_array_val(arr);
- enum caml_ba_array_kind kind = (barr->flags) & CAML_BA_KIND_MASK ;
+ enum caml_ba_kind kind = (barr->flags) & CAML_BA_KIND_MASK ;
switch(kind){
case CAML_BA_FLOAT32:
gsl_permute_float(perm_p.data, barr->data, 1, barr->dim[0]); break;
@@ -123,7 +123,7 @@ CAMLprim value ml_gsl_permute_inverse_barr(value p, value arr)
{
GSL_PERMUT_OF_BIGARRAY(p);
struct caml_ba_array *barr = Caml_ba_array_val(arr);
- enum caml_ba_array_kind kind = (barr->flags) & CAML_BA_KIND_MASK ;
+ enum caml_ba_kind kind = (barr->flags) & CAML_BA_KIND_MASK ;
switch(kind){
case CAML_BA_FLOAT32:
gsl_permute_float_inverse(perm_p.data, barr->data, 1, barr->dim[0]); break;
From 2c7e1ec59fa3e009c70581aec5ce71d13e792868 Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 20:18:05 +0200
Subject: [PATCH 19/25] Strange global_roots
---
src/mlgsl_monte.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mlgsl_monte.c b/src/mlgsl_monte.c
index cd52051..b5927ff 100644
--- a/src/mlgsl_monte.c
+++ b/src/mlgsl_monte.c
@@ -237,7 +237,7 @@ CAMLprim value ml_gsl_monte_vegas_alloc(value d)
caml_register_global_root(&(params->closure));
caml_register_global_root(&(params->dbl));
- caml_register_global_root(&(Field(res, 2)));
+ caml_register_global_root((value*)&Field(res, 2));
CAMLreturn(res);
}
}
@@ -252,7 +252,7 @@ CAMLprim value ml_gsl_monte_vegas_free(value state)
caml_stat_free(CallbackParams_val(state));
if(s->ostream != stdout && s->ostream != stderr)
fclose(s->ostream);
- caml_remove_global_root(&GSLVEGASSTREAM_VAL(state));
+ caml_remove_global_root((value*)&GSLVEGASSTREAM_VAL(state));
gsl_monte_vegas_free(s);
return Val_unit;
}
From c69b48f4cbc9a6ccc529d60fba033ccba3d8ac7c Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 20:18:39 +0200
Subject: [PATCH 20/25] OCaml 5 compat: caml_flush
---
src/mlgsl_monte.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mlgsl_monte.c b/src/mlgsl_monte.c
index b5927ff..e2fe3a0 100644
--- a/src/mlgsl_monte.c
+++ b/src/mlgsl_monte.c
@@ -338,7 +338,7 @@ CAMLprim value ml_gsl_monte_vegas_set_params(value state, value params)
struct channel *chan=Channel(Field(vchan, 0));
if(s->ostream != stdout && s->ostream != stderr)
fclose(s->ostream);
- flush(chan);
+ caml_flush(chan);
s->ostream = fdopen(dup(chan->fd), "w");
GSLVEGASSTREAM_VAL(state) = vchan;
}
From a223d13d7b1134c437418931120da6fc1a0083bf Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 20:20:24 +0200
Subject: [PATCH 21/25] OCaml 5 compat: string_lenght copy_nativeint
---
src/mlgsl_rng.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/mlgsl_rng.c b/src/mlgsl_rng.c
index 5fbbd10..f896e59 100644
--- a/src/mlgsl_rng.c
+++ b/src/mlgsl_rng.c
@@ -109,7 +109,7 @@ value ml_gsl_rng_get_default(value unit)
value ml_gsl_rng_get_default_seed(value unit)
{
- return copy_nativeint(gsl_rng_default_seed);
+ return caml_copy_nativeint(gsl_rng_default_seed);
}
value ml_gsl_rng_set_default(value type)
@@ -150,12 +150,12 @@ value ml_gsl_rng_name(value rng)
value ml_gsl_rng_max(value rng)
{
- return copy_nativeint(gsl_rng_max(Rng_val(rng)));
+ return caml_copy_nativeint(gsl_rng_max(Rng_val(rng)));
}
value ml_gsl_rng_min(value rng)
{
- return copy_nativeint(gsl_rng_min(Rng_val(rng)));
+ return caml_copy_nativeint(gsl_rng_min(Rng_val(rng)));
}
value ml_gsl_rng_get_type(value rng)
@@ -197,16 +197,16 @@ value ml_gsl_rng_set_state(value rng, value v)
const char *name = String_val(Field(v, 0));
value state = Field(v, 1);
if(strcmp(name, gsl_rng_name(r)) != 0 ||
- gsl_rng_size(r) != string_length(state) )
+ gsl_rng_size(r) != caml_string_length(state) )
caml_invalid_argument("Gsl.Rng.set_state : wrong rng type");
- memcpy(r->state, Bp_val(state), string_length(state));
+ memcpy(r->state, Bp_val(state), caml_string_length(state));
return Val_unit;
}
/* sampling */
value ml_gsl_rng_get(value rng)
{
- return copy_nativeint(gsl_rng_get(Rng_val(rng))) ;
+ return caml_copy_nativeint(gsl_rng_get(Rng_val(rng))) ;
}
value ml_gsl_rng_uniform(value rng)
From d56bb28b7412156190f1f6d9e15bbdf0d5246113 Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 20:21:18 +0200
Subject: [PATCH 22/25] OCaml 5 compat: more callback
---
src/mlgsl_odeiv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mlgsl_odeiv.c b/src/mlgsl_odeiv.c
index 73b4909..3ff2ab7 100644
--- a/src/mlgsl_odeiv.c
+++ b/src/mlgsl_odeiv.c
@@ -51,7 +51,7 @@ static int ml_gsl_odeiv_jacobian(double t, const double y[],
Caml_ba_data_val(p->mat) = dfdy;
args[2] = p->mat;
args[3] = p->arr2;
- res = callbackN_exn(p->jac_closure, 4, args);
+ res = caml_callbackN_exn(p->jac_closure, 4, args);
if(Is_exception_result(res))
return GSL_FAILURE;
memcpy(dfdt, Double_array_val(p->arr2), p->dim * sizeof(double));
From 409657aa4c77c3458c3fe726f1b8210f46962426 Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 20:22:28 +0200
Subject: [PATCH 23/25] OCaml 5 compat: more caml_copy_double
---
src/mlgsl_sf.c | 2 +-
src/mlgsl_vector_impl.h | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/mlgsl_sf.c b/src/mlgsl_sf.c
index 5448a60..7e7b270 100644
--- a/src/mlgsl_sf.c
+++ b/src/mlgsl_sf.c
@@ -269,7 +269,7 @@ CAMLprim value ml_gsl_sf_ellint_D(value arg1, value arg2, value arg3)
double res =
gsl_sf_ellint_D(
Double_val(arg1), Double_val(arg2), dummy_n, GSL_MODE_val(arg3));
- CAMLreturn(caml_caml_copy_double(res));
+ CAMLreturn(caml_copy_double(res));
}
CAMLprim value ml_gsl_sf_ellint_D_e(value arg1, value arg2, value arg3)
diff --git a/src/mlgsl_vector_impl.h b/src/mlgsl_vector_impl.h
index b688df0..c6f5449 100644
--- a/src/mlgsl_vector_impl.h
+++ b/src/mlgsl_vector_impl.h
@@ -77,14 +77,14 @@ CAMLprim value FUNCTION(ml_gsl_vector,max)(value a)
{
_DECLARE_VECTOR(a);
_CONVERT_VECTOR(a);
- return copy_double(FUNCTION(gsl_vector,max)(&v_a));
+ return caml_copy_double(FUNCTION(gsl_vector,max)(&v_a));
}
CAMLprim value FUNCTION(ml_gsl_vector,min)(value a)
{
_DECLARE_VECTOR(a);
_CONVERT_VECTOR(a);
- return copy_double(FUNCTION(gsl_vector,min)(&v_a));
+ return caml_copy_double(FUNCTION(gsl_vector,min)(&v_a));
}
CAMLprim value FUNCTION(ml_gsl_vector,minmax)(value a)
From 8d5657b15f1631a09d5469cdc01e919f39532f32 Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 28 Oct 2022 20:25:27 +0200
Subject: [PATCH 24/25] OCaml compat: copy_double in generated code
---
src/config/do_cdf.ml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/config/do_cdf.ml b/src/config/do_cdf.ml
index abc5199..970b8d9 100644
--- a/src/config/do_cdf.ml
+++ b/src/config/do_cdf.ml
@@ -82,7 +82,7 @@ let print_c_args buf args =
let print_c oc (fun_name, args) =
fprintf oc
- "ML%d(gsl_cdf_%s,%a copy_double)\n"
+ "ML%d(gsl_cdf_%s,%a caml_copy_double)\n"
(List.length args)
fun_name
print_c_args args
From 38fc89540e3675c8ae65424540b449d2a0c8dfef Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Fri, 2 Dec 2022 16:38:56 +0100
Subject: [PATCH 25/25] Add unix as dependencies for examples
---
examples/dune | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/dune b/examples/dune
index b00ade2..7a9dfb3 100644
--- a/examples/dune
+++ b/examples/dune
@@ -34,6 +34,6 @@
sum_ex
wavelet_ex
)
- (libraries gsl)
+ (libraries gsl unix)
(modes byte exe)
)