diff options
Diffstat (limited to 'src/matrixOperations')
-rw-r--r-- | src/matrixOperations/chol/cchola.c | 1 | ||||
-rw-r--r-- | src/matrixOperations/chol/schola.c | 2 | ||||
-rw-r--r-- | src/matrixOperations/chol/testDoubleChol.c | 1 | ||||
-rw-r--r-- | src/matrixOperations/determ/cdeterma.c | 2 | ||||
-rw-r--r-- | src/matrixOperations/determ/ddeterma.c | 2 | ||||
-rw-r--r-- | src/matrixOperations/determ/sdeterma.c | 2 | ||||
-rw-r--r-- | src/matrixOperations/determ/zdeterma.c | 2 | ||||
-rw-r--r-- | src/matrixOperations/division/cldivma.c | 2 | ||||
-rw-r--r-- | src/matrixOperations/division/srdivma.c | 2 | ||||
-rw-r--r-- | src/matrixOperations/division/testMatrixRDivision.c | 3 | ||||
-rw-r--r-- | src/matrixOperations/inversion/dinverma.c | 3 | ||||
-rw-r--r-- | src/matrixOperations/inversion/zinverma.c | 3 | ||||
-rw-r--r-- | src/matrixOperations/logm/clogma.c | 4 | ||||
-rw-r--r-- | src/matrixOperations/logm/dlogma.c | 2 | ||||
-rw-r--r-- | src/matrixOperations/logm/slogma.c | 5 | ||||
-rw-r--r-- | src/matrixOperations/logm/testDoubleLogm.c | 3 | ||||
-rw-r--r-- | src/matrixOperations/logm/zlogma.c | 8 |
17 files changed, 42 insertions, 5 deletions
diff --git a/src/matrixOperations/chol/cchola.c b/src/matrixOperations/chol/cchola.c index a00718c1..4ebf473e 100644 --- a/src/matrixOperations/chol/cchola.c +++ b/src/matrixOperations/chol/cchola.c @@ -54,6 +54,7 @@ void cchola(floatComplex * in, int size, floatComplex *out){ out[j+i*size]=FloatComplex(0,0); } } + free(tmp); #else /* Do not use Lapack functions*/ diff --git a/src/matrixOperations/chol/schola.c b/src/matrixOperations/chol/schola.c index 1c9e9a6e..79c739b9 100644 --- a/src/matrixOperations/chol/schola.c +++ b/src/matrixOperations/chol/schola.c @@ -46,7 +46,7 @@ void schola(float * in, int size, float *out){ out[j+i*size]=0; } } - + free(tmp); #else /* Do not use Lapack functions*/ int i=0, j=0, k=0; diff --git a/src/matrixOperations/chol/testDoubleChol.c b/src/matrixOperations/chol/testDoubleChol.c index bf58480c..b96888ff 100644 --- a/src/matrixOperations/chol/testDoubleChol.c +++ b/src/matrixOperations/chol/testDoubleChol.c @@ -91,6 +91,7 @@ static void zcholaTest(void){ if (zimags(out[i])>1e-16) assert( (fabs(zimags(out[i])-resI[i]) / fabs(zimags(out[i]))) <1e-15); } + free(out); } diff --git a/src/matrixOperations/determ/cdeterma.c b/src/matrixOperations/determ/cdeterma.c index 343b0a83..f55a6703 100644 --- a/src/matrixOperations/determ/cdeterma.c +++ b/src/matrixOperations/determ/cdeterma.c @@ -138,6 +138,8 @@ floatComplex cdeterma(floatComplex *in, int size){ for (i=0;i<size;i++){ out = cmuls(out,inCopy[i*size+i]); } + free(inCopy); + break; } #endif diff --git a/src/matrixOperations/determ/ddeterma.c b/src/matrixOperations/determ/ddeterma.c index 75ee6ed9..4c1703e1 100644 --- a/src/matrixOperations/determ/ddeterma.c +++ b/src/matrixOperations/determ/ddeterma.c @@ -84,6 +84,8 @@ double ddeterma(double * in, int size){ for (i=0;i<size;i++){ out *= inCopy[i*size+i]; } + free(inCopy); + break; } #endif diff --git a/src/matrixOperations/determ/sdeterma.c b/src/matrixOperations/determ/sdeterma.c index bef0d728..cdb4d1f7 100644 --- a/src/matrixOperations/determ/sdeterma.c +++ b/src/matrixOperations/determ/sdeterma.c @@ -84,6 +84,8 @@ float sdeterma(float * in, int size){ for (i=0;i<size;i++){ out *= inCopy[i*size+i]; } + free(inCopy); + break; } diff --git a/src/matrixOperations/determ/zdeterma.c b/src/matrixOperations/determ/zdeterma.c index 73ab692a..a1d8b879 100644 --- a/src/matrixOperations/determ/zdeterma.c +++ b/src/matrixOperations/determ/zdeterma.c @@ -127,6 +127,8 @@ doubleComplex zdeterma(doubleComplex * in, int size){ for (i=0;i<size;i++){ out = zmuls(out,inCopy[i*size+i]); } + free(inCopy); + break; } #endif return out; diff --git a/src/matrixOperations/division/cldivma.c b/src/matrixOperations/division/cldivma.c index b912a7de..9e95b468 100644 --- a/src/matrixOperations/division/cldivma.c +++ b/src/matrixOperations/division/cldivma.c @@ -10,7 +10,7 @@ * */ - +/******FIXME********/ /**** WARNING NOT WORK AT ALL FOR THE MOMENT ***/ /**** Because of problem of conversion float-> double ****/ #include "matrixDivision.h" diff --git a/src/matrixOperations/division/srdivma.c b/src/matrixOperations/division/srdivma.c index a4ecad61..f1706ccd 100644 --- a/src/matrixOperations/division/srdivma.c +++ b/src/matrixOperations/division/srdivma.c @@ -10,7 +10,7 @@ * */ - +/****FIXME****/ /**** WARNING NOT WORK AT ALL FOR THE MOMENT ***/ /**** Because of problem of conversion float-> double ****/ #include "matrixDivision.h" diff --git a/src/matrixOperations/division/testMatrixRDivision.c b/src/matrixOperations/division/testMatrixRDivision.c index 87c58461..2fb086a7 100644 --- a/src/matrixOperations/division/testMatrixRDivision.c +++ b/src/matrixOperations/division/testMatrixRDivision.c @@ -451,6 +451,9 @@ static void zrdivmaTest ( void ){ assert ( fabs( zimags(out[i]) - zimags (Result[i]) ) / fabs (zimags (out[i])) < 1e-15 ) ; } + + free(Result); + free(out); } static int testRDivma (void) { diff --git a/src/matrixOperations/inversion/dinverma.c b/src/matrixOperations/inversion/dinverma.c index 56161942..6f2508fd 100644 --- a/src/matrixOperations/inversion/dinverma.c +++ b/src/matrixOperations/inversion/dinverma.c @@ -30,6 +30,9 @@ void dinverma ( double* in, double* out, int leadDimIn ) dgetrf_ ( &leadDimIn, &leadDimIn, out, &leadDimIn, vectPivot, &info ); dgetri_ ( &leadDimIn, out, &leadDimIn , vectPivot, work , &leadDimIn , &info ); + + free(vectPivot); + free(work); } diff --git a/src/matrixOperations/inversion/zinverma.c b/src/matrixOperations/inversion/zinverma.c index 8bb69661..bc9d80b1 100644 --- a/src/matrixOperations/inversion/zinverma.c +++ b/src/matrixOperations/inversion/zinverma.c @@ -30,6 +30,7 @@ void zinverma ( doubleComplex* in, doubleComplex* out, int leadDimIn ) zgetrf_ ( &leadDimIn, &leadDimIn, out, &leadDimIn, vectPivot, &info ); zgetri_ ( &leadDimIn, out, &leadDimIn , vectPivot, work , &leadDimIn , &info ); - + free(vectPivot); + free(work); } diff --git a/src/matrixOperations/logm/clogma.c b/src/matrixOperations/logm/clogma.c index ebad5814..f2614b0e 100644 --- a/src/matrixOperations/logm/clogma.c +++ b/src/matrixOperations/logm/clogma.c @@ -30,6 +30,10 @@ void clogma (floatComplex* in, int size, floatComplex* out){ for(i=0;i<size*size;i++) out[i]=FloatComplex( (float)zreals(outCopy[i]),(float)zimags(outCopy[i])); + + + free(inCopy); + free(outCopy); } diff --git a/src/matrixOperations/logm/dlogma.c b/src/matrixOperations/logm/dlogma.c index 0cee3c09..8a4986b5 100644 --- a/src/matrixOperations/logm/dlogma.c +++ b/src/matrixOperations/logm/dlogma.c @@ -23,4 +23,6 @@ void dlogma (double* in, int size, doubleComplex* out){ for (i=0;i<size*size;i++) inCpx[i] = DoubleComplex(in[i],0); zlogma(inCpx, size, out); + + free(inCpx); } diff --git a/src/matrixOperations/logm/slogma.c b/src/matrixOperations/logm/slogma.c index 319c82f2..930bf752 100644 --- a/src/matrixOperations/logm/slogma.c +++ b/src/matrixOperations/logm/slogma.c @@ -26,5 +26,8 @@ void slogma (float* in, int size, floatComplex* out){ zlogma(inCpx, size, outCopy); for(i=0;i<size*size;i++) - out[i]=FloatComplex( (float)zreals(outCopy[i]),(float)zimags(outCopy[i])); + out[i]=FloatComplex( (float)zreals(outCopy[i]),(float)zimags(outCopy[i])); + + free(inCpx); + free(outCopy); } diff --git a/src/matrixOperations/logm/testDoubleLogm.c b/src/matrixOperations/logm/testDoubleLogm.c index 44deb745..8b31b857 100644 --- a/src/matrixOperations/logm/testDoubleLogm.c +++ b/src/matrixOperations/logm/testDoubleLogm.c @@ -31,6 +31,9 @@ static void zlogmaTest(void){ zlogma(in,3,out); for(i=0;i<9;i++) printf("out[%d] = %f + %f *i\n",i,zreals(out[i]),zimags(out[i])); + + free(in); + free(out); } static int logmTest(void){ diff --git a/src/matrixOperations/logm/zlogma.c b/src/matrixOperations/logm/zlogma.c index 8fb2fa38..37516822 100644 --- a/src/matrixOperations/logm/zlogma.c +++ b/src/matrixOperations/logm/zlogma.c @@ -103,5 +103,13 @@ void zlogma (doubleComplex* in, int size, doubleComplex* out){ /* Vp * diag(log(diag(vp))*inv(Vp) */ zmulma(tmp, size, size, eigenvectors, size, size, out); + + free(eigenvalues); + free(eigenvectors); + free(tmp); + free(pdblWork); + free(pdblRWork); + free(inCopy); + } |