64dec83
From cca79ea56a7ee83a4c67b432decdaef3de8c9d30 Mon Sep 17 00:00:00 2001
64dec83
From: Markus Mottl <markus.mottl@gmail.com>
64dec83
Date: Thu, 25 Feb 2021 10:43:04 -0500
64dec83
Subject: [PATCH 2/4] Used new OCaml 4.12 C-macros
64dec83
64dec83
---
64dec83
 dune-project      |  2 +-
64dec83
 src/mlgsl_fit.c   |  6 +++---
64dec83
 src/mlgsl_monte.c |  2 +-
64dec83
 src/mlgsl_odeiv.c |  8 ++++----
64dec83
 src/mlgsl_stats.c | 34 +++++++++++++++++-----------------
64dec83
 src/wrappers.h    |  1 -
64dec83
 6 files changed, 26 insertions(+), 27 deletions(-)
64dec83
64dec83
diff --git a/dune-project b/dune-project
64dec83
index 27bdde7..704028c 100644
64dec83
--- a/dune-project
64dec83
+++ b/dune-project
64dec83
@@ -25,7 +25,7 @@ most frequently used functions for scientific computation including algorithms
64dec83
 for optimization, differential equations, statistics, random number generation,
64dec83
 linear algebra, etc.")
64dec83
   (depends
64dec83
-    (ocaml (>= 4.08))
64dec83
+    (ocaml (>= 4.12))
64dec83
     dune-configurator
64dec83
     (conf-gsl :build)
64dec83
     (conf-pkg-config :build)
64dec83
diff --git a/src/mlgsl_fit.c b/src/mlgsl_fit.c
64dec83
index 655f1a4..0776c0a 100644
64dec83
--- a/src/mlgsl_fit.c
64dec83
+++ b/src/mlgsl_fit.c
64dec83
@@ -23,7 +23,7 @@ CAMLprim value ml_gsl_fit_linear(value wo, value x, value y)
64dec83
   if(Double_array_length(y) != N)
64dec83
     GSL_ERROR("array sizes differ", GSL_EBADLEN);
64dec83
 
64dec83
-  if(wo == Val_none)
64dec83
+  if(Is_none(wo))
64dec83
     gsl_fit_linear(Double_array_val(x), 1, 
64dec83
 		   Double_array_val(y), 1, N,
64dec83
 		   &c0, &c1, &cov00, &cov01, &cov11, &sumsq);
64dec83
@@ -68,7 +68,7 @@ CAMLprim value ml_gsl_fit_mul(value wo, value x, value y)
64dec83
   if(Double_array_length(y) != N)
64dec83
     GSL_ERROR("array sizes differ", GSL_EBADLEN);
64dec83
 
64dec83
-  if(wo == Val_none)
64dec83
+  if(Is_none(wo))
64dec83
     gsl_fit_mul(Double_array_val(x), 1, Double_array_val(y), 1, N,
64dec83
 		&c1, &cov11, &sumsq);
64dec83
   else {
64dec83
@@ -120,7 +120,7 @@ CAMLprim value ml_gsl_multifit_linear(value wo, value x, value y,
64dec83
   _DECLARE_VECTOR2(y,c);
64dec83
   _CONVERT_MATRIX2(x,cov);
64dec83
   _CONVERT_VECTOR2(y,c);
64dec83
-  if(wo == Val_none)
64dec83
+  if(Is_none(wo))
64dec83
     gsl_multifit_linear(&m_x, &v_y, &v_c, &m_cov, 
64dec83
 			&chisq, MultifitWS_val(ws));
64dec83
   else {
64dec83
diff --git a/src/mlgsl_monte.c b/src/mlgsl_monte.c
64dec83
index 3fe90c7..ffecb55 100644
64dec83
--- a/src/mlgsl_monte.c
64dec83
+++ b/src/mlgsl_monte.c
64dec83
@@ -313,7 +313,7 @@ CAMLprim value ml_gsl_monte_vegas_get_params(value state)
64dec83
   Store_field(r, 4, Val_int(s->verbose));
64dec83
   {
64dec83
     value vchan;
64dec83
-    if(GSLVEGASSTREAM_VAL(state) != Val_none){
64dec83
+    if(Is_some(GSLVEGASSTREAM_VAL(state))){
64dec83
       vchan=alloc_small(1, 0);
64dec83
       Field(vchan, 0)=GSLVEGASSTREAM_VAL(state);
64dec83
     }
64dec83
diff --git a/src/mlgsl_odeiv.c b/src/mlgsl_odeiv.c
64dec83
index b7abcc0..7a4376b 100644
64dec83
--- a/src/mlgsl_odeiv.c
64dec83
+++ b/src/mlgsl_odeiv.c
64dec83
@@ -68,14 +68,14 @@ CAMLprim value ml_gsl_odeiv_alloc_system(value func, value ojac, value dim)
64dec83
   p->dim = Int_val(dim);
64dec83
   p->closure = func;
64dec83
   register_global_root(&(p->closure));
64dec83
-  p->jac_closure = (ojac == Val_none ? Val_unit : Unoption(ojac));
64dec83
+  p->jac_closure = (Is_none(ojac) ? Val_unit : Unoption(ojac));
64dec83
   register_global_root(&(p->jac_closure));
64dec83
   p->arr1 = alloc(Int_val(dim) * Double_wosize, Double_array_tag);
64dec83
   register_global_root(&(p->arr1));
64dec83
   p->arr2 = alloc(Int_val(dim) * Double_wosize, Double_array_tag);
64dec83
   register_global_root(&(p->arr2));
64dec83
   p->mat =
64dec83
-    (ojac == Val_none)
64dec83
+    Is_none(ojac)
64dec83
     ? Val_unit
64dec83
     : alloc_bigarray_dims(barr_flags, 2, NULL, Int_val(dim), Int_val(dim));
64dec83
   register_global_root(&(p->mat));
64dec83
@@ -137,9 +137,9 @@ CAMLprim value ml_gsl_odeiv_step_apply(value step, value t, value h, value y,
64dec83
   LOCALARRAY(double, y_copy,  Double_array_length(y)); 
64dec83
   LOCALARRAY(double, yerr_copy, Double_array_length(yerr)); 
64dec83
   size_t len_dydt_in = 
64dec83
-    odydt_in == Val_none ? 0 : Double_array_length(Unoption(odydt_in)) ;
64dec83
+    Is_none(odydt_in) ? 0 : Double_array_length(Unoption(odydt_in)) ;
64dec83
   size_t len_dydt_out = 
64dec83
-    odydt_out == Val_none ? 0 : Double_array_length(Unoption(odydt_out)) ;
64dec83
+    Is_none(odydt_out) ? 0 : Double_array_length(Unoption(odydt_out)) ;
64dec83
   LOCALARRAY(double, dydt_in, len_dydt_in); 
64dec83
   LOCALARRAY(double, dydt_out, len_dydt_out); 
64dec83
   int status;
64dec83
diff --git a/src/mlgsl_stats.c b/src/mlgsl_stats.c
64dec83
index a754d19..2c91ede 100644
64dec83
--- a/src/mlgsl_stats.c
64dec83
+++ b/src/mlgsl_stats.c
64dec83
@@ -21,7 +21,7 @@ CAMLprim value ml_gsl_stats_mean(value ow, value data)
64dec83
 {
64dec83
   size_t len = Double_array_length(data);
64dec83
   double result;
64dec83
-  if(ow == Val_none)
64dec83
+  if(Is_none(ow))
64dec83
     result = gsl_stats_mean(Double_array_val(data), 1, len);
64dec83
   else {
64dec83
     value w = Unoption(ow);
64dec83
@@ -36,8 +36,8 @@ CAMLprim value ml_gsl_stats_variance(value ow, value omean, value data)
64dec83
 {
64dec83
   size_t len = Double_array_length(data);
64dec83
   double result;
64dec83
-  if(ow == Val_none)
64dec83
-    if(omean == Val_none)
64dec83
+  if(Is_none(ow))
64dec83
+    if(Is_none(omean))
64dec83
       result = gsl_stats_variance(Double_array_val(data), 1, len);
64dec83
     else
64dec83
       result = gsl_stats_variance_m(Double_array_val(data), 1, len, 
64dec83
@@ -45,7 +45,7 @@ CAMLprim value ml_gsl_stats_variance(value ow, value omean, value data)
64dec83
   else {
64dec83
     value w = Unoption(ow);
64dec83
     check_array_size(data, w);
64dec83
-    if(omean == Val_none)
64dec83
+    if(Is_none(omean))
64dec83
       result = gsl_stats_wvariance(Double_array_val(w), 1, 
64dec83
 				   Double_array_val(data), 1, len);
64dec83
     else
64dec83
@@ -60,8 +60,8 @@ CAMLprim value ml_gsl_stats_sd(value ow, value omean, value data)
64dec83
 {
64dec83
   size_t len = Double_array_length(data);
64dec83
   double result;
64dec83
-  if(ow == Val_none)
64dec83
-    if(omean == Val_none)
64dec83
+  if(Is_none(ow))
64dec83
+    if(Is_none(omean))
64dec83
       result = gsl_stats_sd(Double_array_val(data), 1, len);
64dec83
     else
64dec83
       result = gsl_stats_sd_m(Double_array_val(data), 1, len, 
64dec83
@@ -69,7 +69,7 @@ CAMLprim value ml_gsl_stats_sd(value ow, value omean, value data)
64dec83
   else {
64dec83
     value w = Unoption(ow);
64dec83
     check_array_size(data, w);
64dec83
-    if(omean == Val_none)
64dec83
+    if(Is_none(omean))
64dec83
       result = gsl_stats_wsd(Double_array_val(w), 1, 
64dec83
 			     Double_array_val(data), 1, len);
64dec83
     else
64dec83
@@ -85,7 +85,7 @@ CAMLprim value ml_gsl_stats_variance_with_fixed_mean(value ow,
64dec83
 {
64dec83
   size_t len = Double_array_length(data);
64dec83
   double result;
64dec83
-  if(ow == Val_none)
64dec83
+  if(Is_none(ow))
64dec83
     result = gsl_stats_variance_with_fixed_mean(Double_array_val(data), 
64dec83
 						1, len, Double_val(mean));
64dec83
   else {
64dec83
@@ -103,7 +103,7 @@ CAMLprim value ml_gsl_stats_sd_with_fixed_mean(value ow,
64dec83
 {
64dec83
   size_t len = Double_array_length(data);
64dec83
   double result;
64dec83
-  if(ow == Val_none)
64dec83
+  if(Is_none(ow))
64dec83
     result = gsl_stats_sd_with_fixed_mean(Double_array_val(data), 
64dec83
 					  1, len, Double_val(mean));
64dec83
   else {
64dec83
@@ -120,8 +120,8 @@ CAMLprim value ml_gsl_stats_absdev(value ow, value omean, value data)
64dec83
 {
64dec83
   size_t len = Double_array_length(data);
64dec83
   double result;
64dec83
-  if(ow == Val_none)
64dec83
-    if(omean == Val_none)
64dec83
+  if(Is_none(ow))
64dec83
+    if(Is_none(omean))
64dec83
       result = gsl_stats_absdev(Double_array_val(data), 1, len);
64dec83
     else
64dec83
       result = gsl_stats_absdev_m(Double_array_val(data), 1, len, 
64dec83
@@ -129,7 +129,7 @@ CAMLprim value ml_gsl_stats_absdev(value ow, value omean, value data)
64dec83
   else {
64dec83
     value w = Unoption(ow);
64dec83
     check_array_size(data, w);
64dec83
-    if(omean == Val_none)
64dec83
+    if(Is_none(omean))
64dec83
       result = gsl_stats_wabsdev(Double_array_val(w), 1, 
64dec83
 				 Double_array_val(data), 1, len);
64dec83
     else
64dec83
@@ -144,7 +144,7 @@ CAMLprim value ml_gsl_stats_skew(value ow, value data)
64dec83
 {
64dec83
   size_t len = Double_array_length(data);
64dec83
   double result;
64dec83
-  if(ow == Val_none)
64dec83
+  if(Is_none(ow))
64dec83
     result = gsl_stats_skew(Double_array_val(data), 1, len);
64dec83
   else {
64dec83
     value w = Unoption(ow);
64dec83
@@ -160,7 +160,7 @@ CAMLprim value ml_gsl_stats_skew_m_sd(value ow, value mean,
64dec83
 {
64dec83
   size_t len = Double_array_length(data);
64dec83
   double result;
64dec83
-  if(ow == Val_none)
64dec83
+  if(Is_none(ow))
64dec83
     result = gsl_stats_skew_m_sd(Double_array_val(data), 1, len,
64dec83
 				 Double_val(mean), Double_val(sd));
64dec83
   else {
64dec83
@@ -177,7 +177,7 @@ CAMLprim value ml_gsl_stats_kurtosis(value ow, value data)
64dec83
 {
64dec83
   size_t len = Double_array_length(data);
64dec83
   double result;
64dec83
-  if(ow == Val_none)
64dec83
+  if(Is_none(ow))
64dec83
     result = gsl_stats_kurtosis(Double_array_val(data), 1, len);
64dec83
   else {
64dec83
     value w = Unoption(ow);
64dec83
@@ -193,7 +193,7 @@ CAMLprim value ml_gsl_stats_kurtosis_m_sd(value ow, value mean,
64dec83
 {
64dec83
   size_t len = Double_array_length(data);
64dec83
   double result;
64dec83
-  if(ow == Val_none)
64dec83
+  if(Is_none(ow))
64dec83
     result = gsl_stats_kurtosis_m_sd(Double_array_val(data), 1, len,
64dec83
 				     Double_val(mean), Double_val(sd));
64dec83
   else {
64dec83
@@ -210,7 +210,7 @@ CAMLprim value ml_gsl_stats_lag1_autocorrelation(value omean, value data)
64dec83
 {
64dec83
   size_t len = Double_array_length(data);
64dec83
   double result;
64dec83
-  if(omean == Val_none)
64dec83
+  if(Is_none(omean))
64dec83
     result = gsl_stats_lag1_autocorrelation(Double_array_val(data), 1, len);
64dec83
   else
64dec83
     result = gsl_stats_lag1_autocorrelation_m(Double_array_val(data), 1, len, 
64dec83
diff --git a/src/wrappers.h b/src/wrappers.h
64dec83
index 3bd852d..bdaea4b 100644
64dec83
--- a/src/wrappers.h
64dec83
+++ b/src/wrappers.h
64dec83
@@ -17,7 +17,6 @@
64dec83
 
64dec83
 #define Unoption(v) (Field((v), 0))
64dec83
 #define Opt_arg(v, conv, def) (Is_block(v) ? conv(Field((v),0)) : (def))
64dec83
-#define Val_none Val_int(0)
64dec83
 
64dec83
 #define Val_negbool(x) Val_not(Val_bool(x))
64dec83
 
64dec83
-- 
64dec83
2.41.0
64dec83