aboutsummaryrefslogtreecommitdiff
path: root/src/debug.cpp
diff options
context:
space:
mode:
authorPjotr Prins2017-08-20 09:20:06 +0000
committerPjotr Prins2017-08-20 09:20:06 +0000
commitd564a6f16613985340040cc7ab0ffc371cbce3d1 (patch)
treef1f66a528d48dcdf0b216322b1910f3c575429a9 /src/debug.cpp
parent85797beb24da3d591a79fddcff4ab48d702b465f (diff)
downloadpangemma-d564a6f16613985340040cc7ab0ffc371cbce3d1.tar.gz
Added checks for K
Diffstat (limited to 'src/debug.cpp')
-rw-r--r--src/debug.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/debug.cpp b/src/debug.cpp
new file mode 100644
index 0000000..4e37538
--- /dev/null
+++ b/src/debug.cpp
@@ -0,0 +1,30 @@
+
+#include <cmath>
+#include <cstring>
+#include <ctime>
+#include <fstream>
+#include <iostream>
+#include <string>
+#include <sys/stat.h>
+#include <vector>
+
+#include "gsl/gsl_blas.h"
+#include "gsl/gsl_cdf.h"
+#include "gsl/gsl_eigen.h"
+#include "gsl/gsl_linalg.h"
+#include "gsl/gsl_matrix.h"
+#include "gsl/gsl_vector.h"
+
+#include "debug.h"
+#include "mathfunc.h"
+
+// Helper function called by macro validate_K(K, check)
+void do_validate_K(const gsl_matrix *K, bool do_check, const char *__file, int __line) {
+ if (do_check) {
+ debug_msg("Validating K");
+ if (!checkMatrixEigen(K)) warning_at_msg(__file,__line,"K has small or negative eigenvalues!");
+ if (!isMatrixIllConditioned(K)) warning_at_msg(__file,__line,"K is ill conditioned!") if (!isMatrixSymmetric(K)) fail_at_msg(__file,__line,"K is not symmetric!" );
+ if (!isMatrixPositiveDefinite(K)) fail_at_msg(__file,__line,"K is not positive definite!");
+;
+ }
+}