From 0b94d86a41dd247b5a6bf1e22e327dab4376e8ba Mon Sep 17 00:00:00 2001 From: torset Date: Wed, 18 Feb 2009 16:13:40 +0000 Subject: zlogma use now spec2 --- src/matrixOperations/logm/Makefile.am | 39 ++++++++++---------- src/matrixOperations/logm/Makefile.in | 39 ++++++++++---------- src/matrixOperations/logm/zlogma.c | 69 +++++++---------------------------- 3 files changed, 54 insertions(+), 93 deletions(-) diff --git a/src/matrixOperations/logm/Makefile.am b/src/matrixOperations/logm/Makefile.am index 85e8d7f2..cb69e8f0 100644 --- a/src/matrixOperations/logm/Makefile.am +++ b/src/matrixOperations/logm/Makefile.am @@ -42,23 +42,25 @@ libLogm_la_SOURCES = $(HEAD) \ check_PROGRAMS = testDoubleLogm check_LDADD = $(top_builddir)/type/libDoubleComplex.la \ - $(top_builddir)/type/libFloatComplex.la \ - $(top_builddir)/lib/lapack/libscilapack.la \ - $(top_builddir)/lib/blas/libsciblas.la \ - $(top_builddir)/elementaryFunctions/log/libLog.la \ - $(top_builddir)/elementaryFunctions/sqrt/libSqrt.la \ - $(top_builddir)/elementaryFunctions/log1p/libLog1p.la \ - $(top_builddir)/elementaryFunctions/lnp1m1/libLnp1m1.la \ - $(top_builddir)/auxiliaryFunctions/abs/libAbs.la \ - $(top_builddir)/auxiliaryFunctions/conj/libConj.la \ - $(top_builddir)/auxiliaryFunctions/pythag/libPythag.la \ - $(top_builddir)/auxiliaryFunctions/sign/libSign.la \ - $(top_builddir)/operations/multiplication/libMultiplication.la \ - $(top_builddir)/operations/addition/libAddition.la \ - $(top_builddir)/matrixOperations/multiplication/libMatrixMultiplication.la \ - $(top_builddir)/matrixOperations/transpose/libMatrixTranspose.la \ - $(top_builddir)/matrixOperations/inversion/libMatrixInversion.la \ - $(top_builddir)/matrixOperations/logm/libLogm.la + $(top_builddir)/type/libFloatComplex.la \ + $(top_builddir)/lib/lapack/libscilapack.la \ + $(top_builddir)/lib/blas/libsciblas.la \ + $(top_builddir)/elementaryFunctions/log/libLog.la \ + $(top_builddir)/elementaryFunctions/sqrt/libSqrt.la \ + $(top_builddir)/elementaryFunctions/log1p/libLog1p.la \ + $(top_builddir)/elementaryFunctions/lnp1m1/libLnp1m1.la \ + $(top_builddir)/auxiliaryFunctions/abs/libAbs.la \ + $(top_builddir)/auxiliaryFunctions/conj/libConj.la \ + $(top_builddir)/auxiliaryFunctions/pythag/libPythag.la \ + $(top_builddir)/auxiliaryFunctions/sign/libSign.la \ + $(top_builddir)/operations/multiplication/libMultiplication.la \ + $(top_builddir)/operations/addition/libAddition.la \ + $(top_builddir)/matrixOperations/multiplication/libMatrixMultiplication.la \ + $(top_builddir)/matrixOperations/transpose/libMatrixTranspose.la \ + $(top_builddir)/matrixOperations/inversion/libMatrixInversion.la \ + $(top_builddir)/matrixOperations/spec2/libSpec2.la \ + $(top_builddir)/matrixOperations/zeros/libMatrixZeros.la \ + $(top_builddir)/matrixOperations/logm/libLogm.la check_INCLUDES = -I ./includes \ @@ -66,8 +68,7 @@ check_INCLUDES = -I ./includes \ -I $(top_builddir)/elementaryFunctions/includes \ -I $(top_builddir)/operations/includes \ -I $(top_builddir)/auxiliaryFunctions/includes \ - -I $(top_builddir)/matrixOperations/includes\ - -I $(top_builddir)/matrixOperations/logm + -I $(top_builddir)/matrixOperations/includes testDoubleLogm_SOURCES = testDoubleLogm.c testDoubleLogm_LDADD = $(check_LDADD) diff --git a/src/matrixOperations/logm/Makefile.in b/src/matrixOperations/logm/Makefile.in index 93b2dc6f..cb74434a 100644 --- a/src/matrixOperations/logm/Makefile.in +++ b/src/matrixOperations/logm/Makefile.in @@ -210,31 +210,32 @@ libLogm_la_SOURCES = $(HEAD) \ dlogma.c check_LDADD = $(top_builddir)/type/libDoubleComplex.la \ - $(top_builddir)/type/libFloatComplex.la \ - $(top_builddir)/lib/lapack/libscilapack.la \ - $(top_builddir)/lib/blas/libsciblas.la \ - $(top_builddir)/elementaryFunctions/log/libLog.la \ - $(top_builddir)/elementaryFunctions/sqrt/libSqrt.la \ - $(top_builddir)/elementaryFunctions/log1p/libLog1p.la \ - $(top_builddir)/elementaryFunctions/lnp1m1/libLnp1m1.la \ - $(top_builddir)/auxiliaryFunctions/abs/libAbs.la \ - $(top_builddir)/auxiliaryFunctions/conj/libConj.la \ - $(top_builddir)/auxiliaryFunctions/pythag/libPythag.la \ - $(top_builddir)/auxiliaryFunctions/sign/libSign.la \ - $(top_builddir)/operations/multiplication/libMultiplication.la \ - $(top_builddir)/operations/addition/libAddition.la \ - $(top_builddir)/matrixOperations/multiplication/libMatrixMultiplication.la \ - $(top_builddir)/matrixOperations/transpose/libMatrixTranspose.la \ - $(top_builddir)/matrixOperations/inversion/libMatrixInversion.la \ - $(top_builddir)/matrixOperations/logm/libLogm.la + $(top_builddir)/type/libFloatComplex.la \ + $(top_builddir)/lib/lapack/libscilapack.la \ + $(top_builddir)/lib/blas/libsciblas.la \ + $(top_builddir)/elementaryFunctions/log/libLog.la \ + $(top_builddir)/elementaryFunctions/sqrt/libSqrt.la \ + $(top_builddir)/elementaryFunctions/log1p/libLog1p.la \ + $(top_builddir)/elementaryFunctions/lnp1m1/libLnp1m1.la \ + $(top_builddir)/auxiliaryFunctions/abs/libAbs.la \ + $(top_builddir)/auxiliaryFunctions/conj/libConj.la \ + $(top_builddir)/auxiliaryFunctions/pythag/libPythag.la \ + $(top_builddir)/auxiliaryFunctions/sign/libSign.la \ + $(top_builddir)/operations/multiplication/libMultiplication.la \ + $(top_builddir)/operations/addition/libAddition.la \ + $(top_builddir)/matrixOperations/multiplication/libMatrixMultiplication.la \ + $(top_builddir)/matrixOperations/transpose/libMatrixTranspose.la \ + $(top_builddir)/matrixOperations/inversion/libMatrixInversion.la \ + $(top_builddir)/matrixOperations/spec2/libSpec2.la \ + $(top_builddir)/matrixOperations/zeros/libMatrixZeros.la \ + $(top_builddir)/matrixOperations/logm/libLogm.la check_INCLUDES = -I ./includes \ -I $(top_builddir)/type \ -I $(top_builddir)/elementaryFunctions/includes \ -I $(top_builddir)/operations/includes \ -I $(top_builddir)/auxiliaryFunctions/includes \ - -I $(top_builddir)/matrixOperations/includes\ - -I $(top_builddir)/matrixOperations/logm + -I $(top_builddir)/matrixOperations/includes testDoubleLogm_SOURCES = testDoubleLogm.c testDoubleLogm_LDADD = $(check_LDADD) diff --git a/src/matrixOperations/logm/zlogma.c b/src/matrixOperations/logm/zlogma.c index 5a10151e..3a629bfd 100644 --- a/src/matrixOperations/logm/zlogma.c +++ b/src/matrixOperations/logm/zlogma.c @@ -20,6 +20,7 @@ #include "matrixInversion.h" #include "max.h" #include "conj.h" +#include "spec.h" void zlogma (doubleComplex* in, int rows, doubleComplex* out){ @@ -30,77 +31,37 @@ void zlogma (doubleComplex* in, int rows, doubleComplex* out){ * logm = Vp * diag(log(diag(vp)) * inv(Vp) */ - int i; + int i = 0,j = 0; doubleComplex *eigenvalues, *eigenvectors, *tmp; int hermitienne = 0; - int info = 0; /* Used by LAPACK */ - int iWorkSize = 0; /* Used by LAPACK */ - doubleComplex *pdblWork = NULL; /* Used by LAPACK */ - doubleComplex *pdblRWork = NULL; /* Used by LAPACK */ - doubleComplex * pdblLeftvectors = NULL; /* Used by LAPACK */ - - - + /* Data initialization */ eigenvalues = malloc((uint)(rows*rows)*sizeof(doubleComplex)); eigenvectors = malloc((uint)(rows*rows)*sizeof(doubleComplex)); tmp = malloc((uint)(rows*rows)*sizeof(doubleComplex)); - iWorkSize = max(1,2*rows); - pdblWork = malloc((uint)(iWorkSize)*sizeof(doubleComplex)); - pdblRWork = malloc((uint)(2*rows)*sizeof(doubleComplex)); - - /* Copy in in inCopy */ - for (i=0;i=0;i--) { - /* on le fait en descendant sinon on écrase l'element 0 alors qu'il doit etre réutilisé - ---> erreur */ - if ( ((i+i*rows)/rows)%2 == 0) - eigenvalues[i*rows+i] = DoubleComplex(zreals(eigenvalues[(i*rows+i)/(2*rows)]),0); - else eigenvalues[i*rows+i] = DoubleComplex(zimags(eigenvalues[(i*rows+i)/(2*rows)]),0); - } - for (i=1;i