#include #include #include #include int dpotrf_(char *uplo, int *n, double *a, int *lda, int *info); int dpotri_(char *uplo, int *n, double *a, int *lda, int *info); void dsyrk_(char *uplo, char *trans, int *N, int *K, double *alpha, const double *A, int *lda, double *beta, double *C, int *ldc); int invert_pd_matrix (double *A, int n, int lda) { int info = 0; char uplo = 'L'; dpotrf_(&uplo, &n, A, &lda, &info); if (info == 0) { dpotri_(&uplo, &n, A, &n, &info); } return info; } void make_pd_matrix (double *A, double *M, int n) { char uplo = 'L'; char trans = 'T'; double alpha = 1.0; double beta = 0; int N = n*n; int i; for (i=0; i