summaryrefslogtreecommitdiff
path: root/src/signalProcessing/ifft/zifftma.c
diff options
context:
space:
mode:
authorjofret2009-04-28 06:57:25 +0000
committerjofret2009-04-28 06:57:25 +0000
commit5bb72c97b02e1cea0dbf008ec16029491956f971 (patch)
treea3b38e2ad33af5514091e67f57e8a60e0fe0cef3 /src/signalProcessing/ifft/zifftma.c
parent5868a7f86c42335cdad7252ea55117acf7bafe83 (diff)
downloadscilab2c-5bb72c97b02e1cea0dbf008ec16029491956f971.tar.gz
scilab2c-5bb72c97b02e1cea0dbf008ec16029491956f971.tar.bz2
scilab2c-5bb72c97b02e1cea0dbf008ec16029491956f971.zip
Moving source code
Diffstat (limited to 'src/signalProcessing/ifft/zifftma.c')
-rw-r--r--src/signalProcessing/ifft/zifftma.c158
1 files changed, 0 insertions, 158 deletions
diff --git a/src/signalProcessing/ifft/zifftma.c b/src/signalProcessing/ifft/zifftma.c
deleted file mode 100644
index 63f91a0c..00000000
--- a/src/signalProcessing/ifft/zifftma.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA - Allan SIMON
- *
- * 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
- *
- */
-#define IFFT842 1
-#define DFFT2 0
-
-#include <malloc.h>
-#include <math.h>
-#include "ifft.h"
-#include "lapack.h"
-#include "ifft_internal.h"
-
-
-void zifftma ( doubleComplex* in , int rows, int cols, doubleComplex* out)
-{
-
- int choosenAlgo = DFFT2 ;
-
- int size = rows*cols ;
- int sizeTemp = 0;
-
- int rowsTemp = 0 ;
- int colsTemp = 0 ;
-
- int ierr = 0 ;
- int isn = 1;
- int i = 0;
-
- int increment=1;
-
- double* realIn = (double*) malloc ( sizeof (double) * (unsigned int) size );
- double* imagIn = (double*) malloc ( sizeof (double) * (unsigned int) size );
- doubleComplex* inCopy = (doubleComplex*) malloc ( sizeof (doubleComplex) * (unsigned int) size );
-
- doubleComplex* inTemp = (doubleComplex*) malloc ( sizeof (doubleComplex) * (unsigned int) size );
-
-
-
- zimaga ( in , size , imagIn) ;
- zreala ( in , size , realIn) ;
- for (i=0;i<size;i++) inCopy[i]=in[i];
-
- if ( rows == 1 || cols == 1 )
- {
-
- sizeTemp = (int) pow(2.0 , log(size + 0.5) / log(2.0)) ;
-
-
- if ( size == sizeTemp )
- {
- if ( size <= pow(2.0, 15.0))
- {
- ifft842 ( inCopy , size , 1 );
- choosenAlgo = IFFT842 ;
- }
- else
- {
- difft2 ( realIn , imagIn , 1 , size , 1 , isn , ierr);
- }
-
-
- }
- else
- {
- difft2 ( realIn , imagIn , 1 , size , 1 , isn , ierr);
- }
-
- }
-
- else
- {
- rowsTemp = (int) pow(2.0, log(rows + 0.5) / log(2.0));
- colsTemp = (int) pow(2.0, log(cols + 0.5) / log(2.0));
-
- if (rows == rowsTemp)
- {
- if (rows <= pow(2.0, 15.0))
- {
- for ( i = 0 ; i < cols ; i++ )
- {
- ifft842 ( &inCopy[ rows*i] , rows , 1);
- zimaga ( inCopy , size , imagIn) ;
- zreala ( inCopy , size , realIn) ;
- }
- }
- else
- {
- difft2 ( realIn, imagIn ,cols , rows , 1 , isn , ierr);
- inCopy=DoubleComplexMatrix(realIn,imagIn,size);
- }
- }
- else
- {
- difft2 ( realIn, imagIn ,cols , rows , 1 , isn , ierr);
- inCopy=DoubleComplexMatrix(realIn,imagIn,size);
- }
-
- /*second call*/
- if ( colsTemp == cols )
- {
- if ( cols <= pow(2.0, 15.0) )
- {
- /*compute the fft on each line of the matrix */
- for (i = 0 ; i < rows ; i++ )
- {
- C2F(zcopy) ( &cols, inCopy + i, &rows, inTemp , &increment );
-
- ifft842( inTemp , cols , 1);
- choosenAlgo = IFFT842 ;
- C2F(zcopy) ( &cols, inTemp , &increment, inCopy + i, &rows);
-
- }
- }
- else
- {
- difft2 ( realIn, imagIn, 1, cols, rows, isn, ierr);
- }
- }
- else
- {
- difft2 ( realIn, imagIn, 1, cols, rows, isn, ierr);
- }
-
- }
-
-
-
- if ( choosenAlgo == IFFT842 )
- {
- for ( i = 0 ; i < size ; i++)
- {
- out[i] = DoubleComplex ( zreals(inCopy[i]) , zimags(inCopy[i]) );
- }
- }
- else
- {
- for ( i = 0 ; i < size ; i++)
- {
- out[i] = DoubleComplex ( realIn[i] , imagIn[i] );
- }
-
- }
-
- free(realIn);
- free(imagIn);
- free(inCopy);
- free(inTemp);
-
-
-}