summaryrefslogtreecommitdiff
path: root/packages/base/src/Internal/C
diff options
context:
space:
mode:
authorAlberto Ruiz <aruiz@um.es>2015-06-28 14:19:57 +0200
committerAlberto Ruiz <aruiz@um.es>2015-06-28 14:19:57 +0200
commit79fa0200e1d5500f994d88e39d6fddff907a85f8 (patch)
treefa2420ea4220dc94399d9278893c855ad6a340d5 /packages/base/src/Internal/C
parent2749f4ef144cbc8541d70434f46abf312a1bb42e (diff)
pass copied slice to lapack (chol)
Diffstat (limited to 'packages/base/src/Internal/C')
-rw-r--r--packages/base/src/Internal/C/lapack-aux.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/packages/base/src/Internal/C/lapack-aux.c b/packages/base/src/Internal/C/lapack-aux.c
index baa0570..ab78dac 100644
--- a/packages/base/src/Internal/C/lapack-aux.c
+++ b/packages/base/src/Internal/C/lapack-aux.c
@@ -39,7 +39,7 @@ typedef float complex TCF;
39// #endif 39// #endif
40 40
41 41
42// printf("%dx%d %d:%d\n",ar,ac,aXr,aXc); 42#define INFOMAT(M) printf("%dx%d %d:%d\n",M##r,M##c,M##Xr,M##Xc);
43 43
44#define TRACEMAT(M) {int q; printf(" %d x %d: ",M##r,M##c); \ 44#define TRACEMAT(M) {int q; printf(" %d x %d: ",M##r,M##c); \
45 for(q=0;q<M##r*M##c;q++) printf("%.1f ",M##p[q]); printf("\n");} 45 for(q=0;q<M##r*M##c;q++) printf("%.1f ",M##p[q]); printf("\n");}
@@ -857,14 +857,12 @@ int linearSolveSVDC_l(double rcond, KOCMAT(a),KOCMAT(b),OCMAT(x)) {
857 857
858//////////////////// Cholesky factorization ///////////////////////// 858//////////////////// Cholesky factorization /////////////////////////
859 859
860/* Subroutine */ int zpotrf_(char *uplo, integer *n, doublecomplex *a, 860int zpotrf_(char *uplo, integer *n, doublecomplex *a, integer *lda, integer *info);
861 integer *lda, integer *info);
862 861
863int chol_l_H(KOCMAT(a),OCMAT(l)) { 862int chol_l_H(OCMAT(l)) {
864 integer n = ar; 863 integer n = lr;
865 REQUIRES(n>=1 && ac == n && lr==n && lc==n,BAD_SIZE); 864 REQUIRES(n>=1 && lc == n,BAD_SIZE);
866 DEBUGMSG("chol_l_H"); 865 DEBUGMSG("chol_l_H");
867 memcpy(lp,ap,n*n*sizeof(doublecomplex));
868 char uplo = 'U'; 866 char uplo = 'U';
869 integer res; 867 integer res;
870 zpotrf_ (&uplo,&n,lp,&n,&res); 868 zpotrf_ (&uplo,&n,lp,&n,&res);
@@ -881,14 +879,12 @@ int chol_l_H(KOCMAT(a),OCMAT(l)) {
881} 879}
882 880
883 881
884/* Subroutine */ int dpotrf_(char *uplo, integer *n, doublereal *a, integer * 882int dpotrf_(char *uplo, integer *n, doublereal *a, integer * lda, integer *info);
885 lda, integer *info);
886 883
887int chol_l_S(KODMAT(a),ODMAT(l)) { 884int chol_l_S(ODMAT(l)) {
888 integer n = ar; 885 integer n = lr;
889 REQUIRES(n>=1 && ac == n && lr==n && lc==n,BAD_SIZE); 886 REQUIRES(n>=1 && lc == n,BAD_SIZE);
890 DEBUGMSG("chol_l_S"); 887 DEBUGMSG("chol_l_S");
891 memcpy(lp,ap,n*n*sizeof(double));
892 char uplo = 'U'; 888 char uplo = 'U';
893 integer res; 889 integer res;
894 dpotrf_ (&uplo,&n,lp,&n,&res); 890 dpotrf_ (&uplo,&n,lp,&n,&res);