summaryrefslogtreecommitdiff
path: root/src/signalProcessing/fft
diff options
context:
space:
mode:
authorsimon2008-10-14 09:54:09 +0000
committersimon2008-10-14 09:54:09 +0000
commit6ce212d9640c16f9dcd39b4b9cb279f7d6b52a2f (patch)
tree54efb3dcd55c15153fce9dead3943df8a6f0b4d4 /src/signalProcessing/fft
parent0f24a30eaf966d89eb7861a6aa375bce0d21855c (diff)
downloadscilab2c-6ce212d9640c16f9dcd39b4b9cb279f7d6b52a2f.tar.gz
scilab2c-6ce212d9640c16f9dcd39b4b9cb279f7d6b52a2f.tar.bz2
scilab2c-6ce212d9640c16f9dcd39b4b9cb279f7d6b52a2f.zip
added the problematic test , make check should failed
Diffstat (limited to 'src/signalProcessing/fft')
-rw-r--r--src/signalProcessing/fft/dfftbi.c56
-rw-r--r--src/signalProcessing/fft/dfftmx.c103
-rw-r--r--src/signalProcessing/fft/fft_internal.h1
-rw-r--r--src/signalProcessing/fft/testDoubleFft.c66
4 files changed, 163 insertions, 63 deletions
diff --git a/src/signalProcessing/fft/dfftbi.c b/src/signalProcessing/fft/dfftbi.c
index 90494ca3..c840903e 100644
--- a/src/signalProcessing/fft/dfftbi.c
+++ b/src/signalProcessing/fft/dfftbi.c
@@ -74,7 +74,7 @@ void dfftbi ( double* a , double* b , int nseg , int n , int nspn ,
int nf = abs ( n ) ;
ierr = 0 ;
- printf ( "debut de dfftbi \n" );
+ //printf ( "debut de dfftbi \n" );
/*determine the factors of n */
@@ -86,7 +86,7 @@ void dfftbi ( double* a , double* b , int nseg , int n , int nspn ,
nspan = abs ( nf*nspn ) ;
ntot = abs ( nspan*nseg) ;
- printf ( "nspan %d \t ntot %d\n" , nspan ,ntot );
+ //printf ( "nspan %d \t ntot %d\n" , nspan ,ntot );
if ( isn*ntot == 0 )
{
ierr = 1 ;
@@ -99,14 +99,14 @@ void dfftbi ( double* a , double* b , int nseg , int n , int nspn ,
while ( (k- (int)(k/16)*16 ) == 0 )
{
m++;
- printf ("k/16*16\t m %d ,k %d ,k2 %d\n" , m , k ,(int) (k/16)*16 );
+ //printf ("k/16*16\t m %d ,k %d ,k2 %d\n" , m , k ,(int) (k/16)*16 );
nfac[m-1] = 4 ;
k = k >> 4 ;
}
-printf ("avant ploa k %d\n\n" , k );
+//printf ("avant ploa k %d\n\n" , k );
do
{
while ( k%jj == 0 )
@@ -114,21 +114,21 @@ printf ("avant ploa k %d\n\n" , k );
m++;
nfac[m-1] = j ;
k /= jj ;
- printf ("\nm %d ,k %d j %d jj %d\n" , m , k ,j , jj);
+ //printf ("\nm %d ,k %d j %d jj %d\n" , m , k ,j , jj);
}
- printf ("40-40 \n" );
+ //printf ("40-40 \n" );
j+=2;
jj= j*j ;
}while ( jj <= k);
-printf ( "ploa\n" );
+//printf ( "ploa\n" );
if ( k <= 4)
{
- printf ("50-50 k %d\t m %d\n" , k , m );
+ //printf ("50-50 k %d\t m %d\n" , k , m );
kt = m;
nfac[m] = k;
if ( k != 1 )
@@ -147,11 +147,12 @@ printf ( "ploa\n" );
kt = m ;
maxp = max ( (kt+1)*2 , k-1);
j=2;
- printf ( "plob\n" );
+ //printf ( "plob\n" );
do
{
if ( k%j == 0 )
{
+ //printf ( "70 - 80 dans modulo k %d, j %d , m %d\n" , k , j , m + 1 );
m++;
nfac[m-1] = j ;
k /= j ;
@@ -168,42 +169,42 @@ printf ( "ploa\n" );
if ( m <= ( kt+1) )
maxp = m + kt + 1 ;
- printf ( "90 m %d \t kt %d\n" , m , kt );
+ //printf ( "90 m %d \t kt %d\n" , m , kt );
if ( m + kt > 15)
{
ierr = 2 ;
- printf ( "argh return 5 \n" );
+ //printf ( "argh return 5 \n" );
return ;
}
/** you are here mister allan **/
- printf ( "avant test kt , kt =%d\n" , kt );
+ //printf ( "avant test kt , kt =%d\n" , kt );
if ( kt != 0 )
{
j = kt ;
do{
m++;
- printf ( "100 m %d\t j %d\t nfac[j-1] %d \n" , m , j , nfac[j-1]);
+ //printf ( "100 m %d\t j %d\t nfac[j-1] %d \n" , m , j , nfac[j-1]);
nfac[m-1] = nfac[j-1];
j--;
}while ( j != 0) ;
}
- printf ( "110 maxf %d \tnfac[maxf-1] %d\n" , m-kt , nfac[m-kt-1]);
+ //printf ( "110 maxf %d \tnfac[maxf-1] %d\n" , m-kt , nfac[m-kt-1]);
maxf = nfac[m-kt-1] ;
if ( kt > 0 )
maxf = max ( nfac[kt-1] , maxf );
- printf ( "avant kkk \tm %d\t maxf %d \n" ,m , maxf);
+ //printf ( "avant kkk \tm %d\t maxf %d \n" ,m , maxf);
for ( kkk = 1 ; kkk <= m ; kkk++ )
{
maxf = max ( maxf , nfac[kkk-1]);
- printf ( "boucle kkk maxf %d nfac %d \tm %d\n" , maxf , nfac[kkk-1] ,m);
+ //printf ( "boucle kkk maxf %d nfac %d \tm %d\n" , maxf , nfac[kkk-1] ,m);
}
@@ -221,7 +222,7 @@ printf ( "ploa\n" );
/*i = ( (istkgt - 1 + nitems) * isize[3] -1) + 3 ;*/
i = 12 + nitems*2;
- printf ("i %d ,\n lmax %d\n istkgt %d\n lnow %d \n", i , lmax , istkgt , lnow ) ;
+ //printf ("i %d ,\n lmax %d\n istkgt %d\n lnow %d \n", i , lmax , istkgt , lnow ) ;
istak = (int*) malloc ( sizeof (int) * (unsigned int) i);
@@ -247,7 +248,7 @@ printf ( "ploa\n" );
istak = (int*) realloc ( istak ,sizeof (int) * (unsigned int) i);
rstak = (double*) malloc ( sizeof (double) * (unsigned int) i);
- printf ("i %d ,\n lmax %d\n istkgt %d\n lnow %d \n", i , lmax , istkgt , lnow ) ;
+ //printf ("i %d ,\n lmax %d\n istkgt %d\n lnow %d \n", i , lmax , istkgt , lnow ) ;
@@ -268,9 +269,9 @@ c k=2*k-1
c *********************************************
*/
- printf ( "dfftmx me voilĂ  tayoooooooo \n" );
- printf ( "ntot \t%d\n"
- "nf \t%d\n"
+ //printf ( "dfftmx me voilĂ  tayoooooooo \n" );
+ //printf ( "ntot \t%d\n"
+ /* "nf \t%d\n"
"nspan\t%d\t\n"
"isn\t%d\t\n"
"m\t%d\t\n"
@@ -281,6 +282,11 @@ c *********************************************
"j3\t%d\n"
"k\t%d\n"
, ntot , nf , nspan , isn , m , kt , j ,jj, j2,j3 , k );
+*/
+ for (i = 0 ; i < 15 ; i++ )
+ //printf ( "\t nfac[%d] = %d\n" , i , nfac[i]) ;
+
+
dfftmx( a , b , ntot , nf , nspan , isn , m , kt , &rstak[j-1] , &rstak[jj-1] , &rstak[j2-1] , &rstak[j3-1] , &istak[k-1] , nfac);
k =2 ;
@@ -289,18 +295,18 @@ c *********************************************
/** plop */
int iii = 0 ;
- printf ("\n\n" );
+ //printf ("\n\n" );
for ( iii = 0 ; iii < 3 ; iii++)
{
- printf ("\t\t %d dfftbi : %f \t %f\n" , iii ,a[iii], b[iii]);
+ //printf ("\t\t %d dfftbi : %f \t %f\n" , iii ,a[iii], b[iii]);
}
/** plop */
if (!( lbook <= lnow && lnow <= lused && lused <= lmax ))
{
ierr = 3 ;
- printf ( "argh return 6 \n" );
+ //printf ( "argh return 6 \n" );
return ;
}
@@ -315,6 +321,6 @@ c *********************************************
lnow = istak[lnow-1] ;
in-- ;
}
- printf ( "fin de dfftbi \n" );
+ //printf ( "fin de dfftbi \n" );
return ;
}
diff --git a/src/signalProcessing/fft/dfftmx.c b/src/signalProcessing/fft/dfftmx.c
index cbc724b7..26c995a3 100644
--- a/src/signalProcessing/fft/dfftmx.c
+++ b/src/signalProcessing/fft/dfftmx.c
@@ -11,6 +11,7 @@
*/
#include <stdlib.h>
+#include <stdio.h>
#include <math.h>
#include "max.h"
#include "min.h"
@@ -123,21 +124,21 @@ int dfftmx ( double* _pdblA , double* _pdblB , int _iNtot, int _iN, int _iNspan,
s120= sqrt(0.750);
int iii = 0 ;
- printf ("\n\n" );
+ //fprintf (stderr , "\n\n" );
for ( iii = 0 ; iii < 3 ; iii++)
{
- printf ("\t\t %d tot : %f \t %f\n" , iii ,a[iii], b[iii]);
+ //fprintf (stderr , "\t\t %d tot : %f \t %f\n" , iii ,a[iii], b[iii]);
}
- printf ( "preliminary\n" );
+ //fprintf (stderr , "preliminary\n" );
preliminaryWork () ;
while ( retVal == 0 )
{
- printf ( "factortransform\n" );
+ //fprintf (stderr , "factortransform\n" );
retVal = factorTransform ( ) ;
}
@@ -146,20 +147,22 @@ int dfftmx ( double* _pdblA , double* _pdblB , int _iNtot, int _iN, int _iNspan,
if ( kt != 0)
{
- printf ( "permute stage 1\n" );
+ //fprintf (stderr , "permute stage 1\n" );
permute_stage1 ( ) ;
}
if ( 2*kt + 1 < m )
{
- printf ( "permute stage 2\n" );
+ //fprintf (stderr , "permute stage 2\n" );
permute_stage2 ( ) ;
}
+
+/* lines under are just for my own conveniance */
for ( iii = 0 ; iii < 3 ; iii++)
{
- printf ("\t\t out %d tot : %f \t %f\n" , iii ,a[iii], b[iii]);
+ //fprintf (stderr , "\t\t out %d tot : %f \t %f\n" , iii ,a[iii], b[iii]);
}
@@ -213,6 +216,8 @@ void preliminaryWork (void)
maxf = m -kt ;
maxf = nfac[maxf-1] ;
+ //fprintf (stderr , "\tm - kt %d , nfac %d kt %d\n" , m - kt , maxf , kt);
+
if ( kt > 0 )
maxf = max ( nfac[kt-1] , maxf );
@@ -232,16 +237,16 @@ int factorTransform (void)
sd = sin(dr*rad) ;
kk = 1 ;
i++ ;
-
+ //fprintf (stderr , "avant switch i %d ,nfac[i-1] %d\n" , i , nfac[i-1]);
switch ( nfac[i-1] )
{
case 2 :
/*transform for factor of 2 (including rotation factor)*/
- printf ( "\tpre_fOf2Trans\n" );
+ //fprintf (stderr , "\tpre_fOf2Trans\n" );
retVal = pre_fOf2Trans( ) ;
if ( retVal == 0 )
{
- printf ( "\tfactorOf2Transform\n" );
+ //fprintf (stderr , "\tfactorOf2Transform\n" );
factorOf2Transform ( ) ;
}
@@ -252,26 +257,26 @@ switch ( nfac[i-1] )
kspnn = kspan ;
kspan = kspan >> 2 ; /*kspan /= 4 */
- printf ( "\tfactorOf4Transform\n" );
+ //fprintf (stderr , "\tfactorOf4Transform\n" );
retVal = factorOf4Transform ( ) ;
break ;
case 3 :
- printf ( "\tfactorOf3Transform\n" );
+ //fprintf (stderr , "\tfactorOf3Transform\n" );
k = nfac[i-1] ;
kspnn = kspan ;
kspan = kspan / k ;
- printf ("\t\t k %d\n" , k);
+ //fprintf (stderr , "\t\t k %d i %d\n" , k ,i);
factorOf3Transform ( ) ;
break ;
case 5 :
- printf ( "\tfactorOf5Transform\n" );
+ //fprintf (stderr , "\tfactorOf5Transform\n" );
k = nfac[i-1] ;
kspnn = kspan ;
kspan = kspan / k ;
- printf ("\t\t k %d\n" , k);
+ //fprintf (stderr , "\t\t k %d\n" , k);
factorOf5Transform ( ) ;
break ;
@@ -280,13 +285,14 @@ switch ( nfac[i-1] )
k = nfac[i-1] ;
kspnn = kspan ;
kspan = kspan / k ;
- printf ("\t\t k %d\n" , k);
+ //fprintf (stderr , "\t\t k %d\n" , k);
+ //fprintf (stderr , "\t\t nfac[i-1] %d jf %d\n" , nfac[i-1] , jf ) ;
if ( nfac[i-1] != jf)
{
- printf ( "\tpreFOtherTransform \n" );
+ //fprintf (stderr , "\tpreFOtherTransform \n" );
preFOtherTransform ( ) ;
}
- printf ( "\tfactorOfOtherTransform \n" );
+ //fprintf (stderr , "\tfactorOfOtherTransform \n" );
factorOfOtherTransform ( ) ;
break ;
}
@@ -295,10 +301,10 @@ switch ( nfac[i-1] )
if ( retVal == 42 )
{
- printf ( "\t\t i %d m %d\n" , i , m );
+ //fprintf (stderr , "\t\t i %d m %d\n" , i , m );
if ( i != m)
{
- printf ( "\tmulByRotationFactor \n" );
+ //fprintf (stderr , "\tmulByRotationFactor \n" );
retVal = mulByRotationFactor ( ) ;
}
else
@@ -342,17 +348,22 @@ void permute_stage2 (void)
int retVal ;
kspnn = np[kt] ;
+ //fprintf (stderr , "\t kspnn %d , kt %d\n" , kspnn , kt);
/*permutation for square-free facotrs of n */
+ //fprintf (stderr , "\tnonSqFactor2NormOrder 2\n" );
nonSqFactor2NormOrder ( ) ;
/*determine the permutation cycles of length greater than 1*/
+ //fprintf (stderr , "\tdetPermutCycles 2\n" );
detPermutCycles ( );
+ //fprintf (stderr , "\tend ploplpop 2\n" );
retVal = end ( ) ;
-
+ //fprintf (stderr , "\t on n'est plus dans le end\n ");
while ( retVal == 1)
{
+ //fprintf (stderr , "\reorderMatrix 2\n" );
reorderMatrix ( ) ;
retVal = end ( ) ;
}
@@ -375,6 +386,7 @@ int pre_fOf2Trans (void)
/*50*/
do
{
+ //fprintf (stderr , "\t 50 \n");
k2 = kk + kspan ;
ak = a[k2-1] ;
bk = b[k2-1] ;
@@ -391,7 +403,7 @@ int pre_fOf2Trans (void)
{
kk -= nn ;
}
- }while ( kk <= jc || kk <= nn );
+ }while ( kk <= jc && kk <= nn );
@@ -643,10 +655,10 @@ int f4t_170 (void)
void factorOf3Transform (void)
{
-
+int ktemp = 0 ;
do
{
- printf ( "\t\t une boucle dans factor of 3\n");
+ //fprintf (stderr , "\t\t une boucle dans factor of 3\n");
k1 = kk + kspan ;
k2 = k1 + kspan ;
@@ -671,10 +683,14 @@ do
b[k2-1] = bk - aj ;
kk = k2 + kspan ;
+ ktemp = kk ;
+
+ //fprintf (stderr , "\t\t kk %d , nn %d , kspan %d\n" , kk , nn , kspan );
if ( kk >= nn )
kk -= nn ;
- }while ( kk <= kspan || kk < nn);
+ //fprintf (stderr , "\t\t 2kk %d , nn %d , kspan %d\n" , kk , nn , kspan );
+ }while ( ktemp < nn || (kk <= kspan && ( ktemp >= nn)) );
}
@@ -682,7 +698,7 @@ void factorOf5Transform (void)
{
c2 = c72*c72 - s72 *s72 ;
s2 = 2 * c72*s72;
- printf ( "plop\n" ) ;
+ //fprintf (stderr , "plop\n" ) ;
do
{
k1 = kk + kspan ;
@@ -690,7 +706,7 @@ void factorOf5Transform (void)
k3 = k2 + kspan ;
k4 = k3 + kspan ;
- printf ( "kk %d \t k1 %d \t k2 %d \t k3 %d \t k4 %d\n", kk , k1 , k2 ,k3,k4 );
+ //fprintf (stderr , "kk %d \t k1 %d \t k2 %d \t k3 %d \t k4 %d\n", kk , k1 , k2 ,k3,k4 );
akp = a[k1-1] + a[k4-1] ;
akm = a[k1-1] - a[k4-1] ;
@@ -725,7 +741,7 @@ void factorOf5Transform (void)
bk = bkp*c2 + bjp*c72 + bb ;
aj = akm*s2 - ajm*s72 ;
- printf ("aj %f \takm %f \tajm %f\n" , aj , akm , ajm );
+ //fprintf (stderr , "aj %f \takm %f \tajm %f\n" , aj , akm , ajm );
bj = bkm*s2 - bjm*s72 ;
a[k2-1] = ak - bj ;
@@ -734,15 +750,15 @@ void factorOf5Transform (void)
b[k3-1] = bk - aj ;
kk = k4 + kspan;
- printf ( "ak %f \tbk %f\naj %f \tbj %f\n" , ak , bk , aj ,bj );
- printf ( "kk %d \t nn %d \t kspan %d\n", kk , nn , kspan );
+ //fprintf (stderr , "ak %f \tbk %f\naj %f \tbj %f\n" , ak , bk , aj ,bj );
+ //fprintf (stderr , "kk %d \t nn %d \t kspan %d\n", kk , nn , kspan );
if ( kk >= nn )
kk -= nn ;
- printf ( "kk %d \t nn %d \t kspan %d\n", kk , nn , kspan );
+ //fprintf (stderr , "kk %d \t nn %d \t kspan %d\n", kk , nn , kspan );
}while ( kk <= kspan && kk < nn);
-printf ( "fin 5\n" );
+//fprintf (stderr , "fin 5\n" );
}
@@ -1087,15 +1103,20 @@ void nonSqFactor2NormOrder (void)
j = m - kt ;
nfac[j] = 1 ;
+
+
do
{
nfac[j-1] *= nfac[j] ;
+ //fprintf (stderr , "\t\t m %d j %d , nfac[j-1] %d\n", m , j , nfac[j-1] );
j-- ;
+
}while ( j != kt ) ;
kt ++ ;
nn = nfac[kt-1] - 1;
+ //fprintf (stderr , "\t\t nn %d \n" , nn ) ;
jj = 0 ;
j = 0;
@@ -1105,10 +1126,11 @@ void nonSqFactor2NormOrder (void)
k = kt + 1 ;
kk = nfac[k-1] ;
j ++ ;
-
+ //fprintf (stderr , "\t\tj %d\n" , j ) ;
while ( j <= nn )
{
jj += kk ;
+ //fprintf (stderr , "\t\t 1jj %d , kk %d\n" , jj , kk ) ;
while ( jj >= k2 )
{
@@ -1118,6 +1140,8 @@ void nonSqFactor2NormOrder (void)
kk = nfac[k-1] ;
jj += kk ;
+ //fprintf (stderr , "\t\t jj %d , kk %d\n" , jj , kk ) ;
+
}
np[j-1] = jj ;
@@ -1125,7 +1149,7 @@ void nonSqFactor2NormOrder (void)
k = kt + 1 ;
kk = nfac[k-1] ;
j ++ ;
-
+ //fprintf (stderr , "\t\t1j %d\n" , j ) ;
}
j = 0 ;
@@ -1141,17 +1165,20 @@ void detPermutCycles (void)
{
do
{
+ //fprintf (stderr , "\t\t j %d \tnp[j-1] %d\n" , j , np[j-1]);
j++ ;
kk = np[j-1] ;
}while ( kk < 0 ) ;
+ //fprintf (stderr , "\t\t kk %d\t j %d\t\n" , kk , j );
if ( kk != j )
{
do
{
+ //fprintf (stderr , "\t\t 2boucle kk %d\n" , kk );
k = kk ;
+ kk = np[k-1] ;
np[k-1] = -kk ;
-
}while ( kk != j ) ;
k3 = kk ;
}
@@ -1166,15 +1193,19 @@ void detPermutCycles (void)
int end (void)
{
+
+ //fprintf (stderr , "\t\t\t end of the final end\n");
+ /*
j = k3 + 1 ;
nt -= kspnn ;
i = nt - inc + 1 ;
+ //fprintf (stderr , "\t\t\t end of the final end\n");
if ( nt >= 0 )
return 1 ;
else
-
+*/
return 0 ;
diff --git a/src/signalProcessing/fft/fft_internal.h b/src/signalProcessing/fft/fft_internal.h
index 6c14bb96..c595b027 100644
--- a/src/signalProcessing/fft/fft_internal.h
+++ b/src/signalProcessing/fft/fft_internal.h
@@ -13,6 +13,7 @@
#ifndef __FFT_INTERNAL_H__
#define __FFT_INTERNAL_H__
+
#include "addition.h"
#include "subtraction.h"
diff --git a/src/signalProcessing/fft/testDoubleFft.c b/src/signalProcessing/fft/testDoubleFft.c
index 764eebe0..6927594e 100644
--- a/src/signalProcessing/fft/testDoubleFft.c
+++ b/src/signalProcessing/fft/testDoubleFft.c
@@ -20,6 +20,7 @@
#define COLS3 3
#define COLS4 4
#define COLS5 5
+#define COLS6 6
#define COLS8 8
#define COLS16 16
#define COLS32 32
@@ -39,7 +40,10 @@
#define ZIMAG_IN5 { 0.56084860628470778, 0.66235693730413914, 0.72635067673400044, 0.19851438421756029,\
0.56642488157376647}
-
+#define ZREAL_IN6 { 0.54425731627270579, 0.23207478970289230, 0.23122371966019273, 0.21646326314657927,\
+ 0.65251349471509457, 0.30760907428339124 }
+#define ZIMAG_IN6 { 0.21460078610107303, 0.31264199689030647, 0.36163610080257058, 0.2922266637906432,\
+ 0.56642488157376647, 0.59350947011262178 }
#define ZREAL_IN8 { 0.54425731627270579, 0.23207478970289230, 0.23122371966019273, 0.21646326314657927,\
@@ -89,6 +93,8 @@
0.09598652253573875}
#define ZIMAG_RESULT5 { 2.71449548611417413,-0.31527367037930898, 0.60322341639929178,-0.89813890885693670,\
0.69993670814631914}
+
+
#define ZREAL_RESULT8 { 4.00049206055700779,-0.43357241280891956, 0.79836636409163475,-0.91119240848798977,\
-0.06753427721560001,-0.18576209864995416, 0.97926024347543716, 0.17400105922003017}
#define ZIMAG_RESULT8 { 3.15585898794233799, 0.62132445165622818, 0.35205427557229996, 0.28289917172258683,\
@@ -226,6 +232,7 @@ static void zfftmaTest3 (void )
}
+
static void zfftmaTest5 (void )
{
int i = 0 ;
@@ -278,6 +285,59 @@ static void zfftmaTest5 (void )
}
+
+static void zfftmaTest6 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN6;
+ double tImagIn [] = ZIMAG_IN6 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT8;
+ double tImagResult [] = ZIMAG_RESULT8;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS6));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS6 );
+ doubleComplex* Result = DoubleComplexMatrix ( tRealResult , tImagResult ,ROW*COLS6) ;
+
+
+
+ zfftma ( in , ROW , COLS6 , out ) ;
+
+ /* if we don't add that test assert failed if result = 0 'cause then we have |(out - 0)|/|out| = 1*/
+
+
+ for ( i = 0 ; i < (ROW*COLS6 ) ; i++ )
+ {
+ printf ( "\t\t %d out : %e\t %e\t * i result : %e\t %e\t * i assert : : %e\t %e\t * i \n" ,
+ i ,
+ zreals(out[i]) ,
+ zimags(out[i]),
+ zreals (Result[i]) ,
+ zimags (Result[i]),
+ fabs( zreals(out[i]) - zreals (Result[i]) ) / fabs (zreals (out[i])) ,
+ fabs( zimags(out[i]) - zimags (Result[i]) ) / fabs (zimags (out[i])));
+/*
+ if ( zreals(out[i]) < 1e-14 && zreals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zreals(out[i]) - zreals (Result[i]) ) / fabs (zreals (out[i])) < 1e-12 );
+
+
+ if ( zimags(out[i]) < 1e-14 && zimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zimags(out[i]) - zimags (Result[i]) ) / fabs (zimags (out[i])) < 1e-12 ) ;
+*/
+ }
+
+
+}
+
static void zfftmaTest4 (void )
{
int i = 0 ;
@@ -492,9 +552,11 @@ static int testFft(void) {
zfftmaTest3();
printf("\t>>>> Vector 4 Double Complex Tests\n");
zfftmaTest4();
-*/
printf("\t>>>> Vector 5 Double Complex Tests\n");
zfftmaTest5();
+*/
+ printf("\t>>>> Vector 6 Double Complex Tests\n");
+ zfftmaTest6();
/*
printf("\t>>>> Vector 8 Double Complex Tests\n");
zfftmaTest8();