[med-svn] [aghermann] 09/14: build with gsl-2.0 if found, supporting gsl-1.6
andrei zavada
hmmr-guest at moszumanska.debian.org
Sat Jan 30 18:16:02 UTC 2016
This is an automated email from the git hooks/post-receive script.
hmmr-guest pushed a commit to branch WIP
in repository aghermann.
commit 0dc94a334ae373831b760c617995ab3acce18533
Author: Andrei Zavada <hmmr at frdg>
Date: Fri Dec 11 00:42:37 2015 +0000
build with gsl-2.0 if found, supporting gsl-1.6
---
upstream/ChangeLog | 3 +-
upstream/configure.ac | 2 ++
upstream/src/aghermann/model/borbely.cc | 60 +++++++++++++++------------------
3 files changed, 32 insertions(+), 33 deletions(-)
diff --git a/upstream/ChangeLog b/upstream/ChangeLog
index 36a2d1f..94b809f 100644
--- a/upstream/ChangeLog
+++ b/upstream/ChangeLog
@@ -1,7 +1,8 @@
-v.1.0.7 (2015-11-21)
+v.1.0.7 (2015-12-11)
* Fix: Ensure profile overview timeline is at least 1h long.
* Fix: Correctly identify channels by a matching prefix (like
"F3-AV"); also rework data structures in libsigfile/channel.*.
+ * New: Support building with gsl-2.0.
v.1.0.6 (2015-08-13)
* Fix: Make widgets reappear on Empty Experiment splash.
diff --git a/upstream/configure.ac b/upstream/configure.ac
index dbfe2cd..65f350a 100644
--- a/upstream/configure.ac
+++ b/upstream/configure.ac
@@ -67,6 +67,8 @@ PKG_CHECK_MODULES([CAIRO], [cairo >= 1.8.10])
PKG_CHECK_MODULES([UNIQUE], [unique-3.0])
PKG_CHECK_MODULES([VTE], [vte-2.91])
+AX_PATH_GSL([2.0], [AC_DEFINE([HAVE_GSL_20], [], [we have gsl >= 2.0])], [])
+
AC_CHECK_LIB(
fftw3_omp, fftw_init_threads,
[AC_DEFINE([HAVE_LIBFFTW3_OMP], [], [we have fftw3 omp-enabled])
diff --git a/upstream/src/aghermann/model/borbely.cc b/upstream/src/aghermann/model/borbely.cc
index 04d0ded..b6b5fd8 100644
--- a/upstream/src/aghermann/model/borbely.cc
+++ b/upstream/src/aghermann/model/borbely.cc
@@ -85,16 +85,6 @@ expb_fdf( const gsl_vector* x, void *data,
return GSL_SUCCESS;
}
-
-void
-print_state( size_t iter, gsl_multifit_fdfsolver* s)
-{
- APPLOG_DEBUG ("iter: %3zu x = % 15.8f |f(x)| = %g",
- iter,
- gsl_vector_get (s->x, 0),
- gsl_blas_dnrm2 (s->f));
-}
-
} // namespace
agh::beersma::SClassicFit
@@ -155,14 +145,28 @@ classic_fit( agh::CRecording& M,
pp, 1);
gsl_multifit_fdfsolver_set( S, &F, &X.vector);
- // find it
- int status;
+#ifdef HAVE_GSL_20
+ const double xtol = 1e-8;
+ const double gtol = 1e-8;
+ const double ftol = 0.0;
+
+ int info;
+ gsl_multifit_fdfsolver_driver(S, 20, xtol, gtol, ftol, &info);
+
+ gsl_matrix *J = gsl_matrix_alloc(pp, 1);
+ gsl_multifit_fdfsolver_jac(S, J);
+ gsl_multifit_covar( J, 0.0, covar);
+
+ gsl_matrix_free (J);
+
+#else // HAVE_GSL_16
unsigned int iter = 0;
+ int status;
+
do {
++iter;
status = gsl_multifit_fdfsolver_iterate( S);
- print_state( iter, S);
if ( status ) {
APPLOG_WARN ("status = %s", gsl_strerror( status));
break;
@@ -174,18 +178,18 @@ classic_fit( agh::CRecording& M,
gsl_multifit_covar( S->J, 0.0, covar);
-#define FIT(i) gsl_vector_get( S->x, i)
-#define ERR(i) sqrt(gsl_matrix_get( covar, i, i))
- {
- double chi = gsl_blas_dnrm2(S->f);
- double dof = pp - 1;
- double c = GSL_MAX_DBL(1, chi / sqrt(dof));
-
- APPLOG_DEBUG ("chisq/dof = %g", gsl_pow_2(chi) / dof);
- APPLOG_DEBUG ("r = %.5f +/- %.5f", FIT(0), c*ERR(0));
- }
+// #define FIT(i) gsl_vector_get( S->x, i)
+// #define ERR(i) sqrt(gsl_matrix_get( covar, i, i))
+// {
+// double chi = gsl_blas_dnrm2(S->f);
+// double dof = pp - 1;
+// double c = GSL_MAX_DBL(1, chi / sqrt(dof));
- double rate = gsl_vector_get( S->x, 0);
+// APPLOG_DEBUG ("chisq/dof = %g", gsl_pow_2(chi) / dof);
+// APPLOG_DEBUG ("r = %.5f +/- %.5f", FIT(0), c*ERR(0));
+// }
+#endif
+ const double rate = gsl_vector_get( S->x, 0);
gsl_multifit_fdfsolver_free( S);
gsl_matrix_free( covar);
@@ -193,11 +197,3 @@ classic_fit( agh::CRecording& M,
return {rate};
}
-
-
-// Local Variables:
-// Mode: c++
-// indent-tabs-mode: nil
-// tab-width: 8
-// c-basic-offset: 8
-// End:
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/aghermann.git
More information about the debian-med-commit
mailing list