|
|
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 |
|