diff options
Diffstat (limited to 'src/matrixOperations/logm')
-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 |
5 files changed, 21 insertions, 1 deletions
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); + } |