diff options
author | Pjotr Prins | 2017-08-20 09:20:06 +0000 |
---|---|---|
committer | Pjotr Prins | 2017-08-20 09:20:06 +0000 |
commit | d564a6f16613985340040cc7ab0ffc371cbce3d1 (patch) | |
tree | f1f66a528d48dcdf0b216322b1910f3c575429a9 /src/debug.cpp | |
parent | 85797beb24da3d591a79fddcff4ab48d702b465f (diff) | |
download | pangemma-d564a6f16613985340040cc7ab0ffc371cbce3d1.tar.gz |
Added checks for K
Diffstat (limited to 'src/debug.cpp')
-rw-r--r-- | src/debug.cpp | 30 |
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!"); +; + } +} |