about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorPjotr Prins2018-09-27 09:35:13 +0000
committerPjotr Prins2018-09-27 09:35:13 +0000
commitc08e633d2f858b35d2939d92c8a1b82d36168944 (patch)
tree82f7b8785f7af041c48934e89983ef47a8a3b374 /src
parent5d74d45b5ade5339bca6090bead2d6b37a70fb63 (diff)
downloadpangemma-c08e633d2f858b35d2939d92c8a1b82d36168944.tar.gz
Inlining GSL calls
Diffstat (limited to 'src')
-rw-r--r--src/fastblas.cpp3
-rw-r--r--src/fastblas.h3
-rw-r--r--src/lapack.cpp4
3 files changed, 8 insertions, 2 deletions
diff --git a/src/fastblas.cpp b/src/fastblas.cpp
index 362027c..de63e08 100644
--- a/src/fastblas.cpp
+++ b/src/fastblas.cpp
@@ -30,6 +30,9 @@
 #include <string.h>
 #include "eigenlib.h"
 
+const char *FastblasTrans = "T";
+const char *FastblasNoTrans = "N";
+
 using namespace std;
 
 /*
diff --git a/src/fastblas.h b/src/fastblas.h
index 6000983..343a73a 100644
--- a/src/fastblas.h
+++ b/src/fastblas.h
@@ -27,6 +27,9 @@
 
 gsl_matrix *fast_copy(gsl_matrix *m, const double *mem);
 
+extern const char *FastblasTrans;
+extern const char *FastblasNoTrans;
+
 void fast_dgemm(const char *TransA, const char *TransB, const double alpha,
                 const gsl_matrix *A, const gsl_matrix *B, const double beta,
                 gsl_matrix *C);
diff --git a/src/lapack.cpp b/src/lapack.cpp
index bf73338..eb5b16b 100644
--- a/src/lapack.cpp
+++ b/src/lapack.cpp
@@ -319,8 +319,8 @@ void LUDecomp(gsl_matrix *LU, gsl_permutation *p, int *signum) {
 // introductory textbook on numerical linear algebra for details).
 void LUInvert(const gsl_matrix *LU, const gsl_permutation *p, gsl_matrix *ret_inverse) {
   // debug_msg("entering");
-  auto det = LULndet(LU);
-  enforce_msg(det != 1.0,"LU determinant is zero -> LU is not invertable");
+  if (is_check_mode())
+    LULndet(LU);
 
   enforce_gsl(gsl_linalg_LU_invert(LU, p, ret_inverse));
 }