diff options
author | Sandeep Gupta | 2017-07-07 00:29:35 +0530 |
---|---|---|
committer | Sandeep Gupta | 2017-07-07 00:29:35 +0530 |
commit | 894c9fb4cc78053689aabc4aa351b867de12a543 (patch) | |
tree | b18a07c96e3db8099d36a2a0ce20732eab0f1abf /2.3-1/src/c/matrixOperations/spec/zspeca.c | |
parent | 850c0ff1ca5cd660b76d0568a215bab0547312ad (diff) | |
download | Scilab2C-894c9fb4cc78053689aabc4aa351b867de12a543.tar.gz Scilab2C-894c9fb4cc78053689aabc4aa351b867de12a543.tar.bz2 Scilab2C-894c9fb4cc78053689aabc4aa351b867de12a543.zip |
NORM
Diffstat (limited to '2.3-1/src/c/matrixOperations/spec/zspeca.c')
-rw-r--r-- | 2.3-1/src/c/matrixOperations/spec/zspeca.c | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/2.3-1/src/c/matrixOperations/spec/zspeca.c b/2.3-1/src/c/matrixOperations/spec/zspeca.c deleted file mode 100644 index a2b1c25a..00000000 --- a/2.3-1/src/c/matrixOperations/spec/zspeca.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab - * Copyright (C) 2008 - INRIA - Arnaud TORSET - * - * This file must be used under the terms of the CeCILL. - * This source file is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at - * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt - * - */ - -#include <stdlib.h> -#include "spec.h" -#include "lapack.h" -#include "zeros.h" -#include "conj.h" - -void zspeca(doubleComplex* in, int rows,doubleComplex* out){ - int i = 0, j = 0; - int hermitian = 0; - int INFO = 0; - int iWorkSize = 0; - doubleComplex* pdblWork; - doubleComplex* pdblLeftvectors; - doubleComplex* pdblRightvectors; - doubleComplex* pdblRWork; - double* outReal; - double* outImag; - doubleComplex* inCopy; - - inCopy = (doubleComplex*)malloc((unsigned int)(rows*rows) * sizeof(doubleComplex)); - outReal = (double*)malloc((unsigned int)rows * sizeof(double)); - outImag = (double*)malloc((unsigned int)rows * sizeof(double)); - pdblLeftvectors=NULL; - pdblRightvectors=NULL; - - iWorkSize = 2*rows; - pdblWork = (doubleComplex*)malloc((unsigned int)iWorkSize * sizeof(doubleComplex)); - pdblRWork = (doubleComplex*)malloc((unsigned int)(3*rows) * sizeof(doubleComplex)); - - for(i=0;i<rows*rows;i++) inCopy[i]=DoubleComplex(zreals(in[i]),zimags(in[i])); - - /* look if the matrix is symmetric */ - for (i=0;i<rows;i++){ - for (j=0;j<rows;j++) - if ( (zreals(in[i*rows+j])!=zreals(zconjs(in[i+j*rows]))) || - (zimags(in[i*rows+j])!=zimags(zconjs(in[i+j*rows]))) ) - break; - if (j!=rows) break; - } - - - /* the matrix is symmetric if the 2 loops goes to end i.e - i==rows and j==rows */ - if ((i==rows)&&(j==rows)) hermitian=1; - - - /* apply lapack function according to symmetry */ - if(hermitian){ - C2F(zheev)( "N", "U", &rows, inCopy, &rows, outReal, pdblWork, &iWorkSize, outImag, &INFO ); - dzerosa(outImag,1,rows); - for (i=0;i<rows;i++) out[i]=DoubleComplex(outReal[i],outImag[i]); - } - else { - C2F(zgeev)( "N", "N", &rows, inCopy, &rows, out, - pdblLeftvectors, &rows, pdblRightvectors, &rows, pdblWork, &iWorkSize, - pdblRWork, &INFO ); - } - - - - free(inCopy); - free(outReal); - free(outImag); - free(pdblWork); - free(pdblRWork); - free(pdblLeftvectors); - free(pdblRightvectors); -} |