summaryrefslogtreecommitdiff
path: root/src/matrixOperations/logm
diff options
context:
space:
mode:
Diffstat (limited to 'src/matrixOperations/logm')
-rw-r--r--src/matrixOperations/logm/clogma.c4
-rw-r--r--src/matrixOperations/logm/dlogma.c2
-rw-r--r--src/matrixOperations/logm/slogma.c5
-rw-r--r--src/matrixOperations/logm/testDoubleLogm.c3
-rw-r--r--src/matrixOperations/logm/zlogma.c8
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);
+
}