diff options
-rw-r--r-- | src/configure.ac | 1 | ||||
-rw-r--r-- | src/mtx_eig.c | 12 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/configure.ac b/src/configure.ac index 7128c61..9382701 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -76,6 +76,7 @@ dnl for gnu scientific library -lgsl: dnl AC_CHECK_LIB([m], [cos]) AC_CHECK_LIB([gslcblas], [cblas_dgemm]) AC_CHECK_LIB([gsl], [gsl_blas_dgemm]) +AC_CHECK_FUNCS([gsl], [gsl_eigen_nonsymm], ) if test "x$with_pd" != "x"; then diff --git a/src/mtx_eig.c b/src/mtx_eig.c index 04dc068..5878078 100644 --- a/src/mtx_eig.c +++ b/src/mtx_eig.c @@ -26,7 +26,7 @@ typedef struct _MTXEig_ MTXEig; struct _MTXEig_ { t_object x_obj; -#ifdef HAVE_LIBGSL +#ifdef HAVE_LIBGSL_EIGEN_NONSYMM gsl_matrix *a; gsl_matrix_complex *q; gsl_vector_complex *l; @@ -45,7 +45,7 @@ struct _MTXEig_ enum WithEigenVectors withevs; }; -#ifdef HAVE_LIBGSL +#ifdef HAVE_LIBGSL_EIGEN_NONSYMM static void allocMTXqlw (MTXEig *x) { x->a=(gsl_matrix*)gsl_matrix_alloc(x->size,x->size); @@ -103,7 +103,7 @@ static void deleteMTXqlw (MTXEig *x) static void deleteMTXEig (MTXEig *x) { -#ifdef HAVE_LIBGSL +#ifdef HAVE_LIBGSL_EIGEN_NONSYMM deleteMTXqlw(x); #endif } @@ -124,7 +124,7 @@ static void *newMTXEig (t_symbol *s, int argc, t_atom *argv) x->list_l_im = 0; x->list_q_re = 0; x->list_q_im = 0; -#ifdef HAVE_LIBGSL +#ifdef HAVE_LIBGSL_EIGEN_NONSYMM x->a=0; x->q=0; x->l=0; @@ -159,7 +159,7 @@ static void mTXEigMatrix (MTXEig *x, t_symbol *s, int n,m; float f; -#ifdef HAVE_LIBGSL +#ifdef HAVE_LIBGSL_EIGEN_NONSYMM gsl_complex c; /* size check */ if (!size) @@ -205,7 +205,7 @@ static void mTXEigMatrix (MTXEig *x, t_symbol *s, mTXEigBang(x); } #else - post("mtx_eig: implementation requires gsl"); + post("mtx_eig: implementation requires more recent gsl version to handle nonsymmetric matrices"); #endif } |