summaryrefslogtreecommitdiff
path: root/academic/root/root_gsl2.patch
diff options
context:
space:
mode:
authorDavid Spencer <baildon.research@googlemail.com>2015-11-18 23:45:32 +0000
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2016-01-17 09:40:16 +0700
commitb8f6fbd9c6cefd262448404bc9c274857d6485c1 (patch)
tree4ad18baaa9628eca9ce4b1f92cd8ab2e8ee99cbb /academic/root/root_gsl2.patch
parente21d48b8bbfc7b3c579206079d92286e664d09ad (diff)
downloadslackbuilds-b8f6fbd9c6cefd262448404bc9c274857d6485c1.tar.gz
academic/root: Patched for gsl-2.1.
Signed-off-by: David Spencer <baildon.research@googlemail.com>
Diffstat (limited to 'academic/root/root_gsl2.patch')
-rw-r--r--academic/root/root_gsl2.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/academic/root/root_gsl2.patch b/academic/root/root_gsl2.patch
new file mode 100644
index 0000000000..8f049d7e03
--- /dev/null
+++ b/academic/root/root_gsl2.patch
@@ -0,0 +1,42 @@
+diff -u -r root/math/mathmore/src/GSLMultiFit.h root-patched/math/mathmore/src/GSLMultiFit.h
+--- root/math/mathmore/src/GSLMultiFit.h 2015-06-23 16:56:20.000000000 +0100
++++ root-patched/math/mathmore/src/GSLMultiFit.h 2015-11-18 22:30:54.300681289 +0000
+@@ -32,6 +32,7 @@
+ #include "gsl/gsl_multifit_nlin.h"
+ #include "gsl/gsl_blas.h"
+ #include "GSLMultiFitFunctionWrapper.h"
++#include <gsl/gsl_version.h>
+
+ #include "Math/IFunction.h"
+ #include <string>
+@@ -139,7 +140,14 @@
+ /// gradient value at the minimum
+ const double * Gradient() const {
+ if (fSolver == 0) return 0;
+- gsl_multifit_gradient(fSolver->J, fSolver->f,fVec);
++#if GSL_MAJOR_VERSION >=2
++ gsl_matrix *J=gsl_matrix_alloc(fSolver->fdf->n, fSolver->fdf->p);
++ gsl_multifit_fdfsolver_jac (fSolver, J);
++ gsl_multifit_gradient(J, fSolver->f, fVec);
++ gsl_matrix_free(J);
++#else
++ gsl_multifit_gradient(fSolver->J, fSolver->f, fVec);
++#endif
+ return fVec->data;
+ }
+
+@@ -150,7 +158,14 @@
+ unsigned int npar = fSolver->fdf->p;
+ fCov = gsl_matrix_alloc( npar, npar );
+ static double kEpsrel = 0.0001;
++#if GSL_MAJOR_VERSION >=2
++ gsl_matrix *J=gsl_matrix_alloc(fSolver->fdf->n, fSolver->fdf->p);
++ gsl_multifit_fdfsolver_jac (fSolver, J);
++ int ret = gsl_multifit_covar(J, kEpsrel, fCov);
++ gsl_matrix_free(J);
++#else
+ int ret = gsl_multifit_covar(fSolver->J, kEpsrel, fCov);
++#endif
+ if (ret != GSL_SUCCESS) return 0;
+ return fCov->data;
+ }