49 lines
1.8 KiB
Diff
49 lines
1.8 KiB
Diff
diff -urp mathgl-2.3.3/CMakeLists.txt mathgl-2.3.3-gsl2/CMakeLists.txt
|
|
--- CMakeLists.txt 2015-06-01 13:29:26.000000000 +0600
|
|
+++ CMakeLists.txt 2015-11-24 12:10:43.580786919 +0600
|
|
@@ -259,6 +259,13 @@ endif(enable-pthread)
|
|
|
|
if(enable-gsl)
|
|
set(MGL_HAVE_GSL 1)
|
|
+ FIND_PACKAGE(PkgConfig)
|
|
+ pkg_check_modules(GSL2 REQUIRED gsl)
|
|
+ if ( GSL2_FOUND )
|
|
+ if ( NOT ${GSL2_VERSION} LESS 2.0 )
|
|
+ SET(ISGSL2 1)
|
|
+ endif ( NOT ${GSL_VERSION} LESS 2.0 )
|
|
+ endif ( GSL2_FOUND )
|
|
find_library(GSL_LIB gsl)
|
|
find_library(GSL_CBLAS_LIB gslcblas)
|
|
find_path(GSL_INCLUDE_DIR gsl/gsl_fft_complex.h)
|
|
diff -urp mathgl-2.3.3/src/CMakeLists.txt mathgl-2.3.3-gsl2/src/CMakeLists.txt
|
|
--- mathgl-2.3.3/src/CMakeLists.txt 2015-06-01 13:29:02.000000000 +0600
|
|
+++ mathgl-2.3.3-gsl2/src/CMakeLists.txt 2015-11-24 12:11:14.494707480 +0600
|
|
@@ -23,6 +23,9 @@ ${MathGL_BINARY_DIR}/include/mgl2/dllexp
|
|
)
|
|
|
|
add_definitions(-DMGL_SRC)
|
|
+if(DEFINED ISGSL2)
|
|
+add_definitions(-DHAVE_GSL_2)
|
|
+endif(DEFINED ISGSL2)
|
|
|
|
if(MGL_HAVE_PNG)
|
|
set(prc_src prc/PRCbitStream.cc prc/PRCdouble.cc prc/oPRCFile.cc prc/writePRC.cc prc.cpp )
|
|
diff -urp mathgl-2.3.3/src/fit.cpp mathgl-2.3.3-gsl2/src/fit.cpp
|
|
--- mathgl-2.3.3/src/fit.cpp 2015-06-01 13:29:02.000000000 +0600
|
|
+++ mathgl-2.3.3-gsl2/src/fit.cpp 2015-11-24 12:13:39.912670946 +0600
|
|
@@ -193,7 +193,14 @@ mreal MGL_NO_EXPORT mgl_fit_base(mglFitD
|
|
}
|
|
while ( status == GSL_CONTINUE && iter < 500 );
|
|
gsl_matrix *covar = gsl_matrix_alloc(m, m);
|
|
+#ifdef HAVE_GSL_2
|
|
+ gsl_matrix *J = gsl_matrix_alloc(s->fdf->n, s->fdf->p);
|
|
+ gsl_multifit_fdfsolver_jac(s, J);
|
|
+ gsl_multifit_covar (J, 0.0, covar);
|
|
+ gsl_matrix_free (J);
|
|
+#else
|
|
gsl_multifit_covar (s->J, 0.0, covar );
|
|
+#endif
|
|
mglFitCovar.Set(covar);
|
|
mreal res = gsl_blas_dnrm2(s->f);
|
|
for(i=0;i<m;i++) ini[i] = gsl_vector_get(s->x, i);
|