summaryrefslogtreecommitdiff
path: root/src/c/signalProcessing
diff options
context:
space:
mode:
authorAnkit Raj2017-06-21 10:26:59 +0530
committerAnkit Raj2017-06-21 10:26:59 +0530
commit958577cac90a99124cd673fde1926781d966d91f (patch)
tree134d9fe7f5b97a647cb055bb7b4c21820a749f49 /src/c/signalProcessing
downloadScilab2C_fossee_old-958577cac90a99124cd673fde1926781d966d91f.tar.gz
Scilab2C_fossee_old-958577cac90a99124cd673fde1926781d966d91f.tar.bz2
Scilab2C_fossee_old-958577cac90a99124cd673fde1926781d966d91f.zip
Updated Scilab2C
Diffstat (limited to 'src/c/signalProcessing')
-rw-r--r--src/c/signalProcessing/%k/dmodka.c97
-rw-r--r--src/c/signalProcessing/%k/int_modk.h18
-rw-r--r--src/c/signalProcessing/%k/modk.h29
-rw-r--r--src/c/signalProcessing/%sn/dmodsna.c24
-rw-r--r--src/c/signalProcessing/%sn/dmodsns.c93
-rw-r--r--src/c/signalProcessing/%sn/int_modsn.h18
-rw-r--r--src/c/signalProcessing/%sn/modsn.h27
-rw-r--r--src/c/signalProcessing/%sn/zmodsna.c24
-rw-r--r--src/c/signalProcessing/%sn/zmodsns.c161
-rw-r--r--src/c/signalProcessing/Makefile.am22
-rw-r--r--src/c/signalProcessing/Makefile.in570
-rw-r--r--src/c/signalProcessing/buttmag/buttmag.h28
-rw-r--r--src/c/signalProcessing/buttmag/dbuttmags.c33
-rw-r--r--src/c/signalProcessing/buttmag/int_buttmag.h18
-rw-r--r--src/c/signalProcessing/buttmag/u8buttmags.c33
-rw-r--r--src/c/signalProcessing/cheb1mag/cheb1mag.h27
-rw-r--r--src/c/signalProcessing/cheb1mag/dcheb1mags.c35
-rw-r--r--src/c/signalProcessing/cheb1mag/int_cheb1mag.h18
-rw-r--r--src/c/signalProcessing/cheb2mag/cheb2mag.h27
-rw-r--r--src/c/signalProcessing/cheb2mag/dcheb2mags.c49
-rw-r--r--src/c/signalProcessing/cheb2mag/int_cheb2mag.h18
-rw-r--r--src/c/signalProcessing/conv/Makefile.am74
-rw-r--r--src/c/signalProcessing/conv/Makefile.in754
-rw-r--r--src/c/signalProcessing/conv/cconva.c53
-rw-r--r--src/c/signalProcessing/conv/dconva.c39
-rw-r--r--src/c/signalProcessing/conv/sconva.c44
-rw-r--r--src/c/signalProcessing/conv/testDoubleConv.c135
-rw-r--r--src/c/signalProcessing/conv/testFloatConv.c134
-rw-r--r--src/c/signalProcessing/conv/test_DoubleConv/testDoubleConv.vcxproj178
-rw-r--r--src/c/signalProcessing/conv/test_DoubleConv/testDoubleConv.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/conv/test_FloatConv/testFloatConv.vcxproj178
-rw-r--r--src/c/signalProcessing/conv/test_FloatConv/testFloatConv.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/conv/zconva.c51
-rw-r--r--src/c/signalProcessing/conv2d/Makefile.am64
-rw-r--r--src/c/signalProcessing/conv2d/Makefile.in749
-rw-r--r--src/c/signalProcessing/conv2d/cconv2da.c37
-rw-r--r--src/c/signalProcessing/conv2d/dconv2da.c35
-rw-r--r--src/c/signalProcessing/conv2d/sconv2da.c36
-rw-r--r--src/c/signalProcessing/conv2d/testDoubleConv2d.c119
-rw-r--r--src/c/signalProcessing/conv2d/testFloatConv2d.c106
-rw-r--r--src/c/signalProcessing/conv2d/test_DoubleConv2d/testDoubleConv2d.vcxproj178
-rw-r--r--src/c/signalProcessing/conv2d/test_DoubleConv2d/testDoubleConv2d.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/conv2d/test_FloatConv2d/testFloatConv2d.vcxproj178
-rw-r--r--src/c/signalProcessing/conv2d/test_FloatConv2d/testFloatConv2d.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/conv2d/zconv2da.c37
-rw-r--r--src/c/signalProcessing/crossCorr/Makefile.am66
-rw-r--r--src/c/signalProcessing/crossCorr/Makefile.in754
-rw-r--r--src/c/signalProcessing/crossCorr/ccrossCorra.c33
-rw-r--r--src/c/signalProcessing/crossCorr/dcrossCorra.c37
-rw-r--r--src/c/signalProcessing/crossCorr/scrossCorra.c31
-rw-r--r--src/c/signalProcessing/crossCorr/testDoubleCrossCorr.c62
-rw-r--r--src/c/signalProcessing/crossCorr/testFloatCrossCorr.c48
-rw-r--r--src/c/signalProcessing/crossCorr/test_DoubleCrossCorr/testDoubleCrossCorr.vcxproj178
-rw-r--r--src/c/signalProcessing/crossCorr/test_DoubleCrossCorr/testDoubleCrossCorr.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/crossCorr/test_FloatCrossCorr/testFloatCrossCorr.vcxproj178
-rw-r--r--src/c/signalProcessing/crossCorr/test_FloatCrossCorr/testFloatCrossCorr.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/crossCorr/zcrossCorra.c34
-rw-r--r--src/c/signalProcessing/ffilt/ffilt.h27
-rw-r--r--src/c/signalProcessing/ffilt/gffilts.c90
-rw-r--r--src/c/signalProcessing/ffilt/int_ffilt.h18
-rw-r--r--src/c/signalProcessing/fft/Makefile.am83
-rw-r--r--src/c/signalProcessing/fft/Makefile.in865
-rw-r--r--src/c/signalProcessing/fft/cfftma.c52
-rw-r--r--src/c/signalProcessing/fft/dfft2.c24
-rw-r--r--src/c/signalProcessing/fft/dfftbi.c322
-rw-r--r--src/c/signalProcessing/fft/dfftma.c31
-rw-r--r--src/c/signalProcessing/fft/dfftmx.c1211
-rw-r--r--src/c/signalProcessing/fft/fft842.c173
-rw-r--r--src/c/signalProcessing/fft/fft_internal.h42
-rw-r--r--src/c/signalProcessing/fft/r2tx.c46
-rw-r--r--src/c/signalProcessing/fft/r4tx.c49
-rw-r--r--src/c/signalProcessing/fft/r8tx.c169
-rw-r--r--src/c/signalProcessing/fft/sfftma.c34
-rw-r--r--src/c/signalProcessing/fft/testDoubleFft.c470
-rw-r--r--src/c/signalProcessing/fft/testFloatFft.c1238
-rw-r--r--src/c/signalProcessing/fft/testMatFft.c297
-rw-r--r--src/c/signalProcessing/fft/test_DoubleFft/testDoubleFft.vcxproj178
-rw-r--r--src/c/signalProcessing/fft/test_DoubleFft/testDoubleFft.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/fft/test_FloatFft/testFloatFft.vcxproj178
-rw-r--r--src/c/signalProcessing/fft/test_FloatFft/testFloatFft.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/fft/test_MatFft/testMatFft.vcxproj178
-rw-r--r--src/c/signalProcessing/fft/test_MatFft/testMatFft.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/fft/zfftma.c156
-rw-r--r--src/c/signalProcessing/fftshift/Makefile.am68
-rw-r--r--src/c/signalProcessing/fftshift/Makefile.in828
-rw-r--r--src/c/signalProcessing/fftshift/ccolumnfftshifta.c48
-rw-r--r--src/c/signalProcessing/fftshift/cfftshifta.c26
-rw-r--r--src/c/signalProcessing/fftshift/crowfftshifta.c48
-rw-r--r--src/c/signalProcessing/fftshift/dcolumnfftshifta.c45
-rw-r--r--src/c/signalProcessing/fftshift/dfftshifta.c26
-rw-r--r--src/c/signalProcessing/fftshift/drowfftshifta.c46
-rw-r--r--src/c/signalProcessing/fftshift/scolumnfftshifta.c49
-rw-r--r--src/c/signalProcessing/fftshift/sfftshifta.c26
-rw-r--r--src/c/signalProcessing/fftshift/srowfftshifta.c48
-rw-r--r--src/c/signalProcessing/fftshift/testDoubleFftShift.c162
-rw-r--r--src/c/signalProcessing/fftshift/testFloatFftShift.c159
-rw-r--r--src/c/signalProcessing/fftshift/test_DoubleFftShift/testDoubleFftShift.vcxproj178
-rw-r--r--src/c/signalProcessing/fftshift/test_DoubleFftShift/testDoubleFftShift.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/fftshift/test_FloatFftShift/testFloatFftShift.vcxproj178
-rw-r--r--src/c/signalProcessing/fftshift/test_FloatFftShift/testFloatFftShift.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/fftshift/zcolumnfftshifta.c46
-rw-r--r--src/c/signalProcessing/fftshift/zfftshifta.c26
-rw-r--r--src/c/signalProcessing/fftshift/zrowfftshifta.c45
-rw-r--r--src/c/signalProcessing/filt_sinc/dfilt_sincs.c58
-rw-r--r--src/c/signalProcessing/filt_sinc/filt_sinc.h28
-rw-r--r--src/c/signalProcessing/filt_sinc/int_filt_sinc.h18
-rw-r--r--src/c/signalProcessing/fsfirlin/dfsfirlina.c144
-rw-r--r--src/c/signalProcessing/fsfirlin/fsfirlin.h26
-rw-r--r--src/c/signalProcessing/fsfirlin/int_fsfirlin.h18
-rw-r--r--src/c/signalProcessing/hilbert/Makefile.am67
-rw-r--r--src/c/signalProcessing/hilbert/Makefile.in726
-rw-r--r--src/c/signalProcessing/hilbert/dhilberta.c37
-rw-r--r--src/c/signalProcessing/hilbert/dhilberts.c18
-rw-r--r--src/c/signalProcessing/hilbert/shilberta.c32
-rw-r--r--src/c/signalProcessing/hilbert/shilberts.c18
-rw-r--r--src/c/signalProcessing/hilbert/testHilbert.c851
-rw-r--r--src/c/signalProcessing/hilbert/test_Hilbert/testHilbert.vcxproj178
-rw-r--r--src/c/signalProcessing/hilbert/test_Hilbert/testHilbert.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/ifft/Makefile.am84
-rw-r--r--src/c/signalProcessing/ifft/Makefile.in866
-rw-r--r--src/c/signalProcessing/ifft/cifftma.c51
-rw-r--r--src/c/signalProcessing/ifft/diffbi_lavraie.c243
-rw-r--r--src/c/signalProcessing/ifft/difft2.c24
-rw-r--r--src/c/signalProcessing/ifft/difftbi.c321
-rw-r--r--src/c/signalProcessing/ifft/difftma.c32
-rw-r--r--src/c/signalProcessing/ifft/difftmx.c1253
-rw-r--r--src/c/signalProcessing/ifft/ifft842.c163
-rw-r--r--src/c/signalProcessing/ifft/ifft_internal.h44
-rw-r--r--src/c/signalProcessing/ifft/ir2tx.c46
-rw-r--r--src/c/signalProcessing/ifft/ir4tx.c49
-rw-r--r--src/c/signalProcessing/ifft/ir8tx.c169
-rw-r--r--src/c/signalProcessing/ifft/sifftma.c34
-rw-r--r--src/c/signalProcessing/ifft/testDoubleIfft.c1301
-rw-r--r--src/c/signalProcessing/ifft/testFloatIfft.c1269
-rw-r--r--src/c/signalProcessing/ifft/testMatIfft.c289
-rw-r--r--src/c/signalProcessing/ifft/test_DoubleIfft/testDoubleIfft.vcxproj178
-rw-r--r--src/c/signalProcessing/ifft/test_DoubleIfft/testDoubleIfft.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/ifft/test_FloatIfft/testFloatIfft.vcxproj178
-rw-r--r--src/c/signalProcessing/ifft/test_FloatIfft/testFloatIfft.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/ifft/test_MatIfft/testMatIfft.vcxproj178
-rw-r--r--src/c/signalProcessing/ifft/test_MatIfft/testMatIfft.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/ifft/zifftma.c160
-rw-r--r--src/c/signalProcessing/includes/buttmag.h29
-rw-r--r--src/c/signalProcessing/includes/cheb1mag.h27
-rw-r--r--src/c/signalProcessing/includes/cheb2mag.h27
-rw-r--r--src/c/signalProcessing/includes/conv.h41
-rw-r--r--src/c/signalProcessing/includes/conv2d.h38
-rw-r--r--src/c/signalProcessing/includes/crossCorr.h37
-rw-r--r--src/c/signalProcessing/includes/dynlib_signalprocessing.h26
-rw-r--r--src/c/signalProcessing/includes/ffilt.h27
-rw-r--r--src/c/signalProcessing/includes/fft.h57
-rw-r--r--src/c/signalProcessing/includes/fftshift.h76
-rw-r--r--src/c/signalProcessing/includes/filt_sinc.h28
-rw-r--r--src/c/signalProcessing/includes/fsfirlin.h28
-rw-r--r--src/c/signalProcessing/includes/hilbert.h43
-rw-r--r--src/c/signalProcessing/includes/ifft.h59
-rw-r--r--src/c/signalProcessing/includes/lev.h50
-rw-r--r--src/c/signalProcessing/includes/levin.h31
-rw-r--r--src/c/signalProcessing/includes/lpc2cep.h44
-rw-r--r--src/c/signalProcessing/includes/modk.h28
-rw-r--r--src/c/signalProcessing/includes/modsn.h31
-rw-r--r--src/c/signalProcessing/includes/sincd.h29
-rw-r--r--src/c/signalProcessing/includes/zpbutt.h29
-rw-r--r--src/c/signalProcessing/includes/zpch1.h28
-rw-r--r--src/c/signalProcessing/includes/zpch2.h28
-rw-r--r--src/c/signalProcessing/interfaces/int_buttmag.h19
-rw-r--r--src/c/signalProcessing/interfaces/int_cepstrum.h34
-rw-r--r--src/c/signalProcessing/interfaces/int_cheb1mag.h18
-rw-r--r--src/c/signalProcessing/interfaces/int_cheb2mag.h18
-rw-r--r--src/c/signalProcessing/interfaces/int_convol.h153
-rw-r--r--src/c/signalProcessing/interfaces/int_ffilt.h18
-rw-r--r--src/c/signalProcessing/interfaces/int_fft.h71
-rw-r--r--src/c/signalProcessing/interfaces/int_fftshift.h51
-rw-r--r--src/c/signalProcessing/interfaces/int_filt_sinc.h18
-rw-r--r--src/c/signalProcessing/interfaces/int_fsfirlin.h18
-rw-r--r--src/c/signalProcessing/interfaces/int_hilbert.h26
-rw-r--r--src/c/signalProcessing/interfaces/int_ifft.h52
-rw-r--r--src/c/signalProcessing/interfaces/int_lev.h53
-rw-r--r--src/c/signalProcessing/interfaces/int_levin.h60
-rw-r--r--src/c/signalProcessing/interfaces/int_lpc2cep.h27
-rw-r--r--src/c/signalProcessing/interfaces/int_modk.h18
-rw-r--r--src/c/signalProcessing/interfaces/int_modsn.h21
-rw-r--r--src/c/signalProcessing/interfaces/int_sincd.h19
-rw-r--r--src/c/signalProcessing/interfaces/int_xcorr.h176
-rw-r--r--src/c/signalProcessing/interfaces/int_zpbutt.h19
-rw-r--r--src/c/signalProcessing/interfaces/int_zpch1.h18
-rw-r--r--src/c/signalProcessing/interfaces/int_zpch2.h18
-rw-r--r--src/c/signalProcessing/lev/Makefile.am76
-rw-r--r--src/c/signalProcessing/lev/Makefile.in773
-rw-r--r--src/c/signalProcessing/lev/cleva.c85
-rw-r--r--src/c/signalProcessing/lev/cleva2.c83
-rw-r--r--src/c/signalProcessing/lev/dleva.c67
-rw-r--r--src/c/signalProcessing/lev/dleva2.c65
-rw-r--r--src/c/signalProcessing/lev/sleva.c66
-rw-r--r--src/c/signalProcessing/lev/sleva2.c64
-rw-r--r--src/c/signalProcessing/lev/testDoubleLev.c199
-rw-r--r--src/c/signalProcessing/lev/testFloatLev.c198
-rw-r--r--src/c/signalProcessing/lev/test_DoubleLev/testDoubleLev.vcxproj178
-rw-r--r--src/c/signalProcessing/lev/test_DoubleLev/testDoubleLev.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/lev/test_FloatLev/testFloatLev.vcxproj178
-rw-r--r--src/c/signalProcessing/lev/test_FloatLev/testFloatLev.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/lev/zleva.c86
-rw-r--r--src/c/signalProcessing/lev/zleva2.c83
-rw-r--r--src/c/signalProcessing/levin/Makefile.am76
-rw-r--r--src/c/signalProcessing/levin/Makefile.in759
-rw-r--r--src/c/signalProcessing/levin/dlevina.c185
-rw-r--r--src/c/signalProcessing/levin/levinUtils.c270
-rw-r--r--src/c/signalProcessing/levin/levinUtils.h71
-rw-r--r--src/c/signalProcessing/levin/slevina.c185
-rw-r--r--src/c/signalProcessing/levin/testDoubleLevin.c103
-rw-r--r--src/c/signalProcessing/levin/testFloatLevin.c103
-rw-r--r--src/c/signalProcessing/levin/test_DoubleLevin/testDoubleLevin.vcxproj178
-rw-r--r--src/c/signalProcessing/levin/test_DoubleLevin/testDoubleLevin.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/levin/test_FloatLevin/testFloatLevin.vcxproj178
-rw-r--r--src/c/signalProcessing/levin/test_FloatLevin/testFloatLevin.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/lpc2cep/Makefile.am89
-rw-r--r--src/c/signalProcessing/lpc2cep/Makefile.in796
-rw-r--r--src/c/signalProcessing/lpc2cep/clpc2cepa.c32
-rw-r--r--src/c/signalProcessing/lpc2cep/dlpc2cepa.c38
-rw-r--r--src/c/signalProcessing/lpc2cep/slpc2cepa.c39
-rw-r--r--src/c/signalProcessing/lpc2cep/testDoubleLpc2cep.c39
-rw-r--r--src/c/signalProcessing/lpc2cep/testFloatLpc2cep.c40
-rw-r--r--src/c/signalProcessing/lpc2cep/test_DoubleLpc2cep/testDoubleLpc2cep.vcxproj178
-rw-r--r--src/c/signalProcessing/lpc2cep/test_DoubleLpc2cep/testDoubleLpc2cep.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/lpc2cep/test_FloatLpc2cep/testFloatLpc2cep.vcxproj178
-rw-r--r--src/c/signalProcessing/lpc2cep/test_FloatLpc2cep/testFloatLpc2cep.vcxproj.filters22
-rw-r--r--src/c/signalProcessing/lpc2cep/zlpc2cepa.c34
-rw-r--r--src/c/signalProcessing/signalProcessing.vcxproj607
-rw-r--r--src/c/signalProcessing/signalProcessing.vcxproj.filters320
-rw-r--r--src/c/signalProcessing/sincd/dsincds.c99
-rw-r--r--src/c/signalProcessing/sincd/int_sincd.h18
-rw-r--r--src/c/signalProcessing/sincd/sincd.h28
-rw-r--r--src/c/signalProcessing/sincd/u8sincds.c98
-rw-r--r--src/c/signalProcessing/zpbutt/dzpbutts.c33
-rw-r--r--src/c/signalProcessing/zpbutt/int_zpbutt.h19
-rw-r--r--src/c/signalProcessing/zpbutt/zpbutt.h27
-rw-r--r--src/c/signalProcessing/zpch1/dzpch1s.c53
-rw-r--r--src/c/signalProcessing/zpch1/int_zpch1.h18
-rw-r--r--src/c/signalProcessing/zpch1/zpch1.h28
-rw-r--r--src/c/signalProcessing/zpch2/dzpch2s.c63
-rw-r--r--src/c/signalProcessing/zpch2/int_zpch2.h18
-rw-r--r--src/c/signalProcessing/zpch2/zpch2.h28
242 files changed, 32560 insertions, 0 deletions
diff --git a/src/c/signalProcessing/%k/dmodka.c b/src/c/signalProcessing/%k/dmodka.c
new file mode 100644
index 0000000..c0630ec
--- /dev/null
+++ b/src/c/signalProcessing/%k/dmodka.c
@@ -0,0 +1,97 @@
+#include<stdio.h>
+#include<math.h>
+#include "modk.h"
+double max_calc(double* ptr,int sz)
+{
+ int i=0;
+ double mx;
+ if(ptr[0]<0)
+ {
+ ptr[0]=-1*ptr[0];
+ }
+ mx=(ptr[0]);
+ //printf("%lf\n",mx);
+ for(i=1;i<sz;i++)
+ {
+ if(ptr[i]<0)
+ {
+ ptr[i]=-1*ptr[i];
+ }
+ if(mx<(ptr[i]))
+ mx=(ptr[i]);
+ }
+ return mx;
+}
+void dmodka(double* inp,int size,double* oup)
+{
+ double ones[size],PI=M_PI;
+ double eps=pow(2,-52);
+ int i;
+ for(i=0;i<size;i++)
+ {
+ ones[i]=1;
+ }
+ double a[size],b[size],c[size],an[size],bn[size],cn[size],kans[size];
+
+ int j,kk,l,m;
+ for(j=0;j<size;j++)
+ {
+ a[j]=1;
+ }
+ for(kk=0;kk<size;kk++)
+ {
+ b[kk]=sqrt(ones[kk]-inp[kk]);
+ }
+ for(l=0;l<size;l++)
+ {
+ c[l]=sqrt(inp[l]);
+
+ }
+ int x=0;
+ //double maxi;
+ //maxi=max_calc(c,size);
+ //printf("%lf",maxi);
+
+ while(max_calc(c,size)>eps)
+ {
+ int q,w,r;
+ for(q=0;q<size;q++)
+ {
+ an[q]=0.5*(a[q]+b[q]);
+ }
+ for(w=0;w<size;w++)
+ {
+ bn[w]=sqrt(a[w]*b[w]);
+ }
+ for(r=0;r<size;r++)
+ {
+ cn[r]=0.5*(a[r]-b[r]);
+ }
+ int x,y,z;
+ for(x=0;x<size;x++)
+ {
+ a[x]=an[x];
+ }
+ for(y=0;y<size;y++)
+ {
+ b[y]=bn[y];
+ }
+ for(z=0;z<size;z++)
+ {
+ c[z]=cn[z];
+ }
+ }
+ int q,w;
+ for(q=0;q<size;q++)
+ {
+ oup[q]=PI*(ones[q]/(2*a[q]));
+ }
+
+}
+/*
+int main()
+{
+ double m[3]={0.1,0.2,0.3};
+ dka(m,3);
+}
+*/
diff --git a/src/c/signalProcessing/%k/int_modk.h b/src/c/signalProcessing/%k/int_modk.h
new file mode 100644
index 0000000..ae09c50
--- /dev/null
+++ b/src/c/signalProcessing/%k/int_modk.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_%K_H__
+#define __INT_%K_H__
+
+#define d2modkz2(inp,size,oup) dmodka(inp,size,oup)
+
+#endif /* !INT_%K_H__! */
diff --git a/src/c/signalProcessing/%k/modk.h b/src/c/signalProcessing/%k/modk.h
new file mode 100644
index 0000000..6b4a7e0
--- /dev/null
+++ b/src/c/signalProcessing/%k/modk.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __%K_H__
+#define __%K_H__
+#include "types.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dmodka(double* inp,int size,doubleComplex* oup);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __%K_H__ */
+
diff --git a/src/c/signalProcessing/%sn/dmodsna.c b/src/c/signalProcessing/%sn/dmodsna.c
new file mode 100644
index 0000000..7e1e81c
--- /dev/null
+++ b/src/c/signalProcessing/%sn/dmodsna.c
@@ -0,0 +1,24 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#include<stdio.h>
+#include<math.h>
+#include "modsn.h"
+
+void dmodsna(double* uu,int size,double emmc,double* sn)
+{
+ int i;
+ for(i=0;i<size;i++)
+ {
+ sn[i]=dmodsns(uu[i],emmc);
+ }
+}
+
diff --git a/src/c/signalProcessing/%sn/dmodsns.c b/src/c/signalProcessing/%sn/dmodsns.c
new file mode 100644
index 0000000..06d0a6f
--- /dev/null
+++ b/src/c/signalProcessing/%sn/dmodsns.c
@@ -0,0 +1,93 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ Reference:- Abramowitz, Milton and Stegun, Irene A
+ Handbook of Mathematical Functions, Dover, 1965
+ Chapter 16 (Sections 16.4, 16.13 and 16.15)
+ Link for FORTRAN code:-http://www.aip.de/groups/soe/local/numres/bookfpdf/f6-11.pdf
+*/
+
+#include<stdio.h>
+#include<math.h>
+#define CA 0.0003
+#include "modsn.h"
+double dmodsns(double uu, double emmc)
+{
+ double a,b,c,d,emc,u;
+ double em[14],en[14];
+ int i,ii,l,bo;
+ double sn,cn,dn;
+ emc=1-emmc;
+ u=uu;
+ if(emc)
+ {
+ bo=(emc<0.0);
+ if(bo)
+ {
+ d=1.0-emc;
+ emc/=-1.0/d;
+ u*=(d=sqrt(d));
+ }
+ a=1.0;
+ dn=1.0;
+ for(i=1;i<=13;i++)
+ {
+ l=i;
+ em[i]=a;
+ en[i]=(emc=sqrt(emc));
+ c=0.5*(a+emc);
+ if(fabs(a-emc)<=CA*a)break;
+ emc*=a;
+ a=c;
+ }
+ u*=c;
+ sn=sin(u);
+ cn=cos(u);
+ if(sn)
+ {
+ a=cn/sn;
+ c*=a;
+ for(ii=l;ii>=1;ii--)
+ {
+ b=em[ii];
+ a*=c;
+ c*=dn;
+ dn=(en[ii]+a)/(b+a);
+ a=c/b;
+ }
+ a=1.0/sqrt(c*c+1.0);
+ sn=(sn>=0.0?a:-a);
+ cn=c*(sn);
+ }
+ if(bo)
+ {
+ a=dn;
+ dn=cn;
+ cn=a;
+ sn/=d;
+ }
+ }
+ else
+ {
+ cn=1.0/cosh(u);
+ dn=cn;
+ sn=tanh(u);
+ }
+ return sn;
+}
+/*
+int main()
+{
+ double u,k;
+ u=4;
+ k=0.7;
+ sn(u,k);
+}
+*/
diff --git a/src/c/signalProcessing/%sn/int_modsn.h b/src/c/signalProcessing/%sn/int_modsn.h
new file mode 100644
index 0000000..179fb61
--- /dev/null
+++ b/src/c/signalProcessing/%sn/int_modsn.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_MODSN_H__
+#define __INT_MODSN_H__
+
+#define d0d0modsnd0(uu,emmc) dmodsns(uu,emmc)
+
+#endif /* !INT_MODSN_H__! */
diff --git a/src/c/signalProcessing/%sn/modsn.h b/src/c/signalProcessing/%sn/modsn.h
new file mode 100644
index 0000000..c589656
--- /dev/null
+++ b/src/c/signalProcessing/%sn/modsn.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __MODSN_H__
+#define __MODSN_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "c" {
+#endif
+
+double dmodsns(double uu, double emmc);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __MODSN_H__ */
diff --git a/src/c/signalProcessing/%sn/zmodsna.c b/src/c/signalProcessing/%sn/zmodsna.c
new file mode 100644
index 0000000..33052a3
--- /dev/null
+++ b/src/c/signalProcessing/%sn/zmodsna.c
@@ -0,0 +1,24 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#include<stdio.h>
+#include<math.h>
+#include "modsn.h"
+#include "doubleComplex.h"
+
+void zmodsna(doubleComplex* uu,int size,double emmc,doubleComplex* sn)
+{
+ int i;
+ for(i=0;i<size;i++)
+ {
+ sn[i]=zmodsns(uu[i],emmc);
+ }
+}
diff --git a/src/c/signalProcessing/%sn/zmodsns.c b/src/c/signalProcessing/%sn/zmodsns.c
new file mode 100644
index 0000000..5f35059
--- /dev/null
+++ b/src/c/signalProcessing/%sn/zmodsns.c
@@ -0,0 +1,161 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ Reference:- Abramowitz, Milton and Stegun, Irene A
+ Handbook of Mathematical Functions, Dover, 1965
+ Chapter 16 (Sections 16.4, 16.13 and 16.15)
+ Link for FORTRAN code:-http://www.aip.de/groups/soe/local/numres/bookfpdf/f6-11.pdf
+*/
+
+#include<stdio.h>
+#include<math.h>
+#include "modsn.h"
+#include "doubleComplex.h"
+#define CA 0.0003
+
+doubleComplex zmodsns(doubleComplex uu,double emmc)
+{
+ doubleComplex ans;
+ double uur,uui;
+ uur=zreals(uu);
+ uui=zimags(uu);
+ double sr,cr,dr;
+ //Performing Elliptic Function operation for the real values
+ double a1,b1,c1,d1,emc1,u1;
+ double em1[14],en1[14];
+ int i1,ii1,l1,bo1;
+ emc1=1-emmc;
+ u1=uur;
+ if(emc1)
+ {
+ bo1=(emc1<0.0);
+ if(bo1)
+ {
+ d1=1.0-emc1;
+ emc1/=-1.0/d1;
+ u1*=(d1=sqrt(d1));
+ }
+ a1=1.0;
+ dr=1.0;
+ for(i1=1;i1<=13;i1++)
+ {
+ l1=i1;
+ em1[i1]=a1;
+ en1[i1]=(emc1=sqrt(emc1));
+ c1=0.5*(a1+emc1);
+ if(fabs(a1-emc1)<=CA*a1)break;
+ emc1*=a1;
+ a1=c1;
+ }
+ u1*=c1;
+ sr=sin(u1);
+ cr=cos(u1);
+ if(sr)
+ {
+ a1=cr/sr;
+ c1*=a1;
+ for(ii1=l1;ii1>=1;ii1--)
+ {
+ b1=em1[ii1];
+ a1*=c1;
+ c1*=dr;
+ dr=(en1[ii1]+a1)/(b1+a1);
+ a1=c1/b1;
+ }
+ a1=1.0/sqrt(c1*c1+1.0);
+ sr=(sr>=0.0?a1:-a1);
+ cr=c1*(sr);
+ }
+ if(bo1)
+ {
+ a1=dr;
+ dr=cr;
+ cr=a1;
+ sr/=d1;
+ }
+ }
+ else
+ {
+ cr=1.0/cosh(u1);
+ dr=cr;
+ sr=tanh(u1);
+ }
+ ////////////////////////////////////////////////////////////////
+ double si,ci,di;
+ //Performing Elleptic Function operation for the imaginary values
+ double a,b,c,d,emc,u;
+ double em[14],en[14];
+ int i,ii,l,bo;
+ //double s1,c1,d1;
+ emc=emmc;
+ u=uui;
+ if(emc)
+ {
+ bo=(emc<0.0);
+ if(bo)
+ {
+ d=1.0-emc;
+ emc/=-1.0/d;
+ u*=(d=sqrt(d));
+ }
+ a=1.0;
+ di=1.0;
+ for(i=1;i<=13;i++)
+ {
+ l=i;
+ em[i]=a;
+ en[i]=(emc=sqrt(emc));
+ c=0.5*(a+emc);
+ if(fabs(a-emc)<=CA*a)break;
+ emc*=a;
+ a=c;
+ }
+ u*=c;
+ si=sin(u);
+ ci=cos(u);
+ if(si)
+ {
+ a=ci/si;
+ c*=a;
+ for(ii=l;ii>=1;ii--)
+ {
+ b=em[ii];
+ a*=c;
+ c*=di;
+ di=(en[ii]+a)/(b+a);
+ a=c/b;
+ }
+ a=1.0/sqrt(c*c+1.0);
+ si=(si>=0.0?a:-a);
+ ci=c*(si);
+ }
+ if(bo)
+ {
+ a=di;
+ di=ci;
+ ci=a;
+ si/=d;
+ }
+ }
+ else
+ {
+ ci=1.0/cosh(u);
+ di=ci;
+ si=tanh(u);
+ }
+ /////////////////////////////////////////////////////////
+ double delta;
+ delta=ci*ci + emmc*sr*sr*si*si;
+ double snir,snii;
+ snir=(sr*di)/delta;
+ snii=(cr*dr*si*ci)/delta;
+ ans=DoubleComplex(snir,snii);
+ return ans;
+}
diff --git a/src/c/signalProcessing/Makefile.am b/src/c/signalProcessing/Makefile.am
new file mode 100644
index 0000000..8148f2a
--- /dev/null
+++ b/src/c/signalProcessing/Makefile.am
@@ -0,0 +1,22 @@
+##
+## Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+## Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+##
+## 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
+##
+##
+
+SUBDIRS= fft \
+ ifft \
+ levin \
+ conv \
+ conv2d \
+ hilbert \
+ crossCorr \
+ lpc2cep \
+ lev\
+ fftshift
diff --git a/src/c/signalProcessing/Makefile.in b/src/c/signalProcessing/Makefile.in
new file mode 100644
index 0000000..c9f22e0
--- /dev/null
+++ b/src/c/signalProcessing/Makefile.in
@@ -0,0 +1,570 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = src/c/signalProcessing
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/includes/machine.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBMATH = @LIBMATH@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = fft \
+ ifft \
+ levin \
+ conv \
+ conv2d \
+ hilbert \
+ crossCorr \
+ lpc2cep \
+ lev\
+ fftshift
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/c/signalProcessing/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/c/signalProcessing/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ ctags ctags-recursive distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/c/signalProcessing/buttmag/buttmag.h b/src/c/signalProcessing/buttmag/buttmag.h
new file mode 100644
index 0000000..47e64af
--- /dev/null
+++ b/src/c/signalProcessing/buttmag/buttmag.h
@@ -0,0 +1,28 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __BUTTMAG_H__
+#define __BUTTMAG_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dbuttmags(double order, double omegac, int size, double* sample,double* out);
+
+#ifdef __cplusplus
+} /* extern "C"*/
+#endif
+
+#endif /* __BUTTMAG_H__ */
+
diff --git a/src/c/signalProcessing/buttmag/dbuttmags.c b/src/c/signalProcessing/buttmag/dbuttmags.c
new file mode 100644
index 0000000..dc40e81
--- /dev/null
+++ b/src/c/signalProcessing/buttmag/dbuttmags.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include<stdio.h>
+#include<math.h>
+#include "buttmag.h"
+void dbuttmags(double order, double omegac,double* sample,int size,double* out)
+{
+ double ones[size];
+ int j,k;
+ for(j=0;j<size;j++)
+ {
+ ones[j]=1.0;
+ }
+ //double h[size];
+ for(k=0;k<size;k++)
+ {
+ double x=ones[k]/(ones[k]+pow((sample[k]/omegac),(2*order)));
+ out[k]=x;
+ //printf("%lf\n",h[k]);
+ }
+
+}
+
diff --git a/src/c/signalProcessing/buttmag/int_buttmag.h b/src/c/signalProcessing/buttmag/int_buttmag.h
new file mode 100644
index 0000000..9867438
--- /dev/null
+++ b/src/c/signalProcessing/buttmag/int_buttmag.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_BUTTMAG_H__
+#define __INT_BUTTMAG_H__
+
+#define d0d0d2buttmagd2(order,omegac,size,sample,out) dbuttmags(order,omegac,size,sample,out)
+
+#endif /* !INT_BUTTMAG_H__! */
diff --git a/src/c/signalProcessing/buttmag/u8buttmags.c b/src/c/signalProcessing/buttmag/u8buttmags.c
new file mode 100644
index 0000000..e7b52c2
--- /dev/null
+++ b/src/c/signalProcessing/buttmag/u8buttmags.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include<stdio.h>
+#include<math.h>
+#include "buttmag.h"
+void dbuttmags(int order, int omegac,double* sample,int size,double* out)
+{
+ double ones[size];
+ int j,k;
+ for(j=0;j<size;j++)
+ {
+ ones[j]=1.0;
+ }
+ //double h[size];
+ for(k=0;k<size;k++)
+ {
+ double x=ones[k]/(ones[k]+pow((sample[k]/omegac),(2*order)));
+ out[k]=x;
+ //printf("%lf\n",h[k]);
+ }
+
+}
+
diff --git a/src/c/signalProcessing/cheb1mag/cheb1mag.h b/src/c/signalProcessing/cheb1mag/cheb1mag.h
new file mode 100644
index 0000000..369ee4c
--- /dev/null
+++ b/src/c/signalProcessing/cheb1mag/cheb1mag.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __CHEB1MAG_H__
+#define __CHEB1MAG_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dcheb1mags(double n, double omegac, double epsilon, double* sample,int size,double* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __CHEB1MAG_H__ */
diff --git a/src/c/signalProcessing/cheb1mag/dcheb1mags.c b/src/c/signalProcessing/cheb1mag/dcheb1mags.c
new file mode 100644
index 0000000..a4a459d
--- /dev/null
+++ b/src/c/signalProcessing/cheb1mag/dcheb1mags.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#include<stdio.h>
+#include<math.h>
+#include "cheb1mag.h"
+void dcheb1mags(double n, double omegac, double epsilon, double* sample,int size,double* out)
+{
+ double x;
+ int j;
+ double tn;
+ for(j=0;j<size;j++)
+ {
+ x=sample[j]/omegac;
+ if(x<=1)
+ {
+ tn=cos(n*acos(x));
+ out[j]=1/(1+(epsilon*epsilon)*(tn*tn));
+ }
+ else
+ {
+ tn=cosh(n*acosh(x));
+ out[j]=1/(1+(epsilon*epsilon)*(tn*tn));
+ }
+ }
+}
+
diff --git a/src/c/signalProcessing/cheb1mag/int_cheb1mag.h b/src/c/signalProcessing/cheb1mag/int_cheb1mag.h
new file mode 100644
index 0000000..fa0ff83
--- /dev/null
+++ b/src/c/signalProcessing/cheb1mag/int_cheb1mag.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_CHEB1MAG_H__
+#define __INT_CHEB1MAG_H__
+
+#define d0d0d2cheb1magd2(n,omegac,epsilon,sample,size,out) dcheb1mags(n,omegac,epsilon,sample,size,out)
+
+#endif /* !__INT_CHEB1MAG_H__! */
diff --git a/src/c/signalProcessing/cheb2mag/cheb2mag.h b/src/c/signalProcessing/cheb2mag/cheb2mag.h
new file mode 100644
index 0000000..0516ca5
--- /dev/null
+++ b/src/c/signalProcessing/cheb2mag/cheb2mag.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __CHEB2MAG_H__
+#define __CHEB2MAG_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dcheb2mags(double n,double omegar, double A, double* sample,int size,double* oup);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __CHEB2MAG_H__ */
diff --git a/src/c/signalProcessing/cheb2mag/dcheb2mags.c b/src/c/signalProcessing/cheb2mag/dcheb2mags.c
new file mode 100644
index 0000000..006c591
--- /dev/null
+++ b/src/c/signalProcessing/cheb2mag/dcheb2mags.c
@@ -0,0 +1,49 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#include<stdio.h>
+#include<math.h>
+#include "cheb2mag.h"
+void dcheb2mags(double n,double omegar, double A, double* sample,int size,double* oup)
+{
+ double e;
+ //e=sqrt(A*A-1);
+ e=1/(pow(10,A/10)-1);
+ double x,k,cn,h,tp;
+ int i;
+ for(i=0;i<size;i++)
+ {
+ x=omegar/sample[i];
+ if(x<=1)
+ {
+ tp=acos(x);
+ cn=cos(n*tp);
+ if(x==1)
+ {
+ h=1/(1+A*A-1);
+ }
+ else
+ {
+ h=1/(1+((A*A-1)/(cn*cn)));
+ }
+
+ }
+ else
+ {
+ tp=acosh(x);
+ cn=cosh(n*tp);
+ h=e*(cn*cn)/(1+e*(cn*cn));
+
+ }
+ oup[i]=h;
+ }
+}
+
diff --git a/src/c/signalProcessing/cheb2mag/int_cheb2mag.h b/src/c/signalProcessing/cheb2mag/int_cheb2mag.h
new file mode 100644
index 0000000..05b77c2
--- /dev/null
+++ b/src/c/signalProcessing/cheb2mag/int_cheb2mag.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_CHEB2MAG_H__
+#define __INT_CHEB2MAG_H__
+
+#define d0d0d0d2cheb2magd2(n,omegar,A,sample,size,oup) dcheb2mag(n,omegar,A,sample,size,oup)
+
+#endif /* !__INT_CHEB2MAG_H__! */
diff --git a/src/c/signalProcessing/conv/Makefile.am b/src/c/signalProcessing/conv/Makefile.am
new file mode 100644
index 0000000..1e61c4a
--- /dev/null
+++ b/src/c/signalProcessing/conv/Makefile.am
@@ -0,0 +1,74 @@
+##
+## 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
+##
+##
+
+
+
+
+libConv_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+
+instdir = $(top_builddir)/lib
+
+
+pkglib_LTLIBRARIES = libConv.la
+
+HEAD = ../includes/conv.h
+
+
+
+libConv_la_SOURCES = $(HEAD) \
+ sconva.c \
+ dconva.c \
+ cconva.c \
+ zconva.c
+
+
+###############
+#### Check ####
+###############
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/signalProcessing/ifft/libIfft.la \
+ $(top_builddir)/src/c/signalProcessing/fft/libFft.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la \
+ libConv.la
+
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/fft \
+ -I $(top_builddir)/src/c/signalProcessing/ifft \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+check_PROGRAMS = testFloatConv testDoubleConv
+
+TESTS = testFloatConv testDoubleConv
+
+
+testDoubleConv_SOURCES = testDoubleConv.c
+testDoubleConv_LDADD = $(check_LDADD)
+testDoubleConv_CFLAGS = $(check_INCLUDES)
+
+testFloatConv_SOURCES = testFloatConv.c
+testFloatConv_LDADD = $(check_LDADD)
+testFloatConv_CFLAGS = $(check_INCLUDES)
+
+
+
diff --git a/src/c/signalProcessing/conv/Makefile.in b/src/c/signalProcessing/conv/Makefile.in
new file mode 100644
index 0000000..1d56f43
--- /dev/null
+++ b/src/c/signalProcessing/conv/Makefile.in
@@ -0,0 +1,754 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+check_PROGRAMS = testFloatConv$(EXEEXT) testDoubleConv$(EXEEXT)
+TESTS = testFloatConv$(EXEEXT) testDoubleConv$(EXEEXT)
+subdir = src/c/signalProcessing/conv
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/includes/machine.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkglibdir)"
+LTLIBRARIES = $(pkglib_LTLIBRARIES)
+libConv_la_LIBADD =
+am__objects_1 =
+am_libConv_la_OBJECTS = $(am__objects_1) libConv_la-sconva.lo \
+ libConv_la-dconva.lo libConv_la-cconva.lo libConv_la-zconva.lo
+libConv_la_OBJECTS = $(am_libConv_la_OBJECTS)
+libConv_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libConv_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testDoubleConv_OBJECTS = testDoubleConv-testDoubleConv.$(OBJEXT)
+testDoubleConv_OBJECTS = $(am_testDoubleConv_OBJECTS)
+testDoubleConv_DEPENDENCIES = $(check_LDADD)
+testDoubleConv_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testDoubleConv_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testFloatConv_OBJECTS = testFloatConv-testFloatConv.$(OBJEXT)
+testFloatConv_OBJECTS = $(am_testFloatConv_OBJECTS)
+testFloatConv_DEPENDENCIES = $(check_LDADD)
+testFloatConv_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testFloatConv_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libConv_la_SOURCES) $(testDoubleConv_SOURCES) \
+ $(testFloatConv_SOURCES)
+DIST_SOURCES = $(libConv_la_SOURCES) $(testDoubleConv_SOURCES) \
+ $(testFloatConv_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBMATH = @LIBMATH@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libConv_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+instdir = $(top_builddir)/lib
+pkglib_LTLIBRARIES = libConv.la
+HEAD = ../includes/conv.h
+libConv_la_SOURCES = $(HEAD) \
+ sconva.c \
+ dconva.c \
+ cconva.c \
+ zconva.c
+
+
+###############
+#### Check ####
+###############
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/signalProcessing/ifft/libIfft.la \
+ $(top_builddir)/src/c/signalProcessing/fft/libFft.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la \
+ libConv.la
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/fft \
+ -I $(top_builddir)/src/c/signalProcessing/ifft \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+testDoubleConv_SOURCES = testDoubleConv.c
+testDoubleConv_LDADD = $(check_LDADD)
+testDoubleConv_CFLAGS = $(check_INCLUDES)
+testFloatConv_SOURCES = testFloatConv.c
+testFloatConv_LDADD = $(check_LDADD)
+testFloatConv_CFLAGS = $(check_INCLUDES)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/c/signalProcessing/conv/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/c/signalProcessing/conv/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ }
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libConv.la: $(libConv_la_OBJECTS) $(libConv_la_DEPENDENCIES)
+ $(libConv_la_LINK) -rpath $(pkglibdir) $(libConv_la_OBJECTS) $(libConv_la_LIBADD) $(LIBS)
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+testDoubleConv$(EXEEXT): $(testDoubleConv_OBJECTS) $(testDoubleConv_DEPENDENCIES)
+ @rm -f testDoubleConv$(EXEEXT)
+ $(testDoubleConv_LINK) $(testDoubleConv_OBJECTS) $(testDoubleConv_LDADD) $(LIBS)
+testFloatConv$(EXEEXT): $(testFloatConv_OBJECTS) $(testFloatConv_DEPENDENCIES)
+ @rm -f testFloatConv$(EXEEXT)
+ $(testFloatConv_LINK) $(testFloatConv_OBJECTS) $(testFloatConv_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libConv_la-cconva.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libConv_la-dconva.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libConv_la-sconva.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libConv_la-zconva.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDoubleConv-testDoubleConv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFloatConv-testFloatConv.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+libConv_la-sconva.lo: sconva.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv_la_CFLAGS) $(CFLAGS) -MT libConv_la-sconva.lo -MD -MP -MF $(DEPDIR)/libConv_la-sconva.Tpo -c -o libConv_la-sconva.lo `test -f 'sconva.c' || echo '$(srcdir)/'`sconva.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libConv_la-sconva.Tpo $(DEPDIR)/libConv_la-sconva.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sconva.c' object='libConv_la-sconva.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv_la_CFLAGS) $(CFLAGS) -c -o libConv_la-sconva.lo `test -f 'sconva.c' || echo '$(srcdir)/'`sconva.c
+
+libConv_la-dconva.lo: dconva.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv_la_CFLAGS) $(CFLAGS) -MT libConv_la-dconva.lo -MD -MP -MF $(DEPDIR)/libConv_la-dconva.Tpo -c -o libConv_la-dconva.lo `test -f 'dconva.c' || echo '$(srcdir)/'`dconva.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libConv_la-dconva.Tpo $(DEPDIR)/libConv_la-dconva.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dconva.c' object='libConv_la-dconva.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv_la_CFLAGS) $(CFLAGS) -c -o libConv_la-dconva.lo `test -f 'dconva.c' || echo '$(srcdir)/'`dconva.c
+
+libConv_la-cconva.lo: cconva.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv_la_CFLAGS) $(CFLAGS) -MT libConv_la-cconva.lo -MD -MP -MF $(DEPDIR)/libConv_la-cconva.Tpo -c -o libConv_la-cconva.lo `test -f 'cconva.c' || echo '$(srcdir)/'`cconva.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libConv_la-cconva.Tpo $(DEPDIR)/libConv_la-cconva.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cconva.c' object='libConv_la-cconva.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv_la_CFLAGS) $(CFLAGS) -c -o libConv_la-cconva.lo `test -f 'cconva.c' || echo '$(srcdir)/'`cconva.c
+
+libConv_la-zconva.lo: zconva.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv_la_CFLAGS) $(CFLAGS) -MT libConv_la-zconva.lo -MD -MP -MF $(DEPDIR)/libConv_la-zconva.Tpo -c -o libConv_la-zconva.lo `test -f 'zconva.c' || echo '$(srcdir)/'`zconva.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libConv_la-zconva.Tpo $(DEPDIR)/libConv_la-zconva.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zconva.c' object='libConv_la-zconva.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv_la_CFLAGS) $(CFLAGS) -c -o libConv_la-zconva.lo `test -f 'zconva.c' || echo '$(srcdir)/'`zconva.c
+
+testDoubleConv-testDoubleConv.o: testDoubleConv.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleConv_CFLAGS) $(CFLAGS) -MT testDoubleConv-testDoubleConv.o -MD -MP -MF $(DEPDIR)/testDoubleConv-testDoubleConv.Tpo -c -o testDoubleConv-testDoubleConv.o `test -f 'testDoubleConv.c' || echo '$(srcdir)/'`testDoubleConv.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleConv-testDoubleConv.Tpo $(DEPDIR)/testDoubleConv-testDoubleConv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleConv.c' object='testDoubleConv-testDoubleConv.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleConv_CFLAGS) $(CFLAGS) -c -o testDoubleConv-testDoubleConv.o `test -f 'testDoubleConv.c' || echo '$(srcdir)/'`testDoubleConv.c
+
+testDoubleConv-testDoubleConv.obj: testDoubleConv.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleConv_CFLAGS) $(CFLAGS) -MT testDoubleConv-testDoubleConv.obj -MD -MP -MF $(DEPDIR)/testDoubleConv-testDoubleConv.Tpo -c -o testDoubleConv-testDoubleConv.obj `if test -f 'testDoubleConv.c'; then $(CYGPATH_W) 'testDoubleConv.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleConv.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleConv-testDoubleConv.Tpo $(DEPDIR)/testDoubleConv-testDoubleConv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleConv.c' object='testDoubleConv-testDoubleConv.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleConv_CFLAGS) $(CFLAGS) -c -o testDoubleConv-testDoubleConv.obj `if test -f 'testDoubleConv.c'; then $(CYGPATH_W) 'testDoubleConv.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleConv.c'; fi`
+
+testFloatConv-testFloatConv.o: testFloatConv.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatConv_CFLAGS) $(CFLAGS) -MT testFloatConv-testFloatConv.o -MD -MP -MF $(DEPDIR)/testFloatConv-testFloatConv.Tpo -c -o testFloatConv-testFloatConv.o `test -f 'testFloatConv.c' || echo '$(srcdir)/'`testFloatConv.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatConv-testFloatConv.Tpo $(DEPDIR)/testFloatConv-testFloatConv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatConv.c' object='testFloatConv-testFloatConv.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatConv_CFLAGS) $(CFLAGS) -c -o testFloatConv-testFloatConv.o `test -f 'testFloatConv.c' || echo '$(srcdir)/'`testFloatConv.c
+
+testFloatConv-testFloatConv.obj: testFloatConv.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatConv_CFLAGS) $(CFLAGS) -MT testFloatConv-testFloatConv.obj -MD -MP -MF $(DEPDIR)/testFloatConv-testFloatConv.Tpo -c -o testFloatConv-testFloatConv.obj `if test -f 'testFloatConv.c'; then $(CYGPATH_W) 'testFloatConv.c'; else $(CYGPATH_W) '$(srcdir)/testFloatConv.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatConv-testFloatConv.Tpo $(DEPDIR)/testFloatConv-testFloatConv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatConv.c' object='testFloatConv-testFloatConv.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatConv_CFLAGS) $(CFLAGS) -c -o testFloatConv-testFloatConv.obj `if test -f 'testFloatConv.c'; then $(CYGPATH_W) 'testFloatConv.c'; else $(CYGPATH_W) '$(srcdir)/testFloatConv.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(pkglibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pkglibLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pkglibLTLIBRARIES
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-pkglibLTLIBRARIES install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-pkglibLTLIBRARIES
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/c/signalProcessing/conv/cconva.c b/src/c/signalProcessing/conv/cconva.c
new file mode 100644
index 0000000..c523bbe
--- /dev/null
+++ b/src/c/signalProcessing/conv/cconva.c
@@ -0,0 +1,53 @@
+/*
+ * 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 "conv.h"
+#include <stdio.h>
+void cconva(floatComplex *in1, int size1, floatComplex *in2,int size2, floatComplex *out){
+ int m1,i;
+ floatComplex *in1b, *in2b, *result;
+
+
+ m1=(int)floor( log(size1+size2-1.0) / log(2.0) + 1 );
+ m1=(int)pow(2.0, m1);
+
+ in1b=(floatComplex *)malloc((unsigned int)(2*m1)*sizeof(float));
+ for(i=0;i<m1;i++){
+ if (i<size1) in1b[i]=in1[i];
+ else in1b[i]=FloatComplex(0,0);
+ }
+
+ in2b=(floatComplex *)malloc((unsigned int)(2*m1)*sizeof(float));
+ for(i=0;i<m1;i++){
+ if (i<size2) in2b[i]=in2[i];
+ else in2b[i]=FloatComplex(0,0);
+ }
+
+
+
+ cfftma(in1b,m1,1,in1b);
+
+ cfftma(in2b,m1,1,in2b);
+ result=(floatComplex *)malloc((unsigned int)(2*m1)*sizeof(float));
+ cmula(in1b,in2b,m1,result);
+ cifftma(result,m1,1,result);
+
+ for (i=0;i<size1+size2-1;i++){
+ out[i]=result[i];
+ }
+
+ free(in1b);
+ free(in2b);
+ free(result);
+}
+
+
diff --git a/src/c/signalProcessing/conv/dconva.c b/src/c/signalProcessing/conv/dconva.c
new file mode 100644
index 0000000..975a5b1
--- /dev/null
+++ b/src/c/signalProcessing/conv/dconva.c
@@ -0,0 +1,39 @@
+
+/*
+ * 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 "conv.h"
+
+void dconva(double *in1, int size1, double *in2,int size2, double *out){
+ int i;
+ doubleComplex *in1Cpx, *in2Cpx, *result;
+
+ in1Cpx=(doubleComplex*)malloc(2*(unsigned int)size1*sizeof(double));
+ in2Cpx=(doubleComplex*)malloc(2*(unsigned int)size2*sizeof(double));
+ for (i=0;i<size1;i++){
+ in1Cpx[i]=DoubleComplex(in1[i],0);
+ }
+ for (i=0;i<size2;i++){
+ in2Cpx[i]=DoubleComplex(in2[i],0);
+ }
+ result=(doubleComplex*)malloc(2*(unsigned int)(size1+size2-1)*sizeof(double));
+
+ zconva(in1Cpx,size1,in2Cpx,size2,result);
+ zreala(result,size1+size2-1,out);
+
+ free(result);
+ free(in2Cpx);
+ free(in1Cpx);
+
+}
+
+
diff --git a/src/c/signalProcessing/conv/sconva.c b/src/c/signalProcessing/conv/sconva.c
new file mode 100644
index 0000000..0c1ee5a
--- /dev/null
+++ b/src/c/signalProcessing/conv/sconva.c
@@ -0,0 +1,44 @@
+/*
+ * 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 "conv.h"
+#include <stdio.h>
+
+void sconva(float *in1, int size1, float *in2,int size2, float *out){
+ int i;
+ floatComplex *in1Cpx, *in2Cpx, *result;
+
+ in1Cpx=(floatComplex *)malloc(2*(unsigned int)size1*sizeof(float));
+ in2Cpx=(floatComplex *)malloc(2*(unsigned int)size2*sizeof(float));
+
+ for (i=0;i<size1;i++){
+ in1Cpx[i]=FloatComplex(in1[i],0);
+ }
+
+ for (i=0;i<size2;i++){
+ in2Cpx[i]=FloatComplex(in2[i],0);
+ }
+
+ result=(floatComplex *)malloc(2*(unsigned int)(size1+size2-1)*sizeof(float));
+
+ cconva(in1Cpx,size1,in2Cpx,size2,result);
+
+ creala(result,size1+size2-1,out);
+
+ free(result);
+ free(in1Cpx);
+ free(in2Cpx);
+}
+
+
+
diff --git a/src/c/signalProcessing/conv/testDoubleConv.c b/src/c/signalProcessing/conv/testDoubleConv.c
new file mode 100644
index 0000000..f25e05f
--- /dev/null
+++ b/src/c/signalProcessing/conv/testDoubleConv.c
@@ -0,0 +1,135 @@
+/*
+ * 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 "conv.h"
+#include <stdio.h>
+#include <assert.h>
+
+
+
+static void dconvaTest(void){
+ int i;
+ double x1[2]={0.5253563085570931434631,0.5376229803077876567841};
+ double h1[1]={0.2256303490139544010162};
+ double conv1[2]={0.1185363272564196462922,0.1213040606847684693692};
+ double out1[2];
+
+ double x2[8]={0.5878720157779753208160,0.4829179299995303153992,0.2232865034602582454681,\
+0.8400885667651891708374,0.1205995907075703144074,0.2855364168062806129456,\
+0.8607514644972980022430,0.8494101651012897491455};
+ double h2[5]={0.9931209897622466087341,0.6488562873564660549164,0.9923190940171480178833,\
+0.0500419777818024158478,0.7485506581142544746399};
+ double conv2[12]={0.5838280381629499249385,0.8610403862135279640100,1.1184514745692031301161,\
+1.4878174016996970063786,1.3506563468112671166921,1.568122169583095804057,\
+1.3689566747706436444787,2.3202981934690010135114,1.5098489496125344633271,\
+1.099698103860223152850,0.6868222398318966082087,0.6358265380955081536030};
+ double out2[12];
+
+ dconva(x1,2,h1,1,out1);
+ for (i=0;i<2;i++){
+ assert( ( fabs(out1[i]-conv1[i]) / fabs(out1[i]) ) <3e-16);
+ }
+
+ dconva(h1,1,x1,2,out1);
+ for (i=0;i<2;i++){
+ assert( ( fabs(out1[i]-conv1[i]) / fabs(out1[i]) ) <3e-16);
+ }
+
+ dconva(x2,8,h2,5,out2);
+ for (i=0;i<12;i++){
+ assert( ( fabs(out2[i]-conv2[i]) / fabs(out2[i]) ) <3e-15);
+ }
+
+ dconva(h2,5,x2,8,out2);
+ for (i=0;i<12;i++){
+ assert( ( fabs(out2[i]-conv2[i]) / fabs(out2[i]) ) <3e-15);
+ }
+}
+
+
+static void zconvaTest(void){
+ int i;
+ double rx1[2]={0.6274093082174658775330,0.7608432597480714321137};
+ double ix1[2]={0.0485566202551126480103,0.6723949727602303028107};
+ double rh1[1]={0.2017172696068882942200};
+ double ih1[1]={0.3911573919467628002167};
+ double rconv1[2]={0.1075660116388346271288,-0.1095370389478208250633};
+ double iconv1[2]={0.2552104975446664592020,0.4332431431659207188289};
+ doubleComplex *x1, *h1, out1[2];
+
+ double rx2[4]={0.9262343775480985641480,0.5667211269028484821320,0.5711638936772942543030,\
+0.8160110483877360820770};
+ double ix2[4]={0.0568927936255931854248,0.5595936686731874942780,0.1249340316280722618103,\
+0.7279222286306321620941};
+ double rh2[7]={0.6783956284634768962860,0.3320095278322696685791,0.0258709923364222049713,\
+0.5174468224868178367615,0.3916873238049447536469,0.2413538414984941482544,\
+0.5064434898085892200470};
+ double ih2[7]={0.4236102001741528511047,0.2893727528862655162811,0.0887932181358337402344,\
+0.6212881752289831638336,0.3454984454438090324402,0.7064867629669606685638,\
+0.5211472492665052413940};
+ double rconv2[10]={0.6042529849650153384033,0.4384669630868825995762,0.3796883200627478305300,\
+0.8076061278620030314812,0.3526828755641281398781,0.3863983221928849465243,\
+0.3314166433494881713884,0.113095069738258141578,-0.0931668091195109737690,\
+0.0339088159370524999670};
+ double iconv2[10]={0.4309581525680090119401,0.9066106897516487128641,0.7602048387189073164194,\
+1.7159441161321140612017,1.5157099506355884432907,1.5938830446486993430710,\
+2.1768689123487110492761,1.5794692240126795290678,1.1131203493567218831828,\
+0.7939133870152889072003};
+ doubleComplex *x2, *h2, out2[10];
+
+ x1=DoubleComplexMatrix(rx1,ix1,2);
+ h1=DoubleComplexMatrix(rh1,ih1,1);
+ x2=DoubleComplexMatrix(rx2,ix2,4);
+ h2=DoubleComplexMatrix(rh2,ih2,7);
+
+ zconva(x1,2,h1,1,out1);
+ for (i=0;i<2;i++){
+ assert( ( fabs(zreals(out1[i])-rconv1[i]) / fabs(zreals(out1[i])) ) <3e-16);
+ assert( ( fabs(zimags(out1[i])-iconv1[i]) / fabs(zimags(out1[i])) ) <3e-16);
+ }
+
+ zconva(h1,1,x1,2,out1);
+ for (i=0;i<2;i++){
+ assert( ( fabs(zreals(out1[i])-rconv1[i]) / fabs(zreals(out1[i])) ) <3e-16);
+ assert( ( fabs(zimags(out1[i])-iconv1[i]) / fabs(zimags(out1[i])) ) <3e-16);
+ }
+
+ zconva(x2,4,h2,7,out2);
+ for (i=0;i<7;i++){
+ assert( ( fabs(zreals(out2[i])-rconv2[i]) / fabs(zreals(out2[i])) ) <3e-15);
+ assert( ( fabs(zimags(out2[i])-iconv2[i]) / fabs(zimags(out2[i])) ) <3e-15);
+ }
+
+ zconva(h2,7,x2,4,out2);
+ for (i=0;i<10;i++){
+ assert( ( fabs(zreals(out2[i])-rconv2[i]) / fabs(zreals(out2[i])) ) <3e-14);
+ assert( ( fabs(zimags(out2[i])-iconv2[i]) / fabs(zimags(out2[i])) ) <3e-15);
+ }
+}
+
+
+
+static int convTest(void){
+ printf("\n>>>> Conv Double Tests\n");
+ dconvaTest();
+ zconvaTest();
+ return 0;
+}
+
+int main (void){
+ assert(convTest()==0);
+ return 0;
+}
+
+
+
diff --git a/src/c/signalProcessing/conv/testFloatConv.c b/src/c/signalProcessing/conv/testFloatConv.c
new file mode 100644
index 0000000..932f375
--- /dev/null
+++ b/src/c/signalProcessing/conv/testFloatConv.c
@@ -0,0 +1,134 @@
+/*
+ * 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 "conv.h"
+#include <stdio.h>
+#include <assert.h>
+
+static void sconvaTest(void){
+ int i;
+ float x1[2]={0.5253563085570931434631f,0.5376229803077876567841f};
+ float h1[1]={0.2256303490139544010162f};
+ float conv1[2]={0.1185363272564196462922f,0.1213040606847684693692f};
+ float out1[2];
+
+ float x2[8]={0.5878720157779753208160f,0.4829179299995303153992f,0.2232865034602582454681f,\
+0.8400885667651891708374f,0.1205995907075703144074f,0.2855364168062806129456f,\
+0.8607514644972980022430f,0.8494101651012897491455f};
+ float h2[5]={0.9931209897622466087341f,0.6488562873564660549164f,0.9923190940171480178833f,\
+0.0500419777818024158478f,0.7485506581142544746399f};
+ float conv2[12]={0.5838280381629499249385f,0.8610403862135279640100f,1.1184514745692031301161f,\
+1.4878174016996970063786f,1.3506563468112671166921f,1.568122169583095804057f,\
+1.3689566747706436444787f,2.3202981934690010135114f,1.5098489496125344633271f,\
+1.099698103860223152850f,0.6868222398318966082087f,0.6358265380955081536030f};
+ float out2[12];
+
+ sconva(x1,2,h1,1,out1);
+ for (i=0;i<2;i++){
+ assert( ( fabs(out1[i]-conv1[i]) / fabs(out1[i]) ) <1e-7);
+ }
+
+ sconva(h1,1,x1,2,out1);
+ for (i=0;i<2;i++){
+ assert( ( fabs(out1[i]-conv1[i]) / fabs(out1[i]) ) <1e-7);
+ }
+
+
+ sconva(x2,8,h2,5,out2);
+ for (i=0;i<12;i++){
+ assert( ( fabs(out2[i]-conv2[i]) / fabs(out2[i]) ) <1e-6);
+ }
+
+ sconva(h2,5,x2,8,out2);
+ for (i=0;i<12;i++){
+ assert( ( fabs(out2[i]-conv2[i]) / fabs(out2[i]) ) <1e-6);
+ }
+}
+
+
+static void cconvaTest(void){
+ int i;
+ float rx1[2]={0.6274093082174658775330f,0.7608432597480714321137f};
+ float ix1[2]={0.0485566202551126480103f,0.6723949727602303028107f};
+ float rh1[1]={0.2017172696068882942200f};
+ float ih1[1]={0.3911573919467628002167f};
+ float rconv1[2]={0.1075660116388346271288f,-0.1095370389478208250633f};
+ float iconv1[2]={0.2552104975446664592020f,0.4332431431659207188289f};
+ floatComplex *x1, *h1, out1[2];
+
+ float rx2[4]={0.9262343775480985641480f,0.5667211269028484821320f,0.5711638936772942543030f,\
+0.8160110483877360820770f};
+ float ix2[4]={0.0568927936255931854248f,0.5595936686731874942780f,0.1249340316280722618103f,\
+0.7279222286306321620941f};
+ float rh2[7]={0.6783956284634768962860f,0.3320095278322696685791f,0.0258709923364222049713f,\
+0.5174468224868178367615f,0.3916873238049447536469f,0.2413538414984941482544f,\
+0.5064434898085892200470f};
+ float ih2[7]={0.4236102001741528511047f,0.2893727528862655162811f,0.0887932181358337402344f,\
+0.6212881752289831638336f,0.3454984454438090324402f,0.7064867629669606685638f,\
+0.5211472492665052413940f};
+ float rconv2[10]={0.6042529849650153384033f,0.4384669630868825995762f,0.3796883200627478305300f,\
+0.8076061278620030314812f,0.3526828755641281398781f,0.3863983221928849465243f,\
+0.3314166433494881713884f,0.113095069738258141578f,-0.0931668091195109737690f,\
+0.0339088159370524999670f};
+ float iconv2[10]={0.4309581525680090119401f,0.9066106897516487128641f,0.7602048387189073164194f,\
+1.7159441161321140612017f,1.5157099506355884432907f,1.5938830446486993430710f,\
+2.1768689123487110492761f,1.5794692240126795290678f,1.1131203493567218831828f,\
+0.7939133870152889072003f};
+ floatComplex *x2, *h2, out2[10];
+
+
+ x1=FloatComplexMatrix(rx1,ix1,2);
+ h1=FloatComplexMatrix(rh1,ih1,1);
+ x2=FloatComplexMatrix(rx2,ix2,4);
+ h2=FloatComplexMatrix(rh2,ih2,7);
+
+
+ cconva(x1,2,h1,1,out1);
+ for (i=0;i<2;i++){
+ assert( ( fabs(creals(out1[i])-rconv1[i]) / fabs(creals(out1[i])) ) <1e-6);
+ assert( ( fabs(cimags(out1[i])-iconv1[i]) / fabs(cimags(out1[i])) ) <1e-6);
+ }
+
+ cconva(h1,1,x1,2,out1);
+ for (i=0;i<2;i++){
+ assert( ( fabs(creals(out1[i])-rconv1[i]) / fabs(creals(out1[i])) ) <1e-6);
+ assert( ( fabs(cimags(out1[i])-iconv1[i]) / fabs(cimags(out1[i])) ) <1e-6);
+ }
+
+ cconva(x2,4,h2,7,out2);
+ for (i=0;i<10;i++){
+ assert( ( fabs(creals(out2[i])-rconv2[i]) / fabs(creals(out2[i])) ) <3e-6);
+ assert( ( fabs(cimags(out2[i])-iconv2[i]) / fabs(cimags(out2[i])) ) <1e-6);
+ }
+
+ cconva(h2,7,x2,4,out2);
+ for (i=0;i<10;i++){
+ assert( ( fabs(creals(out2[i])-rconv2[i]) / fabs(creals(out2[i])) ) <3e-6);
+ assert( ( fabs(cimags(out2[i])-iconv2[i]) / fabs(cimags(out2[i])) ) <1e-6);
+ }
+
+}
+
+
+
+static int convTest(void){
+ printf("\n>>>> Conv Float Tests\n");
+ sconvaTest();
+ cconvaTest();
+ return 0;
+}
+
+int main (void){
+ assert(convTest()==0);
+ return 0;
+}
diff --git a/src/c/signalProcessing/conv/test_DoubleConv/testDoubleConv.vcxproj b/src/c/signalProcessing/conv/test_DoubleConv/testDoubleConv.vcxproj
new file mode 100644
index 0000000..49cacdf
--- /dev/null
+++ b/src/c/signalProcessing/conv/test_DoubleConv/testDoubleConv.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{0ED6E2D7-B50D-4A17-A34B-440A7307E747}</ProjectGuid>
+ <RootNamespace>testDoubleConv</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleConv.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/conv/test_DoubleConv/testDoubleConv.vcxproj.filters b/src/c/signalProcessing/conv/test_DoubleConv/testDoubleConv.vcxproj.filters
new file mode 100644
index 0000000..0b5ec66
--- /dev/null
+++ b/src/c/signalProcessing/conv/test_DoubleConv/testDoubleConv.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleConv.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/conv/test_FloatConv/testFloatConv.vcxproj b/src/c/signalProcessing/conv/test_FloatConv/testFloatConv.vcxproj
new file mode 100644
index 0000000..cd908e0
--- /dev/null
+++ b/src/c/signalProcessing/conv/test_FloatConv/testFloatConv.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{5A0D9A72-FA85-41F8-A605-A2B31961B01C}</ProjectGuid>
+ <RootNamespace>testFloatConv</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatConv.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/conv/test_FloatConv/testFloatConv.vcxproj.filters b/src/c/signalProcessing/conv/test_FloatConv/testFloatConv.vcxproj.filters
new file mode 100644
index 0000000..4da2dd9
--- /dev/null
+++ b/src/c/signalProcessing/conv/test_FloatConv/testFloatConv.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatConv.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/conv/zconva.c b/src/c/signalProcessing/conv/zconva.c
new file mode 100644
index 0000000..7f773fa
--- /dev/null
+++ b/src/c/signalProcessing/conv/zconva.c
@@ -0,0 +1,51 @@
+
+/*
+ * 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 "conv.h"
+
+void zconva(doubleComplex *in1, int size1, doubleComplex *in2,int size2, doubleComplex *out){
+ int m1,i;
+ doubleComplex *in1b, *in2b, *result;
+
+
+ m1=(int) floor(log(size1+size2-1.0) / log(2.0) + 1.0);
+ m1=(int) pow(2.0, m1);
+
+ in1b=(doubleComplex *)malloc(2*(unsigned int)m1*sizeof(double));
+ for(i=0;i<m1;i++){
+ if (i<size1) in1b[i]=in1[i];
+ else in1b[i]=DoubleComplex(0,0);
+ }
+
+ in2b=(doubleComplex *)malloc(2*(unsigned int)m1*sizeof(double));
+ for(i=0;i<m1;i++){
+ if (i<size2) in2b[i]=in2[i];
+ else in2b[i]=DoubleComplex(0,0);
+ }
+
+
+ zfftma(in1b,m1,1,in1b);
+ zfftma(in2b,m1,1,in2b);
+
+ result=(doubleComplex *)malloc(2*(unsigned int)m1*sizeof(double));
+ zmula(in1b,in2b,m1,result);
+ zifftma(result,m1,1,result);
+
+ for (i=0;i<size1+size2-1;i++){
+ out[i]=result[i];
+ }
+
+ free(result);
+ free(in2b);
+ free(in1b);
+}
diff --git a/src/c/signalProcessing/conv2d/Makefile.am b/src/c/signalProcessing/conv2d/Makefile.am
new file mode 100644
index 0000000..ac53db6
--- /dev/null
+++ b/src/c/signalProcessing/conv2d/Makefile.am
@@ -0,0 +1,64 @@
+##
+## 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
+##
+##
+
+
+
+
+libConv2d_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+
+instdir = $(top_builddir)/lib
+
+
+pkglib_LTLIBRARIES = libConv2d.la
+
+HEAD = ../includes/conv2d.h
+
+libConv2d_la_SOURCES = $(HEAD) \
+ sconv2da.c \
+ dconv2da.c \
+ cconv2da.c \
+ zconv2da.c
+
+
+###############
+#### Check ####
+###############
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ libConv2d.la
+
+
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+check_PROGRAMS = testFloatConv2d testDoubleConv2d
+
+TESTS = testFloatConv2d testDoubleConv2d
+
+testDoubleConv2d_SOURCES = testDoubleConv2d.c
+testDoubleConv2d_LDADD = $(check_LDADD)
+testDoubleConv2d_CFLAGS = $(check_INCLUDES)
+
+testFloatConv2d_SOURCES = testFloatConv2d.c
+testFloatConv2d_LDADD = $(check_LDADD)
+testFloatConv2d_CFLAGS = $(check_INCLUDES)
+
+
+
diff --git a/src/c/signalProcessing/conv2d/Makefile.in b/src/c/signalProcessing/conv2d/Makefile.in
new file mode 100644
index 0000000..d1a0ba8
--- /dev/null
+++ b/src/c/signalProcessing/conv2d/Makefile.in
@@ -0,0 +1,749 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+check_PROGRAMS = testFloatConv2d$(EXEEXT) testDoubleConv2d$(EXEEXT)
+TESTS = testFloatConv2d$(EXEEXT) testDoubleConv2d$(EXEEXT)
+subdir = src/c/signalProcessing/conv2d
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/includes/machine.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkglibdir)"
+LTLIBRARIES = $(pkglib_LTLIBRARIES)
+libConv2d_la_LIBADD =
+am__objects_1 =
+am_libConv2d_la_OBJECTS = $(am__objects_1) libConv2d_la-sconv2da.lo \
+ libConv2d_la-dconv2da.lo libConv2d_la-cconv2da.lo \
+ libConv2d_la-zconv2da.lo
+libConv2d_la_OBJECTS = $(am_libConv2d_la_OBJECTS)
+libConv2d_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libConv2d_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testDoubleConv2d_OBJECTS = \
+ testDoubleConv2d-testDoubleConv2d.$(OBJEXT)
+testDoubleConv2d_OBJECTS = $(am_testDoubleConv2d_OBJECTS)
+testDoubleConv2d_DEPENDENCIES = $(check_LDADD)
+testDoubleConv2d_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testDoubleConv2d_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testFloatConv2d_OBJECTS = \
+ testFloatConv2d-testFloatConv2d.$(OBJEXT)
+testFloatConv2d_OBJECTS = $(am_testFloatConv2d_OBJECTS)
+testFloatConv2d_DEPENDENCIES = $(check_LDADD)
+testFloatConv2d_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testFloatConv2d_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libConv2d_la_SOURCES) $(testDoubleConv2d_SOURCES) \
+ $(testFloatConv2d_SOURCES)
+DIST_SOURCES = $(libConv2d_la_SOURCES) $(testDoubleConv2d_SOURCES) \
+ $(testFloatConv2d_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBMATH = @LIBMATH@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libConv2d_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+instdir = $(top_builddir)/lib
+pkglib_LTLIBRARIES = libConv2d.la
+HEAD = ../includes/conv2d.h
+libConv2d_la_SOURCES = $(HEAD) \
+ sconv2da.c \
+ dconv2da.c \
+ cconv2da.c \
+ zconv2da.c
+
+
+###############
+#### Check ####
+###############
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ libConv2d.la
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+testDoubleConv2d_SOURCES = testDoubleConv2d.c
+testDoubleConv2d_LDADD = $(check_LDADD)
+testDoubleConv2d_CFLAGS = $(check_INCLUDES)
+testFloatConv2d_SOURCES = testFloatConv2d.c
+testFloatConv2d_LDADD = $(check_LDADD)
+testFloatConv2d_CFLAGS = $(check_INCLUDES)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/c/signalProcessing/conv2d/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/c/signalProcessing/conv2d/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ }
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libConv2d.la: $(libConv2d_la_OBJECTS) $(libConv2d_la_DEPENDENCIES)
+ $(libConv2d_la_LINK) -rpath $(pkglibdir) $(libConv2d_la_OBJECTS) $(libConv2d_la_LIBADD) $(LIBS)
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+testDoubleConv2d$(EXEEXT): $(testDoubleConv2d_OBJECTS) $(testDoubleConv2d_DEPENDENCIES)
+ @rm -f testDoubleConv2d$(EXEEXT)
+ $(testDoubleConv2d_LINK) $(testDoubleConv2d_OBJECTS) $(testDoubleConv2d_LDADD) $(LIBS)
+testFloatConv2d$(EXEEXT): $(testFloatConv2d_OBJECTS) $(testFloatConv2d_DEPENDENCIES)
+ @rm -f testFloatConv2d$(EXEEXT)
+ $(testFloatConv2d_LINK) $(testFloatConv2d_OBJECTS) $(testFloatConv2d_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libConv2d_la-cconv2da.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libConv2d_la-dconv2da.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libConv2d_la-sconv2da.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libConv2d_la-zconv2da.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDoubleConv2d-testDoubleConv2d.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFloatConv2d-testFloatConv2d.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+libConv2d_la-sconv2da.lo: sconv2da.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv2d_la_CFLAGS) $(CFLAGS) -MT libConv2d_la-sconv2da.lo -MD -MP -MF $(DEPDIR)/libConv2d_la-sconv2da.Tpo -c -o libConv2d_la-sconv2da.lo `test -f 'sconv2da.c' || echo '$(srcdir)/'`sconv2da.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libConv2d_la-sconv2da.Tpo $(DEPDIR)/libConv2d_la-sconv2da.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sconv2da.c' object='libConv2d_la-sconv2da.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv2d_la_CFLAGS) $(CFLAGS) -c -o libConv2d_la-sconv2da.lo `test -f 'sconv2da.c' || echo '$(srcdir)/'`sconv2da.c
+
+libConv2d_la-dconv2da.lo: dconv2da.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv2d_la_CFLAGS) $(CFLAGS) -MT libConv2d_la-dconv2da.lo -MD -MP -MF $(DEPDIR)/libConv2d_la-dconv2da.Tpo -c -o libConv2d_la-dconv2da.lo `test -f 'dconv2da.c' || echo '$(srcdir)/'`dconv2da.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libConv2d_la-dconv2da.Tpo $(DEPDIR)/libConv2d_la-dconv2da.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dconv2da.c' object='libConv2d_la-dconv2da.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv2d_la_CFLAGS) $(CFLAGS) -c -o libConv2d_la-dconv2da.lo `test -f 'dconv2da.c' || echo '$(srcdir)/'`dconv2da.c
+
+libConv2d_la-cconv2da.lo: cconv2da.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv2d_la_CFLAGS) $(CFLAGS) -MT libConv2d_la-cconv2da.lo -MD -MP -MF $(DEPDIR)/libConv2d_la-cconv2da.Tpo -c -o libConv2d_la-cconv2da.lo `test -f 'cconv2da.c' || echo '$(srcdir)/'`cconv2da.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libConv2d_la-cconv2da.Tpo $(DEPDIR)/libConv2d_la-cconv2da.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cconv2da.c' object='libConv2d_la-cconv2da.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv2d_la_CFLAGS) $(CFLAGS) -c -o libConv2d_la-cconv2da.lo `test -f 'cconv2da.c' || echo '$(srcdir)/'`cconv2da.c
+
+libConv2d_la-zconv2da.lo: zconv2da.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv2d_la_CFLAGS) $(CFLAGS) -MT libConv2d_la-zconv2da.lo -MD -MP -MF $(DEPDIR)/libConv2d_la-zconv2da.Tpo -c -o libConv2d_la-zconv2da.lo `test -f 'zconv2da.c' || echo '$(srcdir)/'`zconv2da.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libConv2d_la-zconv2da.Tpo $(DEPDIR)/libConv2d_la-zconv2da.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zconv2da.c' object='libConv2d_la-zconv2da.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libConv2d_la_CFLAGS) $(CFLAGS) -c -o libConv2d_la-zconv2da.lo `test -f 'zconv2da.c' || echo '$(srcdir)/'`zconv2da.c
+
+testDoubleConv2d-testDoubleConv2d.o: testDoubleConv2d.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleConv2d_CFLAGS) $(CFLAGS) -MT testDoubleConv2d-testDoubleConv2d.o -MD -MP -MF $(DEPDIR)/testDoubleConv2d-testDoubleConv2d.Tpo -c -o testDoubleConv2d-testDoubleConv2d.o `test -f 'testDoubleConv2d.c' || echo '$(srcdir)/'`testDoubleConv2d.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleConv2d-testDoubleConv2d.Tpo $(DEPDIR)/testDoubleConv2d-testDoubleConv2d.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleConv2d.c' object='testDoubleConv2d-testDoubleConv2d.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleConv2d_CFLAGS) $(CFLAGS) -c -o testDoubleConv2d-testDoubleConv2d.o `test -f 'testDoubleConv2d.c' || echo '$(srcdir)/'`testDoubleConv2d.c
+
+testDoubleConv2d-testDoubleConv2d.obj: testDoubleConv2d.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleConv2d_CFLAGS) $(CFLAGS) -MT testDoubleConv2d-testDoubleConv2d.obj -MD -MP -MF $(DEPDIR)/testDoubleConv2d-testDoubleConv2d.Tpo -c -o testDoubleConv2d-testDoubleConv2d.obj `if test -f 'testDoubleConv2d.c'; then $(CYGPATH_W) 'testDoubleConv2d.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleConv2d.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleConv2d-testDoubleConv2d.Tpo $(DEPDIR)/testDoubleConv2d-testDoubleConv2d.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleConv2d.c' object='testDoubleConv2d-testDoubleConv2d.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleConv2d_CFLAGS) $(CFLAGS) -c -o testDoubleConv2d-testDoubleConv2d.obj `if test -f 'testDoubleConv2d.c'; then $(CYGPATH_W) 'testDoubleConv2d.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleConv2d.c'; fi`
+
+testFloatConv2d-testFloatConv2d.o: testFloatConv2d.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatConv2d_CFLAGS) $(CFLAGS) -MT testFloatConv2d-testFloatConv2d.o -MD -MP -MF $(DEPDIR)/testFloatConv2d-testFloatConv2d.Tpo -c -o testFloatConv2d-testFloatConv2d.o `test -f 'testFloatConv2d.c' || echo '$(srcdir)/'`testFloatConv2d.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatConv2d-testFloatConv2d.Tpo $(DEPDIR)/testFloatConv2d-testFloatConv2d.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatConv2d.c' object='testFloatConv2d-testFloatConv2d.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatConv2d_CFLAGS) $(CFLAGS) -c -o testFloatConv2d-testFloatConv2d.o `test -f 'testFloatConv2d.c' || echo '$(srcdir)/'`testFloatConv2d.c
+
+testFloatConv2d-testFloatConv2d.obj: testFloatConv2d.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatConv2d_CFLAGS) $(CFLAGS) -MT testFloatConv2d-testFloatConv2d.obj -MD -MP -MF $(DEPDIR)/testFloatConv2d-testFloatConv2d.Tpo -c -o testFloatConv2d-testFloatConv2d.obj `if test -f 'testFloatConv2d.c'; then $(CYGPATH_W) 'testFloatConv2d.c'; else $(CYGPATH_W) '$(srcdir)/testFloatConv2d.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatConv2d-testFloatConv2d.Tpo $(DEPDIR)/testFloatConv2d-testFloatConv2d.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatConv2d.c' object='testFloatConv2d-testFloatConv2d.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatConv2d_CFLAGS) $(CFLAGS) -c -o testFloatConv2d-testFloatConv2d.obj `if test -f 'testFloatConv2d.c'; then $(CYGPATH_W) 'testFloatConv2d.c'; else $(CYGPATH_W) '$(srcdir)/testFloatConv2d.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(pkglibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pkglibLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pkglibLTLIBRARIES
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-pkglibLTLIBRARIES install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-pkglibLTLIBRARIES
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/c/signalProcessing/conv2d/cconv2da.c b/src/c/signalProcessing/conv2d/cconv2da.c
new file mode 100644
index 0000000..fe855ee
--- /dev/null
+++ b/src/c/signalProcessing/conv2d/cconv2da.c
@@ -0,0 +1,37 @@
+/*
+ * 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 "conv2d.h"
+#include "multiplication.h"
+#include "addition.h"
+
+void cconv2da(floatComplex *in1, int lines1, int columns1, floatComplex *in2, int lines2, int columns2, floatComplex *out){
+ int i,j,k1,k2;
+ floatComplex accu;
+
+ for (i=0;i<lines1+lines2-1;i++){
+ for (j=0;j<columns1+columns2-1;j++){
+ accu=FloatComplex(0,0);
+ for (k1=0;k1<i+1;k1++){
+ if ( (k1<lines1)&&((i-k1)<lines2) ){
+ for(k2=0;k2<j+1;k2++){
+ if ( (k2<columns1)&&((j-k2)<columns2) )
+ accu = cadds(accu , cmuls(in1[k1+k2*lines1],in2[i-k1+(j-k2)*lines2]));
+ }
+ }
+ }
+ out[i+j*(lines1+lines2-1)]=accu;
+ }
+ }
+}
+
+
diff --git a/src/c/signalProcessing/conv2d/dconv2da.c b/src/c/signalProcessing/conv2d/dconv2da.c
new file mode 100644
index 0000000..6606e81
--- /dev/null
+++ b/src/c/signalProcessing/conv2d/dconv2da.c
@@ -0,0 +1,35 @@
+/*
+ * 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 "conv2d.h"
+
+
+void dconv2da(double *in1, int lines1, int columns1, double *in2, int lines2, int columns2, double *out){
+ int i,j,k1,k2;
+ double accu;
+
+ for (i=0;i<lines1+lines2-1;i++){
+ for (j=0;j<columns1+columns2-1;j++){
+ accu=0;
+ for (k1=0;k1<i+1;k1++){
+ if ((k1<lines1)&&((i-k1)<lines2)){
+ for(k2=0;k2<j+1;k2++){
+ if ((k2<columns1)&&((j-k2)<columns2))
+ accu += in1[k1+k2*lines1]*in2[i-k1+(j-k2)*lines2];
+ }
+ }
+ }
+ out[i+j*(lines1+lines2-1)]=accu;
+ }
+ }
+}
+
diff --git a/src/c/signalProcessing/conv2d/sconv2da.c b/src/c/signalProcessing/conv2d/sconv2da.c
new file mode 100644
index 0000000..5403eef
--- /dev/null
+++ b/src/c/signalProcessing/conv2d/sconv2da.c
@@ -0,0 +1,36 @@
+/*
+ * 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 "conv2d.h"
+
+
+void sconv2da(float *in1, int lines1, int columns1, float *in2, int lines2, int columns2, float *out){
+ int i,j,k1,k2;
+ float accu;
+
+ for (i=0;i<lines1+lines2-1;i++){
+ for (j=0;j<columns1+columns2-1;j++){
+ accu=0;
+ for (k1=0;k1<i+1;k1++){
+ if ((k1<lines1)&&((i-k1)<lines2)){
+ for(k2=0;k2<j+1;k2++){
+ if ((k2<columns1)&&((j-k2)<columns2))
+ accu += in1[k1+k2*lines1]*in2[i-k1+(j-k2)*lines2];
+ }
+ }
+ }
+ out[i+j*(lines1+lines2-1)]=accu;
+ }
+ }
+}
+
+
diff --git a/src/c/signalProcessing/conv2d/testDoubleConv2d.c b/src/c/signalProcessing/conv2d/testDoubleConv2d.c
new file mode 100644
index 0000000..e6feae2
--- /dev/null
+++ b/src/c/signalProcessing/conv2d/testDoubleConv2d.c
@@ -0,0 +1,119 @@
+/*
+ * 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 <assert.h>
+#include <math.h>
+#include "conv2d.h"
+#include <stdio.h>
+#define SOURCE1 {0.27602507699857836698,0.67970267685367480315,0.65509800397384065906,\
+0.16261173519463056891,0.11899768155837664452,0.49836405198214295265,\
+0.95974395851608107488,0.34038572666613320372,0.58526775097977734585}
+
+#define SOURCE2 {0.22381193949113697972,0.75126705930565285119,0.25509511545926910614,0.50595705166514237661,\
+0.69907672265668596712,0.89090325253579849551,0.95929142520544430361,0.54721552996380307121,\
+0.13862444282867913969,0.14929400555905747439,0.25750825412373645751,0.84071725598366253696,\
+0.25428217897153104765,0.81428482606881635864,0.24352496872498929914,0.92926362318722777189}
+
+#define RESULT {0.06177770783124224979,0.35949412227527688390,0.72766963495480452284,0.80519921797623728033,0.51101266335063399993,0.33145145464232411703,\
+0.22935715403715500882,0.86987390060810976244,1.57072190340944928266,1.87374187807601977340,1.18771170991100438741,0.61063060781955358358,\
+0.36674405818143579472,1.16069853832181757447,1.50530552987165244794,2.16413391928651943630,1.60484415693162763006,1.11958509084199531181,\
+0.76366488032771995265,1.53136700662003777396,2.54906722776044070145,2.57034999375695782931,1.76723864513866257830,1.34800960550190063181,\
+0.17439323785911495235,0.35314105985283195110,0.64231507683460742353,1.56780077060808920031,0.66882373773691206065,0.95515628223064197311,\
+0.24404578502623180958,0.86805896659833670093,0.65971570871717122309,1.45132222047376413521,0.45883538439608340109,0.54386803081010803851}
+
+
+#define REAL1 {0.66538110421970486641,0.62839178834110498428, 0.84974523587152361870,0.68573101982474327087 }
+
+#define IMAG1 {-0.87821648130193352699,-0.06837403681129217148,\
+-0.56084860628470778465,-0.66235693730413913727}
+
+#define REAL2 {0.33217189135029911995,0.59350947011262178421,0.50153415976092219353,0.43685875833034515381,\
+0.26931248093023896217,0.63257448654621839523,0.40519540151581168175,0.91847078315913677216,\
+0.04373343335464596748,0.48185089323669672012,0.26395560009405016899,0.41481037065386772156,\
+0.28064980218186974525,0.12800584640353918076,0.77831285959109663963,0.21190304495394229889}
+
+#define IMAG2 {-0.11213546665385365486,-0.68568959552794694901,-0.15312166837975382805,-0.69708506017923355103,\
+-0.84155184263363480568,-0.40620247554033994675,-0.40948254754766821861,-0.87841258011758327484,\
+-0.11383596854284405708,-0.19983377400785684586,-0.56186607433483004570,-0.58961773291230201721,\
+-0.68539796629920601845,-0.89062247332185506821,-0.50422128057107329369,-0.34936154074966907501}
+
+#define REALRES {0.12254168490351219356,-0.00620698294409172124,0.52531049188577938480,-0.01682362473694332117,0.22685593683438345924,\
+-0.34049880015190781002,0.44913351267544954215,0.57284073382943700992,0.28907598257968836197,0.35494736024841355704,\
+-0.31400940398865162528,0.10179275637972534652,0.25069879068018435797,0.18008660250348096366,0.26835012662172041953,\
+-0.44187118264088443009,-0.31552872228703227053,0.20183362693927198173,0.11943448752613922137,0.00318181727621991151,\
+-0.14592366179695342998,-0.65225983747193394535,-0.12355655213817345883,0.18386347752483947482,-0.08609354902257074227}
+
+#define IMAGRES {-0.36633165023340091837,-1.07065163823997133719,-1.01380217936246941335,-0.97799610277246618040,-0.46791232441530977715,\
+-1.07805207455505658309,-2.58549659104333517945,-2.20153008389715321158,-2.95066686999604854691,-1.38215608568270642564,\
+-0.98029992300656176862,-2.08606516328413960082,-2.03693007812789206312,-2.93846237331332016396,-1.60958345050271689480,\
+-0.82378154448145179956,-1.70198901954439785200,-2.66911026836615317137,-2.08241271540499273129,-0.91309628593039071642,\
+-0.73981570694656195730,-1.48448309406143419409,-1.56048833083614346684,-1.27699492716519591440,-0.37992349748692871847}
+
+static void dconv2daTest(void){
+ int i;
+ double in1[] = SOURCE1;
+ double in2[] = SOURCE2;
+ double res[] = RESULT;
+ double out[36],outTest[9],outTest2[12*16];
+ double test1[] = {1,2,3};
+ double resTest[] ={1,2,3,2,4,6,3,6,9};
+ double inTest1[] = {1,2,3,4,5,6,7,8,9,10,11,12};
+ double inTest2[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
+ dconv2da(in1,3,3,in2,4,4,out);
+ for (i=0;i<36;i++){
+ assert( ( fabs(out[i]-res[i]) / fabs(out[i]) ) <3e-16);
+ }
+
+ dconv2da(test1,1,3,test1,3,1,outTest);
+ for (i=0;i<9;i++){
+ assert( ( fabs(outTest[i]-resTest[i]) / fabs(outTest[i]) ) <3e-16);
+ }
+
+ dconv2da(inTest1,12,1,inTest2,1,16,outTest2);
+ for (i=0;i<12*16;i++){
+ printf("out[%d] : %f\n",i,outTest2[i]);
+ }
+
+}
+
+
+static void zconv2daTest(void){
+ int i;
+ double rin1[] = REAL1;
+ double iin1[] = IMAG1;
+ double rin2[] = REAL2;
+ double iin2[] = IMAG2;
+ double rres[] = REALRES;
+ double ires[] = IMAGRES;
+ doubleComplex *in1, *in2,out[25];
+
+ in1=DoubleComplexMatrix(rin1,iin1,4);
+ in2=DoubleComplexMatrix(rin2,iin2,16);
+ zconv2da(in1,2,2,in2,4,4,out);
+ for (i=0;i<25;i++){
+ assert( ( fabs(zreals(out[i])-rres[i]) / fabs(zreals(out[i])) ) <3e-14);
+ assert( ( fabs(zimags(out[i])-ires[i]) / fabs(zimags(out[i])) ) <3e-14);
+ }
+}
+
+
+static int conv2dTest(void){
+ dconv2daTest();
+ zconv2daTest();
+ return 0;
+}
+
+int main (void){
+ assert(conv2dTest()==0);
+ return 0;
+}
+
diff --git a/src/c/signalProcessing/conv2d/testFloatConv2d.c b/src/c/signalProcessing/conv2d/testFloatConv2d.c
new file mode 100644
index 0000000..0166804
--- /dev/null
+++ b/src/c/signalProcessing/conv2d/testFloatConv2d.c
@@ -0,0 +1,106 @@
+/*
+ * 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 <assert.h>
+#include <math.h>
+#include <stdio.h>
+#include "conv2d.h"
+
+#define SOURCE1 {0.27602507699857836698f,0.67970267685367480315f,0.65509800397384065906f,\
+0.16261173519463056891f,0.11899768155837664452f,0.49836405198214295265f,\
+0.95974395851608107488f,0.34038572666613320372f,0.58526775097977734585f}
+
+#define SOURCE2 {0.22381193949113697972f,0.75126705930565285119f,0.25509511545926910614f,0.50595705166514237661f,\
+0.69907672265668596712f,0.89090325253579849551f,0.95929142520544430361f,0.54721552996380307121f,\
+0.13862444282867913969f,0.14929400555905747439f,0.25750825412373645751f,0.84071725598366253696f,\
+0.25428217897153104765f,0.81428482606881635864f,0.24352496872498929914f,0.92926362318722777189f}
+
+#define RESULT {0.06177770783124224979f,0.35949412227527688390f,0.72766963495480452284f,0.80519921797623728033f,0.51101266335063399993f,0.33145145464232411703f,\
+0.22935715403715500882f,0.86987390060810976244f,1.57072190340944928266f,1.87374187807601977340f,1.18771170991100438741f,0.61063060781955358358f,\
+0.36674405818143579472f,1.16069853832181757447f,1.50530552987165244794f,2.16413391928651943630f,1.60484415693162763006f,1.11958509084199531181f,\
+0.76366488032771995265f,1.53136700662003777396f,2.54906722776044070145f,2.57034999375695782931f,1.76723864513866257830f,1.34800960550190063181f,\
+0.17439323785911495235f,0.35314105985283195110f,0.64231507683460742353f,1.56780077060808920031f,0.66882373773691206065f,0.95515628223064197311f,\
+0.24404578502623180958f,0.86805896659833670093f,0.65971570871717122309f,1.45132222047376413521f,0.45883538439608340109f,0.54386803081010803851f}
+
+
+#define REAL1 {0.66538110421970486641f,0.62839178834110498428f, 0.84974523587152361870f,0.68573101982474327087f }
+
+#define IMAG1 {-0.87821648130193352699f,-0.06837403681129217148f,\
+-0.56084860628470778465f,-0.66235693730413913727f}
+
+#define REAL2 {0.33217189135029911995f,0.59350947011262178421f,0.50153415976092219353f,0.43685875833034515381f,\
+0.26931248093023896217f,0.63257448654621839523f,0.40519540151581168175f,0.91847078315913677216f,\
+0.04373343335464596748f,0.48185089323669672012f,0.26395560009405016899f,0.41481037065386772156f,\
+0.28064980218186974525f,0.12800584640353918076f,0.77831285959109663963f,0.21190304495394229889f}
+
+#define IMAG2 {-0.11213546665385365486f,-0.68568959552794694901f,-0.15312166837975382805f,-0.69708506017923355103f,\
+-0.84155184263363480568f,-0.40620247554033994675f,-0.40948254754766821861f,-0.87841258011758327484f,\
+-0.11383596854284405708f,-0.19983377400785684586f,-0.56186607433483004570f,-0.58961773291230201721f,\
+-0.68539796629920601845f,-0.89062247332185506821f,-0.50422128057107329369f,-0.34936154074966907501f}
+
+#define REALRES {0.12254168490351219356f,-0.00620698294409172124f,0.52531049188577938480f,-0.01682362473694332117f,0.22685593683438345924f,\
+-0.34049880015190781002f,0.44913351267544954215f,0.57284073382943700992f,0.28907598257968836197f,0.35494736024841355704f,\
+-0.31400940398865162528f,0.10179275637972534652f,0.25069879068018435797f,0.18008660250348096366f,0.26835012662172041953f,\
+-0.44187118264088443009f,-0.31552872228703227053f,0.20183362693927198173f,0.11943448752613922137f,0.00318181727621991151f,\
+-0.14592366179695342998f,-0.65225983747193394535f,-0.12355655213817345883f,0.18386347752483947482f,-0.08609354902257074227f}
+
+#define IMAGRES {-0.36633165023340091837f,-1.07065163823997133719f,-1.01380217936246941335f,-0.97799610277246618040f,-0.46791232441530977715f,\
+-1.07805207455505658309f,-2.58549659104333517945f,-2.20153008389715321158f,-2.95066686999604854691f,-1.38215608568270642564f,\
+-0.98029992300656176862f,-2.08606516328413960082f,-2.03693007812789206312f,-2.93846237331332016396f,-1.60958345050271689480f,\
+-0.82378154448145179956f,-1.70198901954439785200f,-2.66911026836615317137f,-2.08241271540499273129f,-0.91309628593039071642f,\
+-0.73981570694656195730f,-1.48448309406143419409f,-1.56048833083614346684f,-1.27699492716519591440f,-0.37992349748692871847f}
+
+
+static void sconv2daTest(void){
+ int i;
+ float in1[] = SOURCE1;
+ float in2[] = SOURCE2;
+ float res[] = RESULT;
+ float out[36];
+
+ sconv2da(in1,3,3,in2,4,4,out);
+ for (i=0;i<36;i++){
+ assert( ( fabs(out[i]-res[i]) / fabs(out[i]) ) <1e-6);
+ }
+}
+
+
+static void cconv2daTest(void){
+ int i;
+ float rin1[] = REAL1;
+ float iin1[] = IMAG1;
+ float rin2[] = REAL2;
+ float iin2[] = IMAG2;
+ float rres[] = REALRES;
+ float ires[] = IMAGRES;
+ floatComplex *in1, *in2,out[25];
+
+ in1=FloatComplexMatrix(rin1,iin1,4);
+ in2=FloatComplexMatrix(rin2,iin2,16);
+ cconv2da(in1,2,2,in2,4,4,out);
+ for (i=0;i<25;i++){
+ assert( ( fabs(creals(out[i])-rres[i]) / fabs(creals(out[i])) ) <3e-5);
+ assert( ( fabs(cimags(out[i])-ires[i]) / fabs(cimags(out[i])) ) <1e-5);
+ }
+}
+
+
+static int conv2dTest(void){
+ sconv2daTest();
+ cconv2daTest();
+ return 0;
+}
+
+int main (void){
+ assert(conv2dTest()==0);
+ return 0;
+}
diff --git a/src/c/signalProcessing/conv2d/test_DoubleConv2d/testDoubleConv2d.vcxproj b/src/c/signalProcessing/conv2d/test_DoubleConv2d/testDoubleConv2d.vcxproj
new file mode 100644
index 0000000..f917223
--- /dev/null
+++ b/src/c/signalProcessing/conv2d/test_DoubleConv2d/testDoubleConv2d.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C46C7CDE-9D38-42E5-9DBA-3E7306033450}</ProjectGuid>
+ <RootNamespace>testDoubleConv2d</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleConv2d.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/conv2d/test_DoubleConv2d/testDoubleConv2d.vcxproj.filters b/src/c/signalProcessing/conv2d/test_DoubleConv2d/testDoubleConv2d.vcxproj.filters
new file mode 100644
index 0000000..2e9c4cf
--- /dev/null
+++ b/src/c/signalProcessing/conv2d/test_DoubleConv2d/testDoubleConv2d.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleConv2d.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/conv2d/test_FloatConv2d/testFloatConv2d.vcxproj b/src/c/signalProcessing/conv2d/test_FloatConv2d/testFloatConv2d.vcxproj
new file mode 100644
index 0000000..f6c8d3f
--- /dev/null
+++ b/src/c/signalProcessing/conv2d/test_FloatConv2d/testFloatConv2d.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{26170083-8042-4E04-BFE3-B553A5A8D481}</ProjectGuid>
+ <RootNamespace>testFloatConv2d</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatConv2d.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/conv2d/test_FloatConv2d/testFloatConv2d.vcxproj.filters b/src/c/signalProcessing/conv2d/test_FloatConv2d/testFloatConv2d.vcxproj.filters
new file mode 100644
index 0000000..e0a0b99
--- /dev/null
+++ b/src/c/signalProcessing/conv2d/test_FloatConv2d/testFloatConv2d.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatConv2d.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/conv2d/zconv2da.c b/src/c/signalProcessing/conv2d/zconv2da.c
new file mode 100644
index 0000000..9fe9b3f
--- /dev/null
+++ b/src/c/signalProcessing/conv2d/zconv2da.c
@@ -0,0 +1,37 @@
+/*
+ * 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 "conv2d.h"
+#include "multiplication.h"
+#include "addition.h"
+
+void zconv2da(doubleComplex *in1, int lines1, int columns1, doubleComplex *in2, int lines2, int columns2, doubleComplex *out){
+ int i,j,k1,k2;
+ doubleComplex accu;
+
+ for (i=0;i<lines1+lines2-1;i++){
+ for (j=0;j<columns1+columns2-1;j++){
+ accu=DoubleComplex(0,0);
+ for (k1=0;k1<i+1;k1++){
+ if ( (k1<lines1)&&((i-k1)<lines2) ){
+ for(k2=0;k2<j+1;k2++){
+ if ( (k2<columns1)&&((j-k2)<columns2) )
+ accu = zadds(accu,zmuls(in1[k1+k2*lines1],in2[i-k1+(j-k2)*lines2]));
+ }
+ }
+ }
+ out[i+j*(lines1+lines2-1)]=accu;
+ }
+ }
+}
+
+
diff --git a/src/c/signalProcessing/crossCorr/Makefile.am b/src/c/signalProcessing/crossCorr/Makefile.am
new file mode 100644
index 0000000..d9521e9
--- /dev/null
+++ b/src/c/signalProcessing/crossCorr/Makefile.am
@@ -0,0 +1,66 @@
+##
+## 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
+##
+##
+
+
+
+
+libCrossCorr_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+
+instdir = $(top_builddir)/lib
+
+
+pkglib_LTLIBRARIES = libCrossCorr.la
+
+HEAD = ../includes/crossCorr.h
+
+libCrossCorr_la_SOURCES = $(HEAD) \
+ scrossCorra.c \
+ dcrossCorra.c \
+ ccrossCorra.c \
+ zcrossCorra.c
+
+
+###############
+#### Check ####
+###############
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/conj/libConj.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/signalProcessing/conv2d/libConv2d.la \
+ libCrossCorr.la
+
+
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+check_PROGRAMS = testFloatCrossCorr testDoubleCrossCorr
+
+TESTS = testFloatCrossCorr testDoubleCrossCorr
+
+testDoubleCrossCorr_SOURCES = testDoubleCrossCorr.c
+testDoubleCrossCorr_LDADD = $(check_LDADD)
+testDoubleCrossCorr_CFLAGS = $(check_INCLUDES)
+
+testFloatCrossCorr_SOURCES = testFloatCrossCorr.c
+testFloatCrossCorr_LDADD = $(check_LDADD)
+testFloatCrossCorr_CFLAGS = $(check_INCLUDES)
+
+
+
diff --git a/src/c/signalProcessing/crossCorr/Makefile.in b/src/c/signalProcessing/crossCorr/Makefile.in
new file mode 100644
index 0000000..b5fa202
--- /dev/null
+++ b/src/c/signalProcessing/crossCorr/Makefile.in
@@ -0,0 +1,754 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+check_PROGRAMS = testFloatCrossCorr$(EXEEXT) \
+ testDoubleCrossCorr$(EXEEXT)
+TESTS = testFloatCrossCorr$(EXEEXT) testDoubleCrossCorr$(EXEEXT)
+subdir = src/c/signalProcessing/crossCorr
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/includes/machine.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkglibdir)"
+LTLIBRARIES = $(pkglib_LTLIBRARIES)
+libCrossCorr_la_LIBADD =
+am__objects_1 =
+am_libCrossCorr_la_OBJECTS = $(am__objects_1) \
+ libCrossCorr_la-scrossCorra.lo libCrossCorr_la-dcrossCorra.lo \
+ libCrossCorr_la-ccrossCorra.lo libCrossCorr_la-zcrossCorra.lo
+libCrossCorr_la_OBJECTS = $(am_libCrossCorr_la_OBJECTS)
+libCrossCorr_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libCrossCorr_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testDoubleCrossCorr_OBJECTS = \
+ testDoubleCrossCorr-testDoubleCrossCorr.$(OBJEXT)
+testDoubleCrossCorr_OBJECTS = $(am_testDoubleCrossCorr_OBJECTS)
+testDoubleCrossCorr_DEPENDENCIES = $(check_LDADD)
+testDoubleCrossCorr_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(testDoubleCrossCorr_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_testFloatCrossCorr_OBJECTS = \
+ testFloatCrossCorr-testFloatCrossCorr.$(OBJEXT)
+testFloatCrossCorr_OBJECTS = $(am_testFloatCrossCorr_OBJECTS)
+testFloatCrossCorr_DEPENDENCIES = $(check_LDADD)
+testFloatCrossCorr_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(testFloatCrossCorr_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libCrossCorr_la_SOURCES) $(testDoubleCrossCorr_SOURCES) \
+ $(testFloatCrossCorr_SOURCES)
+DIST_SOURCES = $(libCrossCorr_la_SOURCES) \
+ $(testDoubleCrossCorr_SOURCES) $(testFloatCrossCorr_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBMATH = @LIBMATH@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libCrossCorr_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+instdir = $(top_builddir)/lib
+pkglib_LTLIBRARIES = libCrossCorr.la
+HEAD = ../includes/crossCorr.h
+libCrossCorr_la_SOURCES = $(HEAD) \
+ scrossCorra.c \
+ dcrossCorra.c \
+ ccrossCorra.c \
+ zcrossCorra.c
+
+
+###############
+#### Check ####
+###############
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/conj/libConj.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/signalProcessing/conv2d/libConv2d.la \
+ libCrossCorr.la
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+testDoubleCrossCorr_SOURCES = testDoubleCrossCorr.c
+testDoubleCrossCorr_LDADD = $(check_LDADD)
+testDoubleCrossCorr_CFLAGS = $(check_INCLUDES)
+testFloatCrossCorr_SOURCES = testFloatCrossCorr.c
+testFloatCrossCorr_LDADD = $(check_LDADD)
+testFloatCrossCorr_CFLAGS = $(check_INCLUDES)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/c/signalProcessing/crossCorr/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/c/signalProcessing/crossCorr/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ }
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libCrossCorr.la: $(libCrossCorr_la_OBJECTS) $(libCrossCorr_la_DEPENDENCIES)
+ $(libCrossCorr_la_LINK) -rpath $(pkglibdir) $(libCrossCorr_la_OBJECTS) $(libCrossCorr_la_LIBADD) $(LIBS)
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+testDoubleCrossCorr$(EXEEXT): $(testDoubleCrossCorr_OBJECTS) $(testDoubleCrossCorr_DEPENDENCIES)
+ @rm -f testDoubleCrossCorr$(EXEEXT)
+ $(testDoubleCrossCorr_LINK) $(testDoubleCrossCorr_OBJECTS) $(testDoubleCrossCorr_LDADD) $(LIBS)
+testFloatCrossCorr$(EXEEXT): $(testFloatCrossCorr_OBJECTS) $(testFloatCrossCorr_DEPENDENCIES)
+ @rm -f testFloatCrossCorr$(EXEEXT)
+ $(testFloatCrossCorr_LINK) $(testFloatCrossCorr_OBJECTS) $(testFloatCrossCorr_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libCrossCorr_la-ccrossCorra.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libCrossCorr_la-dcrossCorra.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libCrossCorr_la-scrossCorra.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libCrossCorr_la-zcrossCorra.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDoubleCrossCorr-testDoubleCrossCorr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFloatCrossCorr-testFloatCrossCorr.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+libCrossCorr_la-scrossCorra.lo: scrossCorra.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libCrossCorr_la_CFLAGS) $(CFLAGS) -MT libCrossCorr_la-scrossCorra.lo -MD -MP -MF $(DEPDIR)/libCrossCorr_la-scrossCorra.Tpo -c -o libCrossCorr_la-scrossCorra.lo `test -f 'scrossCorra.c' || echo '$(srcdir)/'`scrossCorra.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libCrossCorr_la-scrossCorra.Tpo $(DEPDIR)/libCrossCorr_la-scrossCorra.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='scrossCorra.c' object='libCrossCorr_la-scrossCorra.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libCrossCorr_la_CFLAGS) $(CFLAGS) -c -o libCrossCorr_la-scrossCorra.lo `test -f 'scrossCorra.c' || echo '$(srcdir)/'`scrossCorra.c
+
+libCrossCorr_la-dcrossCorra.lo: dcrossCorra.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libCrossCorr_la_CFLAGS) $(CFLAGS) -MT libCrossCorr_la-dcrossCorra.lo -MD -MP -MF $(DEPDIR)/libCrossCorr_la-dcrossCorra.Tpo -c -o libCrossCorr_la-dcrossCorra.lo `test -f 'dcrossCorra.c' || echo '$(srcdir)/'`dcrossCorra.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libCrossCorr_la-dcrossCorra.Tpo $(DEPDIR)/libCrossCorr_la-dcrossCorra.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dcrossCorra.c' object='libCrossCorr_la-dcrossCorra.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libCrossCorr_la_CFLAGS) $(CFLAGS) -c -o libCrossCorr_la-dcrossCorra.lo `test -f 'dcrossCorra.c' || echo '$(srcdir)/'`dcrossCorra.c
+
+libCrossCorr_la-ccrossCorra.lo: ccrossCorra.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libCrossCorr_la_CFLAGS) $(CFLAGS) -MT libCrossCorr_la-ccrossCorra.lo -MD -MP -MF $(DEPDIR)/libCrossCorr_la-ccrossCorra.Tpo -c -o libCrossCorr_la-ccrossCorra.lo `test -f 'ccrossCorra.c' || echo '$(srcdir)/'`ccrossCorra.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libCrossCorr_la-ccrossCorra.Tpo $(DEPDIR)/libCrossCorr_la-ccrossCorra.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ccrossCorra.c' object='libCrossCorr_la-ccrossCorra.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libCrossCorr_la_CFLAGS) $(CFLAGS) -c -o libCrossCorr_la-ccrossCorra.lo `test -f 'ccrossCorra.c' || echo '$(srcdir)/'`ccrossCorra.c
+
+libCrossCorr_la-zcrossCorra.lo: zcrossCorra.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libCrossCorr_la_CFLAGS) $(CFLAGS) -MT libCrossCorr_la-zcrossCorra.lo -MD -MP -MF $(DEPDIR)/libCrossCorr_la-zcrossCorra.Tpo -c -o libCrossCorr_la-zcrossCorra.lo `test -f 'zcrossCorra.c' || echo '$(srcdir)/'`zcrossCorra.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libCrossCorr_la-zcrossCorra.Tpo $(DEPDIR)/libCrossCorr_la-zcrossCorra.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zcrossCorra.c' object='libCrossCorr_la-zcrossCorra.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libCrossCorr_la_CFLAGS) $(CFLAGS) -c -o libCrossCorr_la-zcrossCorra.lo `test -f 'zcrossCorra.c' || echo '$(srcdir)/'`zcrossCorra.c
+
+testDoubleCrossCorr-testDoubleCrossCorr.o: testDoubleCrossCorr.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleCrossCorr_CFLAGS) $(CFLAGS) -MT testDoubleCrossCorr-testDoubleCrossCorr.o -MD -MP -MF $(DEPDIR)/testDoubleCrossCorr-testDoubleCrossCorr.Tpo -c -o testDoubleCrossCorr-testDoubleCrossCorr.o `test -f 'testDoubleCrossCorr.c' || echo '$(srcdir)/'`testDoubleCrossCorr.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleCrossCorr-testDoubleCrossCorr.Tpo $(DEPDIR)/testDoubleCrossCorr-testDoubleCrossCorr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleCrossCorr.c' object='testDoubleCrossCorr-testDoubleCrossCorr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleCrossCorr_CFLAGS) $(CFLAGS) -c -o testDoubleCrossCorr-testDoubleCrossCorr.o `test -f 'testDoubleCrossCorr.c' || echo '$(srcdir)/'`testDoubleCrossCorr.c
+
+testDoubleCrossCorr-testDoubleCrossCorr.obj: testDoubleCrossCorr.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleCrossCorr_CFLAGS) $(CFLAGS) -MT testDoubleCrossCorr-testDoubleCrossCorr.obj -MD -MP -MF $(DEPDIR)/testDoubleCrossCorr-testDoubleCrossCorr.Tpo -c -o testDoubleCrossCorr-testDoubleCrossCorr.obj `if test -f 'testDoubleCrossCorr.c'; then $(CYGPATH_W) 'testDoubleCrossCorr.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleCrossCorr.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleCrossCorr-testDoubleCrossCorr.Tpo $(DEPDIR)/testDoubleCrossCorr-testDoubleCrossCorr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleCrossCorr.c' object='testDoubleCrossCorr-testDoubleCrossCorr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleCrossCorr_CFLAGS) $(CFLAGS) -c -o testDoubleCrossCorr-testDoubleCrossCorr.obj `if test -f 'testDoubleCrossCorr.c'; then $(CYGPATH_W) 'testDoubleCrossCorr.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleCrossCorr.c'; fi`
+
+testFloatCrossCorr-testFloatCrossCorr.o: testFloatCrossCorr.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatCrossCorr_CFLAGS) $(CFLAGS) -MT testFloatCrossCorr-testFloatCrossCorr.o -MD -MP -MF $(DEPDIR)/testFloatCrossCorr-testFloatCrossCorr.Tpo -c -o testFloatCrossCorr-testFloatCrossCorr.o `test -f 'testFloatCrossCorr.c' || echo '$(srcdir)/'`testFloatCrossCorr.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatCrossCorr-testFloatCrossCorr.Tpo $(DEPDIR)/testFloatCrossCorr-testFloatCrossCorr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatCrossCorr.c' object='testFloatCrossCorr-testFloatCrossCorr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatCrossCorr_CFLAGS) $(CFLAGS) -c -o testFloatCrossCorr-testFloatCrossCorr.o `test -f 'testFloatCrossCorr.c' || echo '$(srcdir)/'`testFloatCrossCorr.c
+
+testFloatCrossCorr-testFloatCrossCorr.obj: testFloatCrossCorr.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatCrossCorr_CFLAGS) $(CFLAGS) -MT testFloatCrossCorr-testFloatCrossCorr.obj -MD -MP -MF $(DEPDIR)/testFloatCrossCorr-testFloatCrossCorr.Tpo -c -o testFloatCrossCorr-testFloatCrossCorr.obj `if test -f 'testFloatCrossCorr.c'; then $(CYGPATH_W) 'testFloatCrossCorr.c'; else $(CYGPATH_W) '$(srcdir)/testFloatCrossCorr.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatCrossCorr-testFloatCrossCorr.Tpo $(DEPDIR)/testFloatCrossCorr-testFloatCrossCorr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatCrossCorr.c' object='testFloatCrossCorr-testFloatCrossCorr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatCrossCorr_CFLAGS) $(CFLAGS) -c -o testFloatCrossCorr-testFloatCrossCorr.obj `if test -f 'testFloatCrossCorr.c'; then $(CYGPATH_W) 'testFloatCrossCorr.c'; else $(CYGPATH_W) '$(srcdir)/testFloatCrossCorr.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(pkglibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pkglibLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pkglibLTLIBRARIES
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-pkglibLTLIBRARIES install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-pkglibLTLIBRARIES
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/c/signalProcessing/crossCorr/ccrossCorra.c b/src/c/signalProcessing/crossCorr/ccrossCorra.c
new file mode 100644
index 0000000..e2c6641
--- /dev/null
+++ b/src/c/signalProcessing/crossCorr/ccrossCorra.c
@@ -0,0 +1,33 @@
+
+/*
+ * 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 "crossCorr.h"
+#include "conv2d.h"
+#include "conj.h"
+
+void ccrossCorra(floatComplex* in1, int rows1, int cols1, floatComplex* in2, int rows2, int cols2, floatComplex* out){
+ floatComplex *in2Copy;
+ int i;
+
+ in2Copy=(floatComplex *)malloc((unsigned int)rows2*sizeof(floatComplex));
+
+ /* We change in2 to be in appropriate form in in2Copy*/
+ for (i=0;i<(rows2*cols2);i++) in2Copy[i]=cconjs(in2[rows2*cols2-1-i]);
+
+ cconv2da(in1, rows1, cols1, in2Copy, rows2, cols2, out);
+
+ free(in2Copy);
+}
+
+
diff --git a/src/c/signalProcessing/crossCorr/dcrossCorra.c b/src/c/signalProcessing/crossCorr/dcrossCorra.c
new file mode 100644
index 0000000..b02298f
--- /dev/null
+++ b/src/c/signalProcessing/crossCorr/dcrossCorra.c
@@ -0,0 +1,37 @@
+
+/*
+ * 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 "crossCorr.h"
+#include "conv2d.h"
+
+void dcrossCorra(double* in1, int rows1, int cols1, double* in2, int rows2, int cols2, double* out){
+ double *in2Copy;
+ int i;
+
+ in2Copy=(double*)malloc((unsigned int)(rows2*cols2)*sizeof(double));
+
+ /* We change in2 to be in appropriate form in in2Copy*/
+ for (i=0;i<(rows2*cols2);i++)
+ {
+ in2Copy[i]=in2[rows2*cols2-1-i];
+ }
+
+ dconv2da(in1, rows1, cols1, in2Copy, rows2, cols2, out);
+
+ free(in2Copy);
+}
+
+
+
+
diff --git a/src/c/signalProcessing/crossCorr/scrossCorra.c b/src/c/signalProcessing/crossCorr/scrossCorra.c
new file mode 100644
index 0000000..ddc9df7
--- /dev/null
+++ b/src/c/signalProcessing/crossCorr/scrossCorra.c
@@ -0,0 +1,31 @@
+
+/*
+ * 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 "crossCorr.h"
+#include "conv2d.h"
+
+void scrossCorra(float* in1, int rows1, int cols1, float* in2, int rows2, int cols2, float* out){
+ float *in2Copy;
+ int i;
+
+ in2Copy=(float*)malloc((unsigned int)(rows2*cols2)*sizeof(float));
+
+ /* We change in2 to be in appropriate form in in2Copy*/
+ for (i=0;i<(rows2*cols2);i++) in2Copy[i]=in2[rows2*cols2-1-i];
+
+ sconv2da(in1, rows1, cols1, in2Copy, rows2, cols2, out);
+
+ free(in2Copy);
+
+}
diff --git a/src/c/signalProcessing/crossCorr/testDoubleCrossCorr.c b/src/c/signalProcessing/crossCorr/testDoubleCrossCorr.c
new file mode 100644
index 0000000..96f0053
--- /dev/null
+++ b/src/c/signalProcessing/crossCorr/testDoubleCrossCorr.c
@@ -0,0 +1,62 @@
+/*
+ * 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 <assert.h>
+#include <math.h>
+#include "crossCorr.h"
+#include <stdio.h>
+
+
+static void dcrossCorraTest(void){
+ int i;
+ double in1[] = {1,2,3,4,5,6,7,8,9,10,11,12};
+ double in2[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
+ double inV1[]={0.8812593049369752407074,0.459206754341721534729,0.4192749080248177051544,0.9930617930367588996887,0.1705299648456275463104,0.8114501461386680603027, 0.4106854074634611606598};
+ double inV2[]={0.5211019767448306083679, 0.2967169224284589290619, 0.4054284896701574325562, 0.6229536165483295917511};
+ double out[42],outV1[10],outV[12*16];
+
+ /* Test Matrice-Matrice */
+ dcrossCorra(in1,4,3,in2,4,4,out);
+ for (i=0;i<42;i++){
+ printf("out[%d] : %f\n",i,out[i]);
+ }
+
+ /* Test VecteuLigne-VecteurColonne */
+ dcrossCorra(in1,12,1,in2,1,16,outV);
+ for (i=0;i<12*16;i++){
+ printf("out[%d] : %f\n",i,outV[i]);
+ }
+
+ /* Test VecteurLigne-VecteurLigne */
+ dcrossCorra(inV1,1,7,inV2,1,4,outV1);
+ for (i=0;i<10;i++){
+ printf("out[%d] : %f\n",i,outV1[i]);
+ }
+}
+
+/*FIXME : aucun test pour les complexes*/
+static void zcrossCorraTest(void){
+
+}
+
+
+static int crossCorraTest(void){
+ dcrossCorraTest();
+ zcrossCorraTest();
+ return 0;
+}
+
+int main (void){
+ assert(crossCorraTest()==0);
+ return 0;
+}
+
diff --git a/src/c/signalProcessing/crossCorr/testFloatCrossCorr.c b/src/c/signalProcessing/crossCorr/testFloatCrossCorr.c
new file mode 100644
index 0000000..aace4b9
--- /dev/null
+++ b/src/c/signalProcessing/crossCorr/testFloatCrossCorr.c
@@ -0,0 +1,48 @@
+/*
+ * 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 <assert.h>
+#include <math.h>
+#include "crossCorr.h"
+#include <stdio.h>
+
+
+static void scrossCorraTest(void){
+ int i;
+ float in1[] = {1.0f,2.0f,3.0f,4.0f,5.0f,6.0f,7.0f,8.0f,9.0f,10.0f,11.0f,12.0f};
+ float in2[] = {1.0f,2.0f,3.0f,4.0f,5.0f,6.0f,7.0f,8.0f,9.0f,10.0f,11.0f,12.0f,13.0f,14.0f,15.0f,16.0f};
+
+ float out[42];
+
+ scrossCorra(in1,4,3,in2,4,4,out);
+ for (i=0;i<42;i++){
+ printf("out[%d] : %f\n",i,out[i]);
+ }
+}
+
+/*FIXME : aucun test pour les complexes*/
+static void ccrossCorraTest(void){
+
+}
+
+
+static int crossCorraTest(void){
+ scrossCorraTest();
+ ccrossCorraTest();
+ return 0;
+}
+
+int main (void){
+ assert(crossCorraTest()==0);
+ return 0;
+}
+
diff --git a/src/c/signalProcessing/crossCorr/test_DoubleCrossCorr/testDoubleCrossCorr.vcxproj b/src/c/signalProcessing/crossCorr/test_DoubleCrossCorr/testDoubleCrossCorr.vcxproj
new file mode 100644
index 0000000..a3159a9
--- /dev/null
+++ b/src/c/signalProcessing/crossCorr/test_DoubleCrossCorr/testDoubleCrossCorr.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{9CF61EF1-2FF6-4DC2-A6EE-00C2288732BD}</ProjectGuid>
+ <RootNamespace>testDoubleCrossCorr</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleCrossCorr.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/crossCorr/test_DoubleCrossCorr/testDoubleCrossCorr.vcxproj.filters b/src/c/signalProcessing/crossCorr/test_DoubleCrossCorr/testDoubleCrossCorr.vcxproj.filters
new file mode 100644
index 0000000..1f2dabb
--- /dev/null
+++ b/src/c/signalProcessing/crossCorr/test_DoubleCrossCorr/testDoubleCrossCorr.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleCrossCorr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/crossCorr/test_FloatCrossCorr/testFloatCrossCorr.vcxproj b/src/c/signalProcessing/crossCorr/test_FloatCrossCorr/testFloatCrossCorr.vcxproj
new file mode 100644
index 0000000..943d8aa
--- /dev/null
+++ b/src/c/signalProcessing/crossCorr/test_FloatCrossCorr/testFloatCrossCorr.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{0F19A6A2-2EE2-4E39-8A4C-2F898D4186CF}</ProjectGuid>
+ <RootNamespace>testFloatCrossCorr</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatCrossCorr.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/crossCorr/test_FloatCrossCorr/testFloatCrossCorr.vcxproj.filters b/src/c/signalProcessing/crossCorr/test_FloatCrossCorr/testFloatCrossCorr.vcxproj.filters
new file mode 100644
index 0000000..194ad9f
--- /dev/null
+++ b/src/c/signalProcessing/crossCorr/test_FloatCrossCorr/testFloatCrossCorr.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatCrossCorr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/crossCorr/zcrossCorra.c b/src/c/signalProcessing/crossCorr/zcrossCorra.c
new file mode 100644
index 0000000..f5659a3
--- /dev/null
+++ b/src/c/signalProcessing/crossCorr/zcrossCorra.c
@@ -0,0 +1,34 @@
+
+/*
+ * 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 "crossCorr.h"
+#include "conv2d.h"
+#include "conj.h"
+
+void zcrossCorra(doubleComplex* in1, int rows1, int cols1, doubleComplex* in2, int rows2, int cols2, doubleComplex* out){
+ doubleComplex *in2Copy;
+ int i;
+
+ in2Copy=(doubleComplex *)malloc((unsigned int)(rows2*cols2)*sizeof(doubleComplex));
+
+ /* We change in2 to be in appropriate form in in2Copy*/
+ for (i=0;i<(rows2*cols2);i++) in2Copy[i]=zconjs(in2[rows2*cols2-1-i]);
+
+ zconv2da(in1, rows1, cols1, in2Copy, rows2, cols2, out);
+
+ free(in2Copy);
+
+}
+
+
diff --git a/src/c/signalProcessing/ffilt/ffilt.h b/src/c/signalProcessing/ffilt/ffilt.h
new file mode 100644
index 0000000..9b98f34
--- /dev/null
+++ b/src/c/signalProcessing/ffilt/ffilt.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __FFILT_H__
+#define __FFILT_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void gffilts(char* ft,double N,double fc,double fh,double* oup);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __FFILT_H__ */
diff --git a/src/c/signalProcessing/ffilt/gffilts.c b/src/c/signalProcessing/ffilt/gffilts.c
new file mode 100644
index 0000000..538daf3
--- /dev/null
+++ b/src/c/signalProcessing/ffilt/gffilts.c
@@ -0,0 +1,90 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#include<stdio.h>
+#include<math.h>
+#include "filt_sinc.h"
+#include "ffilt.h"
+void gffilts(char* ft,int size,double N,double fc,double fh,double* oup)
+{
+ int sz=N;
+ double X[sz];
+ double no22=(N-1)/2;
+ int ino22=(int)no22;
+ if(ft[0]=='l')
+ {
+ dfilt_sincs(N,fc,X);
+ int k=0;
+ for(k=0;k<sz;k++)
+ {
+ oup[k]=X[k];
+ }
+ }
+ else if(ft[0]=='h')
+ {
+ int k=0;
+ dfilt_sincs(N,fc,X);
+ for(k=0;k<sz;k++)
+ {
+ oup[k]=-1*X[k];
+ }
+ int id=no22;
+ oup[id]=1+oup[id];
+ }
+ else if(ft[0]=='b')
+ {
+ double wc=M_PI*(fh+fc);
+ fc=(fh-fc)/2;
+ dfilt_sincs(N,fc,X);
+ double Y[sz];
+ double k=0;
+ for(k=-no22;k<=no22;k++)
+ {
+ int ind;
+ ind=k+no22;
+ Y[ind]=2*cos(wc*k);
+ }
+ int j=0;
+ for(j=0;j<sz;j++)
+ {
+ oup[j]=X[j]*Y[j];
+ }
+ }
+ else if(ft[0]=='s')
+ {
+ double wc=M_PI*(fh+fc);
+ fc=(fh-fc)/2;
+ dfilt_sincs(N,fc,X);
+ double Y[sz];
+ double k=0;
+ for(k=-no22;k<=no22;k++)
+ {
+ int ind;
+ ind=k+no22;
+ Y[ind]=2*cos(wc*k);
+ }
+ int j=0;
+ for(j=0;j<sz;j++)
+ {
+ oup[j]=-1*X[j]*Y[j];
+ }
+ int id=no22;
+ oup[id]=1+oup[id];
+ }
+}
+/*
+int main()
+{
+ string s;
+ int n;
+ double fl,fh;
+}
+*/
diff --git a/src/c/signalProcessing/ffilt/int_ffilt.h b/src/c/signalProcessing/ffilt/int_ffilt.h
new file mode 100644
index 0000000..83f4482
--- /dev/null
+++ b/src/c/signalProcessing/ffilt/int_ffilt.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_FFILT_H__
+#define __INT_FFILT_H__
+
+#define g0d0d0d0ffiltd2(ft,N,fc,fh,oup) gffilts(ft,N,fc,fh,oup)
+
+#endif /* !__INT_FFILT_H__! */
diff --git a/src/c/signalProcessing/fft/Makefile.am b/src/c/signalProcessing/fft/Makefile.am
new file mode 100644
index 0000000..07b10b4
--- /dev/null
+++ b/src/c/signalProcessing/fft/Makefile.am
@@ -0,0 +1,83 @@
+##
+## Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+## Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+##
+## 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
+##
+##
+
+
+
+libFft_la_CFLAGS = -I . \
+ -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/signalProcessing/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes
+
+instdir = $(top_builddir)/lib
+
+pkglib_LTLIBRARIES = libFft.la
+
+libFft_la_SOURCES = $(HEAD) $(SRC)
+
+HEAD = ../includes/fft.h \
+ fft_internal.h
+
+SRC = zfftma.c \
+ cfftma.c \
+ dfft2.c \
+ dfftbi.c \
+ dfftmx.c \
+ fft842.c \
+ r2tx.c \
+ r4tx.c \
+ r8tx.c \
+ dfftma.c \
+ sfftma.c
+
+####
+# Checking Part
+####
+
+check_INCLUDES = -I . \
+ -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/signalProcessing/includes \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes
+
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/c/signalProcessing/fft/libFft.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la \
+ @LIBMATH@
+
+check_PROGRAMS = testFloatFft testDoubleFft testMatFft
+
+TESTS = testFloatFft testDoubleFft testMatFft
+
+#
+# -*- Fftine Tests -*-
+#
+testFloatFft_SOURCES = testFloatFft.c
+testFloatFft_CFLAGS = $(check_INCLUDES)
+testFloatFft_LDADD = $(check_LDADD)
+
+testDoubleFft_SOURCES = testDoubleFft.c
+testDoubleFft_CFLAGS = $(check_INCLUDES)
+testDoubleFft_LDADD = $(check_LDADD)
+
+
+testMatFft_SOURCES = testMatFft.c
+testMatFft_CFLAGS = $(check_INCLUDES)
+testMatFft_LDADD = $(check_LDADD)
diff --git a/src/c/signalProcessing/fft/Makefile.in b/src/c/signalProcessing/fft/Makefile.in
new file mode 100644
index 0000000..117cae3
--- /dev/null
+++ b/src/c/signalProcessing/fft/Makefile.in
@@ -0,0 +1,865 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+check_PROGRAMS = testFloatFft$(EXEEXT) testDoubleFft$(EXEEXT) \
+ testMatFft$(EXEEXT)
+TESTS = testFloatFft$(EXEEXT) testDoubleFft$(EXEEXT) \
+ testMatFft$(EXEEXT)
+subdir = src/c/signalProcessing/fft
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/includes/machine.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkglibdir)"
+LTLIBRARIES = $(pkglib_LTLIBRARIES)
+libFft_la_LIBADD =
+am__objects_1 =
+am__objects_2 = libFft_la-zfftma.lo libFft_la-cfftma.lo \
+ libFft_la-dfft2.lo libFft_la-dfftbi.lo libFft_la-dfftmx.lo \
+ libFft_la-fft842.lo libFft_la-r2tx.lo libFft_la-r4tx.lo \
+ libFft_la-r8tx.lo libFft_la-dfftma.lo libFft_la-sfftma.lo
+am_libFft_la_OBJECTS = $(am__objects_1) $(am__objects_2)
+libFft_la_OBJECTS = $(am_libFft_la_OBJECTS)
+libFft_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libFft_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testDoubleFft_OBJECTS = testDoubleFft-testDoubleFft.$(OBJEXT)
+testDoubleFft_OBJECTS = $(am_testDoubleFft_OBJECTS)
+am__DEPENDENCIES_1 = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/c/signalProcessing/fft/libFft.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la
+testDoubleFft_DEPENDENCIES = $(am__DEPENDENCIES_1)
+testDoubleFft_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testDoubleFft_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testFloatFft_OBJECTS = testFloatFft-testFloatFft.$(OBJEXT)
+testFloatFft_OBJECTS = $(am_testFloatFft_OBJECTS)
+testFloatFft_DEPENDENCIES = $(am__DEPENDENCIES_1)
+testFloatFft_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testFloatFft_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testMatFft_OBJECTS = testMatFft-testMatFft.$(OBJEXT)
+testMatFft_OBJECTS = $(am_testMatFft_OBJECTS)
+testMatFft_DEPENDENCIES = $(am__DEPENDENCIES_1)
+testMatFft_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testMatFft_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libFft_la_SOURCES) $(testDoubleFft_SOURCES) \
+ $(testFloatFft_SOURCES) $(testMatFft_SOURCES)
+DIST_SOURCES = $(libFft_la_SOURCES) $(testDoubleFft_SOURCES) \
+ $(testFloatFft_SOURCES) $(testMatFft_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBMATH = @LIBMATH@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libFft_la_CFLAGS = -I . \
+ -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/signalProcessing/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes
+
+instdir = $(top_builddir)/lib
+pkglib_LTLIBRARIES = libFft.la
+libFft_la_SOURCES = $(HEAD) $(SRC)
+HEAD = ../includes/fft.h \
+ fft_internal.h
+
+SRC = zfftma.c \
+ cfftma.c \
+ dfft2.c \
+ dfftbi.c \
+ dfftmx.c \
+ fft842.c \
+ r2tx.c \
+ r4tx.c \
+ r8tx.c \
+ dfftma.c \
+ sfftma.c
+
+
+####
+# Checking Part
+####
+check_INCLUDES = -I . \
+ -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/signalProcessing/includes \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/c/signalProcessing/fft/libFft.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la \
+ @LIBMATH@
+
+
+#
+# -*- Fftine Tests -*-
+#
+testFloatFft_SOURCES = testFloatFft.c
+testFloatFft_CFLAGS = $(check_INCLUDES)
+testFloatFft_LDADD = $(check_LDADD)
+testDoubleFft_SOURCES = testDoubleFft.c
+testDoubleFft_CFLAGS = $(check_INCLUDES)
+testDoubleFft_LDADD = $(check_LDADD)
+testMatFft_SOURCES = testMatFft.c
+testMatFft_CFLAGS = $(check_INCLUDES)
+testMatFft_LDADD = $(check_LDADD)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/c/signalProcessing/fft/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/c/signalProcessing/fft/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ }
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libFft.la: $(libFft_la_OBJECTS) $(libFft_la_DEPENDENCIES)
+ $(libFft_la_LINK) -rpath $(pkglibdir) $(libFft_la_OBJECTS) $(libFft_la_LIBADD) $(LIBS)
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+testDoubleFft$(EXEEXT): $(testDoubleFft_OBJECTS) $(testDoubleFft_DEPENDENCIES)
+ @rm -f testDoubleFft$(EXEEXT)
+ $(testDoubleFft_LINK) $(testDoubleFft_OBJECTS) $(testDoubleFft_LDADD) $(LIBS)
+testFloatFft$(EXEEXT): $(testFloatFft_OBJECTS) $(testFloatFft_DEPENDENCIES)
+ @rm -f testFloatFft$(EXEEXT)
+ $(testFloatFft_LINK) $(testFloatFft_OBJECTS) $(testFloatFft_LDADD) $(LIBS)
+testMatFft$(EXEEXT): $(testMatFft_OBJECTS) $(testMatFft_DEPENDENCIES)
+ @rm -f testMatFft$(EXEEXT)
+ $(testMatFft_LINK) $(testMatFft_OBJECTS) $(testMatFft_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFft_la-cfftma.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFft_la-dfft2.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFft_la-dfftbi.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFft_la-dfftma.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFft_la-dfftmx.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFft_la-fft842.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFft_la-r2tx.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFft_la-r4tx.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFft_la-r8tx.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFft_la-sfftma.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFft_la-zfftma.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDoubleFft-testDoubleFft.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFloatFft-testFloatFft.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testMatFft-testMatFft.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+libFft_la-zfftma.lo: zfftma.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -MT libFft_la-zfftma.lo -MD -MP -MF $(DEPDIR)/libFft_la-zfftma.Tpo -c -o libFft_la-zfftma.lo `test -f 'zfftma.c' || echo '$(srcdir)/'`zfftma.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFft_la-zfftma.Tpo $(DEPDIR)/libFft_la-zfftma.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zfftma.c' object='libFft_la-zfftma.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -c -o libFft_la-zfftma.lo `test -f 'zfftma.c' || echo '$(srcdir)/'`zfftma.c
+
+libFft_la-cfftma.lo: cfftma.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -MT libFft_la-cfftma.lo -MD -MP -MF $(DEPDIR)/libFft_la-cfftma.Tpo -c -o libFft_la-cfftma.lo `test -f 'cfftma.c' || echo '$(srcdir)/'`cfftma.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFft_la-cfftma.Tpo $(DEPDIR)/libFft_la-cfftma.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cfftma.c' object='libFft_la-cfftma.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -c -o libFft_la-cfftma.lo `test -f 'cfftma.c' || echo '$(srcdir)/'`cfftma.c
+
+libFft_la-dfft2.lo: dfft2.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -MT libFft_la-dfft2.lo -MD -MP -MF $(DEPDIR)/libFft_la-dfft2.Tpo -c -o libFft_la-dfft2.lo `test -f 'dfft2.c' || echo '$(srcdir)/'`dfft2.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFft_la-dfft2.Tpo $(DEPDIR)/libFft_la-dfft2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dfft2.c' object='libFft_la-dfft2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -c -o libFft_la-dfft2.lo `test -f 'dfft2.c' || echo '$(srcdir)/'`dfft2.c
+
+libFft_la-dfftbi.lo: dfftbi.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -MT libFft_la-dfftbi.lo -MD -MP -MF $(DEPDIR)/libFft_la-dfftbi.Tpo -c -o libFft_la-dfftbi.lo `test -f 'dfftbi.c' || echo '$(srcdir)/'`dfftbi.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFft_la-dfftbi.Tpo $(DEPDIR)/libFft_la-dfftbi.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dfftbi.c' object='libFft_la-dfftbi.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -c -o libFft_la-dfftbi.lo `test -f 'dfftbi.c' || echo '$(srcdir)/'`dfftbi.c
+
+libFft_la-dfftmx.lo: dfftmx.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -MT libFft_la-dfftmx.lo -MD -MP -MF $(DEPDIR)/libFft_la-dfftmx.Tpo -c -o libFft_la-dfftmx.lo `test -f 'dfftmx.c' || echo '$(srcdir)/'`dfftmx.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFft_la-dfftmx.Tpo $(DEPDIR)/libFft_la-dfftmx.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dfftmx.c' object='libFft_la-dfftmx.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -c -o libFft_la-dfftmx.lo `test -f 'dfftmx.c' || echo '$(srcdir)/'`dfftmx.c
+
+libFft_la-fft842.lo: fft842.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -MT libFft_la-fft842.lo -MD -MP -MF $(DEPDIR)/libFft_la-fft842.Tpo -c -o libFft_la-fft842.lo `test -f 'fft842.c' || echo '$(srcdir)/'`fft842.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFft_la-fft842.Tpo $(DEPDIR)/libFft_la-fft842.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fft842.c' object='libFft_la-fft842.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -c -o libFft_la-fft842.lo `test -f 'fft842.c' || echo '$(srcdir)/'`fft842.c
+
+libFft_la-r2tx.lo: r2tx.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -MT libFft_la-r2tx.lo -MD -MP -MF $(DEPDIR)/libFft_la-r2tx.Tpo -c -o libFft_la-r2tx.lo `test -f 'r2tx.c' || echo '$(srcdir)/'`r2tx.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFft_la-r2tx.Tpo $(DEPDIR)/libFft_la-r2tx.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='r2tx.c' object='libFft_la-r2tx.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -c -o libFft_la-r2tx.lo `test -f 'r2tx.c' || echo '$(srcdir)/'`r2tx.c
+
+libFft_la-r4tx.lo: r4tx.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -MT libFft_la-r4tx.lo -MD -MP -MF $(DEPDIR)/libFft_la-r4tx.Tpo -c -o libFft_la-r4tx.lo `test -f 'r4tx.c' || echo '$(srcdir)/'`r4tx.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFft_la-r4tx.Tpo $(DEPDIR)/libFft_la-r4tx.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='r4tx.c' object='libFft_la-r4tx.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -c -o libFft_la-r4tx.lo `test -f 'r4tx.c' || echo '$(srcdir)/'`r4tx.c
+
+libFft_la-r8tx.lo: r8tx.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -MT libFft_la-r8tx.lo -MD -MP -MF $(DEPDIR)/libFft_la-r8tx.Tpo -c -o libFft_la-r8tx.lo `test -f 'r8tx.c' || echo '$(srcdir)/'`r8tx.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFft_la-r8tx.Tpo $(DEPDIR)/libFft_la-r8tx.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='r8tx.c' object='libFft_la-r8tx.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -c -o libFft_la-r8tx.lo `test -f 'r8tx.c' || echo '$(srcdir)/'`r8tx.c
+
+libFft_la-dfftma.lo: dfftma.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -MT libFft_la-dfftma.lo -MD -MP -MF $(DEPDIR)/libFft_la-dfftma.Tpo -c -o libFft_la-dfftma.lo `test -f 'dfftma.c' || echo '$(srcdir)/'`dfftma.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFft_la-dfftma.Tpo $(DEPDIR)/libFft_la-dfftma.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dfftma.c' object='libFft_la-dfftma.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -c -o libFft_la-dfftma.lo `test -f 'dfftma.c' || echo '$(srcdir)/'`dfftma.c
+
+libFft_la-sfftma.lo: sfftma.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -MT libFft_la-sfftma.lo -MD -MP -MF $(DEPDIR)/libFft_la-sfftma.Tpo -c -o libFft_la-sfftma.lo `test -f 'sfftma.c' || echo '$(srcdir)/'`sfftma.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFft_la-sfftma.Tpo $(DEPDIR)/libFft_la-sfftma.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sfftma.c' object='libFft_la-sfftma.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFft_la_CFLAGS) $(CFLAGS) -c -o libFft_la-sfftma.lo `test -f 'sfftma.c' || echo '$(srcdir)/'`sfftma.c
+
+testDoubleFft-testDoubleFft.o: testDoubleFft.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleFft_CFLAGS) $(CFLAGS) -MT testDoubleFft-testDoubleFft.o -MD -MP -MF $(DEPDIR)/testDoubleFft-testDoubleFft.Tpo -c -o testDoubleFft-testDoubleFft.o `test -f 'testDoubleFft.c' || echo '$(srcdir)/'`testDoubleFft.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleFft-testDoubleFft.Tpo $(DEPDIR)/testDoubleFft-testDoubleFft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleFft.c' object='testDoubleFft-testDoubleFft.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleFft_CFLAGS) $(CFLAGS) -c -o testDoubleFft-testDoubleFft.o `test -f 'testDoubleFft.c' || echo '$(srcdir)/'`testDoubleFft.c
+
+testDoubleFft-testDoubleFft.obj: testDoubleFft.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleFft_CFLAGS) $(CFLAGS) -MT testDoubleFft-testDoubleFft.obj -MD -MP -MF $(DEPDIR)/testDoubleFft-testDoubleFft.Tpo -c -o testDoubleFft-testDoubleFft.obj `if test -f 'testDoubleFft.c'; then $(CYGPATH_W) 'testDoubleFft.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleFft.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleFft-testDoubleFft.Tpo $(DEPDIR)/testDoubleFft-testDoubleFft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleFft.c' object='testDoubleFft-testDoubleFft.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleFft_CFLAGS) $(CFLAGS) -c -o testDoubleFft-testDoubleFft.obj `if test -f 'testDoubleFft.c'; then $(CYGPATH_W) 'testDoubleFft.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleFft.c'; fi`
+
+testFloatFft-testFloatFft.o: testFloatFft.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatFft_CFLAGS) $(CFLAGS) -MT testFloatFft-testFloatFft.o -MD -MP -MF $(DEPDIR)/testFloatFft-testFloatFft.Tpo -c -o testFloatFft-testFloatFft.o `test -f 'testFloatFft.c' || echo '$(srcdir)/'`testFloatFft.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatFft-testFloatFft.Tpo $(DEPDIR)/testFloatFft-testFloatFft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatFft.c' object='testFloatFft-testFloatFft.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatFft_CFLAGS) $(CFLAGS) -c -o testFloatFft-testFloatFft.o `test -f 'testFloatFft.c' || echo '$(srcdir)/'`testFloatFft.c
+
+testFloatFft-testFloatFft.obj: testFloatFft.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatFft_CFLAGS) $(CFLAGS) -MT testFloatFft-testFloatFft.obj -MD -MP -MF $(DEPDIR)/testFloatFft-testFloatFft.Tpo -c -o testFloatFft-testFloatFft.obj `if test -f 'testFloatFft.c'; then $(CYGPATH_W) 'testFloatFft.c'; else $(CYGPATH_W) '$(srcdir)/testFloatFft.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatFft-testFloatFft.Tpo $(DEPDIR)/testFloatFft-testFloatFft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatFft.c' object='testFloatFft-testFloatFft.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatFft_CFLAGS) $(CFLAGS) -c -o testFloatFft-testFloatFft.obj `if test -f 'testFloatFft.c'; then $(CYGPATH_W) 'testFloatFft.c'; else $(CYGPATH_W) '$(srcdir)/testFloatFft.c'; fi`
+
+testMatFft-testMatFft.o: testMatFft.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatFft_CFLAGS) $(CFLAGS) -MT testMatFft-testMatFft.o -MD -MP -MF $(DEPDIR)/testMatFft-testMatFft.Tpo -c -o testMatFft-testMatFft.o `test -f 'testMatFft.c' || echo '$(srcdir)/'`testMatFft.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testMatFft-testMatFft.Tpo $(DEPDIR)/testMatFft-testMatFft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testMatFft.c' object='testMatFft-testMatFft.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatFft_CFLAGS) $(CFLAGS) -c -o testMatFft-testMatFft.o `test -f 'testMatFft.c' || echo '$(srcdir)/'`testMatFft.c
+
+testMatFft-testMatFft.obj: testMatFft.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatFft_CFLAGS) $(CFLAGS) -MT testMatFft-testMatFft.obj -MD -MP -MF $(DEPDIR)/testMatFft-testMatFft.Tpo -c -o testMatFft-testMatFft.obj `if test -f 'testMatFft.c'; then $(CYGPATH_W) 'testMatFft.c'; else $(CYGPATH_W) '$(srcdir)/testMatFft.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testMatFft-testMatFft.Tpo $(DEPDIR)/testMatFft-testMatFft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testMatFft.c' object='testMatFft-testMatFft.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatFft_CFLAGS) $(CFLAGS) -c -o testMatFft-testMatFft.obj `if test -f 'testMatFft.c'; then $(CYGPATH_W) 'testMatFft.c'; else $(CYGPATH_W) '$(srcdir)/testMatFft.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(pkglibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pkglibLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pkglibLTLIBRARIES
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-pkglibLTLIBRARIES install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-pkglibLTLIBRARIES
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/c/signalProcessing/fft/cfftma.c b/src/c/signalProcessing/fft/cfftma.c
new file mode 100644
index 0000000..6bd2f74
--- /dev/null
+++ b/src/c/signalProcessing/fft/cfftma.c
@@ -0,0 +1,52 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#include <stdlib.h>
+#include "fft.h"
+
+void cfftma ( floatComplex* in , int rows, int cols, floatComplex* out)
+{
+
+ int i = 0 ;
+ /* these 3 variable are created to permit to use the value in the fortran functions
+ because they need doubleComplex matrix as arguments and we can't cast directly the pointers
+ without having problems , i know that's ugly */
+ doubleComplex *dblin = NULL;
+ doubleComplex *dblout = NULL;
+
+
+
+ /* Array allocations*/
+ dblin = (doubleComplex*)malloc(sizeof(doubleComplex) * (unsigned int)(rows * cols));
+ dblout = (doubleComplex*)malloc(sizeof(doubleComplex) * (unsigned int)(rows * cols));
+
+
+
+ /*copy and cast all the floatComplex value into doubleComplex value */
+ for ( i = 0 ; i < (rows * cols) ; i ++ )
+ {
+ dblin[i] = DoubleComplex ( (double) creals( in[i]) , (double) cimags ( in[i])) ;
+ }
+
+ zfftma ( dblin, rows , cols , dblout );
+
+
+ for ( i = 0 ; i < (rows * cols) ; i++ )
+ {
+ out[i] = FloatComplex ((float) zreals ( dblout[i]) , (float) zimags ( dblout[i])) ;
+
+ }
+
+ free ( dblin);
+ free ( dblout);
+
+}
diff --git a/src/c/signalProcessing/fft/dfft2.c b/src/c/signalProcessing/fft/dfft2.c
new file mode 100644
index 0000000..9aa0bd5
--- /dev/null
+++ b/src/c/signalProcessing/fft/dfft2.c
@@ -0,0 +1,24 @@
+/*
+ * 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
+ *
+ */
+
+#include "fft_internal.h"
+
+void dfft2 ( double* a , double* b , int nseg , int n , int nspn , int isn , int ierr )
+{
+
+
+ dfftbi ( a , b , nseg , n , nspn , isn , ierr );
+
+
+
+ return ;
+}
diff --git a/src/c/signalProcessing/fft/dfftbi.c b/src/c/signalProcessing/fft/dfftbi.c
new file mode 100644
index 0000000..8ddef44
--- /dev/null
+++ b/src/c/signalProcessing/fft/dfftbi.c
@@ -0,0 +1,322 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include "max.h"
+#include "fft_internal.h"
+
+/*
+c arrays a and b originally hold the real and imaginary
+c components of the data, and return the real and
+c imaginary components of the resulting fourier coefficients.
+c multivariate data is indexed according to the fortran
+c array element successor function, without limit
+c on the number of implied multiple subscripts.
+c the subroutine is called once for each variate.
+c the calls for a multivariate transform may be in any order.
+c
+c n is the dimension of the current variable.
+c nspn is the spacing of consecutive data values
+c while indexing the current variable.
+c nseg*n*nspn is the total number of complex data values.
+c the sign of isn determines the sign of the complex
+c exponential, and the magnitude of isn is normally one.
+c the magnitude of isn determines the indexing increment for a&b.
+c
+c if fft is called twice, with opposite signs on isn, an
+c identity transformation is done...calls can be in either order.
+c the results are scaled by 1/n when the sign of isn is positive.
+c
+c a tri-variate transform with a(n1,n2,n3), b(n1,n2,n3)
+c is computed by
+c call fft(a,b,n2*n3,n1,1,-1)
+c call fft(a,b,n3,n2,n1,-1)
+c call fft(a,b,1,n3,n1*n2,-1)
+c
+c a single-variate transform of n complex data values is computed by
+c call fft(a,b,1,n,1,-1)
+c
+c the data may alternatively be stored in a single complex
+c array a, then the magnitude of isn changed to two to
+c give the correct indexing increment and a(2) used to
+c pass the initial address for the sequence of imaginary
+c values, e.g.
+c
+c
+c array nfac is working storage for factoring n. the smallest
+c number exceeding the 15 locations provided is 12,754,584.
+c!
+*/
+void dfftbi ( double* a , double* b , int nseg , int n , int nspn ,
+ int isn , int ierr)
+{
+
+ double* rstak ;
+ int* istak ;
+
+ int lout = 0 ;
+ int lnow = 10;
+ int lused= 10;
+
+ int lbook = 10 ;
+
+
+ int nfac[15] ;
+ int i ;
+ int in ;
+ int j = 3 ;
+ int j2 = 3 ;
+ int j3 = 3 ;
+ int jj = 9;
+ int m = 0 ;
+ int k ;
+ int kt ;
+ int kkk ;
+ int nspan ;
+ int nitems ;
+ int ntot ;
+ int maxp = 0;
+ int maxf ;
+ int itype;
+ int istkgt ;
+
+
+ int nf = abs ( n ) ;
+
+ ierr = 0 ;
+
+ /*determine the factors of n */
+
+
+ if ( nf == 1)
+ return ;
+
+ k = nf ;
+
+ nspan = abs ( nf*nspn ) ;
+ ntot = abs ( nspan*nseg) ;
+
+
+ if ( isn*ntot == 0 )
+ {
+ ierr = 1 ;
+ return ;
+ }
+
+
+/* we search as much 4 in the factor of vector's length as we can */
+
+ while ( (k- (int)(k/16)*16 ) == 0 )
+ {
+ m++;
+ nfac[m-1] = 4 ;
+ k = k >> 4 ;
+ }
+
+
+/* we search all square factor */
+
+ do
+ {
+ while ( k%jj == 0 )
+ {
+ m++;
+ nfac[m-1] = j ;
+ k /= jj ;
+
+ }
+
+ j+=2;
+ jj= j*j ;
+
+ }while ( jj <= k);
+
+
+
+
+/* if the remaining size after all the previous division is less than 4
+ then it's the last factor */
+ if ( k <= 4)
+ {
+
+ kt = m;
+ nfac[m] = k;
+ if ( k != 1 )
+ m++;
+ }
+ else
+ {
+ if ( (k & 3) == 0 )
+ {
+ m++;
+ nfac[m-1] = 2 ;
+ k = k >> 2 ;
+ }
+
+ /*all square factor out now but k >= 5 still */
+ kt = m ;
+ maxp = max ( (kt+1)*2 , k-1);
+ j=2;
+
+ do
+ {
+ if ( k%j == 0 )
+ {
+
+ m++;
+ nfac[m-1] = j ;
+ k /= j ;
+ }
+
+ j = (j+1) | 1 ;
+
+ }while ( j <= k );
+
+ }
+
+
+
+ if ( m <= ( kt+1) )
+ maxp = m + kt + 1 ;
+
+
+
+ if ( m + kt > 15)
+ {
+ ierr = 2 ;
+
+ return ;
+ }
+
+
+ if ( kt != 0 )
+ {
+ j = kt ;
+
+ do{
+ m++;
+
+ nfac[m-1] = nfac[j-1];
+ j--;
+ }while ( j != 0) ;
+ }
+
+
+ maxf = nfac[m-kt-1] ;
+
+ if ( kt > 0 )
+ maxf = max ( nfac[kt-1] , maxf );
+
+
+
+
+ for ( kkk = 1 ; kkk <= m ; kkk++ )
+ {
+ maxf = max ( maxf , nfac[kkk-1]);
+
+ }
+
+
+
+
+
+
+
+ nitems = maxf * 4 ;
+ itype = 4 ;
+
+
+ istkgt = 2 + ((lnow-1)/2) ;/*lnow = 10*/
+ istkgt = 6;
+
+ /*i = ( (istkgt - 1 + nitems) * isize[3] -1) + 3 ;*/
+ i = 12 + nitems*2;
+
+/* this part is mainly to allocate size for workspace */
+
+ istak = (int*) malloc ( sizeof (int) * (unsigned int) i);
+
+ istak[i-2] = itype ;
+ istak[i-1] = lnow ;
+ lout ++ ;
+ lnow = i ;
+ lused = max ( lused , lnow );
+
+ j = istkgt ;
+ jj = j + maxf ;
+ j2 = jj+ maxf ;
+ j3 = j2+ maxf ;
+
+ nitems = maxp ;
+ itype = 2 ;
+
+ /*istkgt = ( lnow*isize[1] -1)/isize[1] + 2;*/
+ istkgt = lnow + 1 ;
+ /*i = ( (istkgt - 1 + nitems) * isize[1] -1) / isize[1] + 3 ;*/
+ i = lnow + nitems + 2 ;
+ istak = (int*) realloc ( istak ,sizeof (int) * (unsigned int) i);
+ rstak = (double*) malloc ( sizeof (double) * (unsigned int) i);
+
+
+
+
+
+
+ istak[i-2] = itype ;
+ istak[i-1] = lnow ;
+ lout ++ ;
+ lnow = i ;
+ lused = max ( lused , lnow );
+
+ k = istkgt ;
+
+/*
+c la carte suivante est a supprimer si simple precision
+c next instruction commented by FD&MG (simulog residue?)
+c ********************************************
+c k=2*k-1
+c *********************************************
+*/
+
+
+
+ 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 ;
+
+ in = 2 ;
+/*
+ if (!( lbook <= lnow && lnow <= lused ))
+ {
+ ierr = 3 ;
+ return ;
+ }
+*/
+ while ( in > 0)
+ {
+ if ( lbook > istak[lnow-1] || istak[lnow-1] >= lnow-1)
+ {
+ ierr = 4 ;
+ }
+
+ lout-- ;
+ lnow = istak[lnow-1] ;
+ in-- ;
+ }
+ free(istak);
+ free(rstak);
+
+ return ;
+}
diff --git a/src/c/signalProcessing/fft/dfftma.c b/src/c/signalProcessing/fft/dfftma.c
new file mode 100644
index 0000000..cf58462
--- /dev/null
+++ b/src/c/signalProcessing/fft/dfftma.c
@@ -0,0 +1,31 @@
+/*
+ * 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 "fft.h"
+#include "zeros.h"
+
+void dfftma ( double* in , int rows, int cols, double* out){
+ double* ZEROS;
+ doubleComplex* inCpx;
+ doubleComplex* outCpx;
+
+ ZEROS = (double*) malloc((unsigned int)(rows*cols)*sizeof(double));
+ outCpx = (doubleComplex*) malloc((unsigned int)(rows*cols)*sizeof(doubleComplex));
+
+ dzerosa(ZEROS,rows,cols);
+ inCpx=DoubleComplexMatrix(in,ZEROS,rows*cols);
+
+ zfftma(inCpx,rows,cols,outCpx);
+
+ zreala(outCpx, rows*cols, out);
+}
diff --git a/src/c/signalProcessing/fft/dfftmx.c b/src/c/signalProcessing/fft/dfftmx.c
new file mode 100644
index 0000000..f7d6ce3
--- /dev/null
+++ b/src/c/signalProcessing/fft/dfftmx.c
@@ -0,0 +1,1211 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#include <stdlib.h>
+#include <math.h>
+#include "max.h"
+#include "min.h"
+#include "fft_internal.h"
+
+
+/*c'est moche je sais */
+
+static double* a ;
+static double* b ;
+static int ntot ;
+static int n ;
+static int nspan ;
+static int isn ;
+static int m ;
+static int kt ;
+static double* wt ;
+static double* ck ;
+static double* bt ;
+static double* sk ;
+static int* np ;
+static int* nfac ;
+static int inc ;
+static int nt ;
+static int ks ;
+
+static double rad ;
+static double c72 ;
+static double s72 ;
+static double s120 ;
+
+static double aa ;
+static double ak ;
+static double akm ;
+static double akp ;
+static double aj ;
+static double ajp ;
+static double ajm ;
+
+static double bb ;
+static double bk ;
+static double bkm ;
+static double bkp ;
+static double bj ;
+static double bjp ;
+static double bjm ;
+static double dr ;
+
+static double cd ;
+static double c1 ;
+static double c2 ;
+static double c3 ;
+
+static double sd ;
+static double s1 ;
+static double s2 ;
+static double s3 ;
+
+static int kspan ;
+static int nn ;
+static int jc ;
+static int klim ;
+static int jf ;
+static int maxf ;
+static int kk ;
+static int k ;
+static int k1 ;
+static int k2 ;
+static int k3 ;
+static int k4 ;
+static int mm ;
+static int kspnn ;
+static int i ;
+static int j ;
+static int jj;
+
+/* Prototypes */
+
+static void preliminaryWork (void);
+static void permute_stage1 (void);
+static void permute_stage2 (void);
+static void f4t_150 (void);
+static void factorOf3Transform (void) ;
+static void factorOf5Transform (void) ;
+static void preFOtherTransform (void);
+static void factorOfOtherTransform (void);
+static void pre_sqFactor2NormlOrder (void);
+static void nonSqFactor2NormOrder (void) ;
+static void detPermutCycles (void);
+static void reorderMatrix (void ) ;
+
+static int f4t_170 (void);
+static int factorTransform (void);
+static int pre_fOf2Trans (void);
+static int factorOf2Transform (void);
+static int factorOf4Transform (void);
+static int mulByRotationFactor (void );
+static int post_sqFactor2NormlOrder (void);
+static void single_sqFactor2NormlOrder (void);
+static int multi_sqFactor2NormlOrder (void);
+
+/* End Prototypes */
+
+/*note on this code all numbers alone in comment is
+ a reference to the corresponding goto in the original fotran code */
+
+int dfftmx ( double* _pdblA , double* _pdblB , int _iNtot, int _iN, int _iNspan,
+ int _iIsn, int _iM, int _iKt, double* _pdblWt, double* _pdblCk,
+ double* _pdblBt, double* _pdblSk, int* _piNp, int* _piNfac)
+{
+ int retVal = 0 ;
+ a = _pdblA ;
+ b = _pdblB ;
+
+ ntot = _iNtot ;
+ n = _iN ;
+ nspan= _iNspan ;
+ isn = _iIsn;
+ m = _iM ;
+ kt = _iKt ;
+ wt = _pdblWt ;
+ ck = _pdblCk;
+ bt = _pdblBt;
+ sk = _pdblSk;
+ np = _piNp;
+ nfac = _piNfac;
+
+ inc = abs ( isn ) ;
+ nt = inc*ntot ;
+ ks = inc*nspan;
+ rad = atan((double)1);
+ c72 = cos (rad/0.6250);
+ s72 = sin (rad/0.6250);
+ s120= sqrt(0.750);
+
+
+
+ preliminaryWork() ;
+
+
+ while ( retVal == 0 ) retVal = factorTransform ( ) ;
+
+ np[0] = ks ;
+
+ if ( kt != 0) permute_stage1 ( ) ;
+
+
+ if ( 2*kt + 1 < m ) permute_stage2 ( ) ;
+
+ _pdblA = a ;
+ _pdblB = b ;
+
+ return 0 ;
+}
+
+/** **************************************
+Sous-Fonctions
+******************************************/
+
+
+
+/* this function only set the value of variable */
+static void preliminaryWork (void)
+{
+ s72 = -s72 ;
+ s120= -s120;
+ rad = -rad ;
+
+ kspan = ks ;
+ nn = nt -inc ;
+ jc = ks/n ;
+
+ /* sin , cos values are re-initialized each lim steps */
+
+ klim = 32*jc ;
+ i = 0;
+ jf = 0 ;
+
+ if ( kt > 0 ) maxf = max ( nfac[kt-1] , nfac[m-kt-1] );
+ else maxf = nfac[m-kt-1] ;
+
+}
+
+
+
+/*40*/
+/* this function is call as many time as dfftbi has determined factor for the size of the input vector
+ each time we call a transform function for each kind of factor , we begin by the smallest
+ factor are stored in nfac
+ */
+
+static int factorTransform (void)
+{
+
+ int retVal = 42;
+
+ dr = 8 * (double)jc/(double)kspan ;
+ cd = 2 * sin(0.5*dr*rad)*sin(0.5*dr*rad);
+ sd = sin(dr*rad) ;
+ kk = 1 ;
+ i++ ;
+
+
+
+
+switch ( nfac[i-1] )
+ {
+ case 2 :
+ /*transform for factor of 2 (including rotation factor)*/
+
+ retVal = pre_fOf2Trans() ;
+ if ( retVal == 0 ) factorOf2Transform () ;
+
+ break ;
+
+ case 4 :
+
+ kspnn = kspan ;
+ kspan = kspan >> 2 ; /*kspan /= 4 */
+
+ retVal = factorOf4Transform () ;
+ break ;
+
+ case 3 :
+
+ k = nfac[i-1] ;
+ kspnn = kspan ;
+ kspan = kspan / k ;
+
+ factorOf3Transform ( ) ;
+ break ;
+
+ case 5 :
+
+ k = nfac[i-1] ;
+ kspnn = kspan ;
+ kspan = kspan / k ;
+
+ factorOf5Transform ( ) ;
+ break ;
+
+ default :
+
+ k = nfac[i-1] ;
+ kspnn = kspan ;
+ kspan = kspan / k ;
+
+ if ( nfac[i-1] != jf) preFOtherTransform ( ) ;
+
+ factorOfOtherTransform ( ) ;
+ break ;
+ }
+
+
+
+ if ( retVal == 42 )
+ {
+ if ( i != m) retVal = mulByRotationFactor ( ) ;
+ else retVal = 1 ;
+ }
+
+ if ( retVal == 1 ) return 1 ; /*goto permute */
+ else return 0 ; /*goto factor_transform => once again*/
+
+}
+
+/* permutation for square factor of n */
+static void permute_stage1 (void)
+{
+
+ int retVal = 1 ;
+
+ pre_sqFactor2NormlOrder () ;
+
+ if ( n == ntot )
+ /*permutation for single-variate transform (optional code)*/
+ while ( retVal == 1)
+ {
+ single_sqFactor2NormlOrder () ;
+ retVal = post_sqFactor2NormlOrder () ;
+ }
+ else
+ /*permutation for multivariate transform*/
+ while ( retVal == 1) retVal = multi_sqFactor2NormlOrder ();
+
+}
+
+static void permute_stage2 (void)
+{
+ kspnn = np[kt] ;
+
+ /*permutation for square-free facotrs of n */
+ nonSqFactor2NormOrder () ;
+
+ /*determine the permutation cycles of length greater than 1*/
+ detPermutCycles ();
+
+ j = k3 + 1;
+ nt -= kspnn ;
+ i = nt - inc + 1 ;
+ while ( nt >= 0 )
+ {
+ reorderMatrix ( ) ;
+
+ j = k3 + 1 ;
+ nt -= kspnn ;
+ i = nt - inc + 1 ;
+ }
+}
+
+/*****************************************
+Sous-Sous-Fonctions
+******************************************/
+
+
+
+
+
+static int pre_fOf2Trans (void)
+{
+ kspan /= 2;
+ k1 = kspan + 2 ;
+ /*50*/
+ do{
+ do{
+ k2 = kk + kspan ;
+ ak = a[k2-1] ;
+ bk = b[k2-1] ;
+
+ a[k2-1] = a[kk-1] - ak;
+ b[k2-1] = b[kk-1] - bk;
+
+ a[kk-1] = a[kk-1] + ak;
+ b[kk-1] = b[kk-1] + bk;
+
+ kk = k2 + kspan ;
+ }while (kk <= nn);
+
+ kk -= nn ;
+ }while (kk <= jc);
+
+
+ if ( kk > kspan ) return 1 ; /*goto350*/
+ else return 0 ; /*goto60*/
+
+
+}
+
+
+
+static int factorOf2Transform (void)
+{
+ do /*60*/ {/*while ( kk <= jc*2 )*/
+ c1 = 1 - cd ;
+ s1 = sd ;
+ mm = min( k1/2 , klim);
+
+ do/* do 80 */ {/*while ( kk <= mm || ( kk > mm && kk < k2 ))*/
+ do {/*while(kk > k2) */
+ do { /*while ( kk < nt )*/
+ k2 = kk + kspan;
+
+ ak = a[kk-1] - a[k2-1];
+ bk = b[kk-1] - b[k2-1];
+
+ a[kk-1] = a[kk-1] + a[k2-1];
+ b[kk-1] = b[kk-1] + b[k2-1];
+
+ a[k2-1] = c1*ak - s1*bk;
+ b[k2-1] = s1*ak + c1*bk;
+
+ kk = k2 + kspan;
+ }while ( kk < nt );
+
+ k2 = kk - nt;
+ c1 = -c1;
+ kk = k1 - k2;
+
+
+ }while (kk > k2);
+
+ kk += jc;
+
+ if ( kk <= mm ) /* 70 */
+ {
+ ak = c1 - ( cd*c1+sd*s1) ;
+ s1 += (sd*c1-cd*s1) ;
+ /*c the following three statements compensate for truncation
+ c error. if rounded arithmetic is used, substitute
+ c c1=ak*/
+ c1 = 0.5/(ak*ak+s1*s1) + 0.5 ;
+ s1 *= c1 ;
+ c1 *= ak ;
+ }
+ else {
+ if ( kk < k2 ) /*90*/ {
+ s1 = dr*rad*((double)(kk-1)/(double)jc);
+ c1 = cos(s1) ;
+ s1 = sin(s1) ;
+ mm = min(k1/2,mm+klim);
+ }
+ }
+
+ } while ( kk <= mm || ( kk > mm && kk < k2 ));
+
+ k1 += (inc+inc) ;
+ kk = (k1-kspan)/2 + jc;
+
+ } while ( kk <= jc*2 );
+
+
+ return 0 ; /*goto40*/
+}
+
+
+/* this one is just an optimisation of the factor of 2 transform , we compute more things each turn */
+
+static int factorOf4Transform (void)
+{
+ int return_value = 0 ;
+
+ /*120*/
+ do
+ {
+ c1 = 1 ;
+ s1 = 0 ;
+
+ mm = min ( kspan , klim ) ;
+
+ do
+ {
+ f4t_150 () ;
+ return_value = f4t_170 () ;
+ } while ( return_value == 0 );
+
+ kk += ( inc - kspan ) ;
+ } while ( kk <= jc ) ;
+
+
+
+ if ( kspan == jc )
+ return 1 ; /*goto350*/
+ else
+ return 0 ;/*goto40*/
+
+
+}
+
+/*this function and the following are just here for conveniance , they just do fourier transformation for factor of 4
+ but as the code was a bit long in factorof4transform , we've created two sub-functions */
+
+static void f4t_150 (void)
+{
+
+ do{
+ k1 = kk + kspan ;
+ k2 = k1 + kspan ;
+ k3 = k2 + kspan ;
+
+ akp = a[kk-1] + a[k2-1] ;
+ akm = a[kk-1] - a[k2-1] ;
+
+ ajp = a[k1-1] + a[k3-1] ;
+ ajm = a[k1-1] - a[k3-1] ;
+
+ a[kk-1] = akp + ajp ;
+ ajp = akp - ajp ;
+
+ bkp = b[kk-1] + b[k2-1] ;
+ bkm = b[kk-1] - b[k2-1] ;
+
+ bjp = b[k1-1] + b[k3-1] ;
+ bjm = b[k1-1] - b[k3-1] ;
+
+ b[kk-1] = bkp + bjp ;
+ bjp = bkp - bjp ;
+
+ akp = akm + bjm ;
+ akm = akm - bjm ;
+
+ bkp = bkm - ajm ;
+ bkm = bkm + ajm ;
+
+ if ( s1 == 0 )/*190*/
+ {
+ a[k1-1] = akp ;
+ a[k2-1] = ajp ;
+ a[k3-1] = akm ;
+
+ b[k1-1] = bkp ;
+ b[k2-1] = bjp ;
+ b[k3-1] = bkm ;
+
+
+ }
+ else /*160*/
+ {
+
+ a[k1-1] = akp*c1 - bkp*s1 ;
+ a[k2-1] = ajp*c2 - bjp*s2 ;
+ a[k3-1] = akm*c3 - bkm*s3 ;
+
+ a[k1-1] = bkp*c1 + akp*s1 ;
+ a[k2-1] = bjp*c2 + ajp*s2 ;
+ a[k3-1] = bkm*c3 + akm*s3 ;
+ }
+ kk=k3+kspan;
+ }while ( kk <= nt ) ;
+
+
+}
+
+static int f4t_170 (void)
+{
+ kk += ( jc - nt ) ;
+
+ if ( kk <= mm )
+ {
+ c2 = c1 - (cd*c1 + sd*s1);
+ s1 = s1 + (sd*c1 - cd*s1);
+
+ /*
+ the following three statements compensate for truncation
+ error. if rounded arithmetic is used, substitute
+ c1=c2
+ */
+
+ c1 = 0.5/(c2*c2+s1*s1) + 0.5 ;
+ s1 *= c1 ;
+ c1 *= c2 ;
+
+ /*140*/
+
+ c2 = c1*c1 - s1*s1 ;
+ s2 = c1*s1*2 ;
+ c3 = c2*c1 - s2*s1 ;
+ s3 = c2*s1 + s2*c1 ;
+
+
+ return 0 ;
+
+ }
+ else
+ {
+ if ( kk <= kspan )
+ {
+ s1 = dr*rad * (kk-1)/jc ;
+ c1 = cos (s1) ;
+ s1 = sin (s1) ;
+ mm = min ( kspan , mm + klim );
+
+ /*140*/
+
+ c2 = c1*c1 - s1*s1 ;
+ s2 = c1*s1*2 ;
+ c3 = c2*c1 - s2*s1 ;
+ s3 = c2*s1 + s2*c1 ;
+
+ return 0 ;
+ }
+ }
+
+ return 1 ;
+}
+
+
+
+
+static void factorOf3Transform (void)
+{
+ do{
+ do{
+ k1 = kk + kspan ;
+ k2 = k1 + kspan ;
+
+ ak = a[kk-1] ;
+ bk = b[kk-1] ;
+
+ aj = a[k1-1] + a[k2-1] ;
+ bj = b[k1-1] + b[k2-1] ;
+
+ a[kk-1] = ak + aj ;
+ b[kk-1] = bk + bj ;
+
+ ak = -0.5*aj + ak ;
+ bk = -0.5*bj + bk ;
+
+ aj = (a[k1-1] - a[k2-1])*s120 ;
+ bj = (b[k1-1] - b[k2-1])*s120 ;
+
+ a[k1-1] = ak - bj ;
+ b[k1-1] = bk + aj ;
+ a[k2-1] = ak + bj ;
+ b[k2-1] = bk - aj ;
+
+ kk = k2 + kspan ;
+ } while (kk < nn);
+
+ kk -= nn ;
+ }while (kk <= kspan);
+
+}
+
+static void factorOf5Transform (void)
+{
+ c2 = c72*c72 - s72 *s72 ;
+ s2 = 2 * c72*s72;
+
+ do{
+ do{
+ k1 = kk + kspan ;
+ k2 = k1 + kspan ;
+ k3 = k2 + kspan ;
+ k4 = k3 + kspan ;
+
+
+
+ akp = a[k1-1] + a[k4-1] ;
+ akm = a[k1-1] - a[k4-1] ;
+
+ bkp = b[k1-1] + b[k4-1] ;
+ bkm = b[k1-1] - b[k4-1] ;
+
+ ajp = a[k2-1] + a[k3-1] ;
+ ajm = a[k2-1] - a[k3-1] ;
+
+ bjp = b[k2-1] + b[k3-1] ;
+ bjm = b[k2-1] - b[k3-1] ;
+
+ aa = a[kk-1] ;
+ bb = b[kk-1] ;
+
+ a[kk-1] = aa + akp + ajp;
+ b[kk-1] = bb + bkp + bjp;
+
+ ak = akp*c72 + ajp*c2 + aa ;
+ bk = bkp*c72 + bjp*c2 + bb ;
+
+ aj = akm*s72 + ajm*s2 ;
+ bj = bkm*s72 + bjm*s2 ;
+
+ a[k1-1] = ak - bj ;
+ a[k4-1] = ak + bj ;
+ b[k1-1] = bk + aj ;
+ b[k4-1] = bk - aj ;
+
+ ak = akp*c2 + ajp*c72 + aa ;
+ bk = bkp*c2 + bjp*c72 + bb ;
+
+ aj = akm*s2 - ajm*s72 ;
+
+ bj = bkm*s2 - bjm*s72 ;
+
+ a[k2-1] = ak - bj ;
+ a[k3-1] = ak + bj ;
+ b[k2-1] = bk + aj ;
+ b[k3-1] = bk - aj ;
+
+ kk = k4 + kspan;
+ }while (kk < nn);
+
+ kk -= nn ;
+ }while (kk <= kspan);
+}
+
+/* this function is the general case of non factor of 2 factor , the factorof3transform and factorof5trandform are just
+special case of this one */
+
+
+static void preFOtherTransform (void)
+{
+
+ jf = k ;
+ s1 = (rad*8)/k ;
+ c1 = cos (s1) ;
+ s1 = sin (s1) ;
+ ck[jf-1] = 1 ;
+ sk[jf-1] = 0 ;
+ j = 1 ;
+
+ do
+ {
+ ck[j-1] = ck[k-1] * c1 + sk[k-1]*s1 ;
+ sk[j-1] = ck[k-1] * s1 - sk[k-1]*c1 ;
+
+ k -- ;
+
+ ck[k-1] = ck[j-1] ;
+ sk[k-1] = - sk[j-1] ;
+
+ j++ ;
+
+ }while ( j < k );
+
+}
+
+static void factorOfOtherTransform (void)
+{
+int ktemp = 0 ;
+
+do
+ {
+ k1 = kk ;
+ k2 = kk + kspnn ;
+
+ aa = a[kk-1] ;
+ bb = b[kk-1] ;
+
+ ak = aa ;
+ bk = bb ;
+ j = 1 ;
+ k1 += kspan ;
+
+ do
+ {
+ k2 -= kspan ;
+ j++ ;
+
+ wt[j-1] = a[k1-1] + a[k2-1] ;
+ ak = wt[j-1] + ak ;
+
+ bt[j-1] = b[k1-1] + b[k2-1] ;
+ bk = bt[j-1] + bk ;
+ j++ ;
+
+ wt[j-1] = a[k1-1] - a[k2-1] ;
+ bt[j-1] = b[k1-1] - b[k2-1] ;
+
+ k1 += kspan;
+ }while ( k1 < k2 ) ;
+
+ a[kk-1] = ak ;
+ b[kk-1] = bk ;
+
+ k1 = kk ;
+ k2 = kk + kspnn ;
+ j = 1 ;
+
+ do
+ {
+ k1 += kspan ;
+ k2 -= kspan ;
+ jj = j ;
+ ak = aa ;
+ bk = bb ;
+ aj = 0 ;
+ bj = 0 ;
+ k = 1 ;
+
+ do
+ {
+ k++ ;
+ ak += ( wt[k-1] * ck[jj-1] ) ;
+ bk += ( bt[k-1] * ck[jj-1] ) ;
+
+ k++ ;
+ aj += (wt[k-1] * sk[jj-1]) ;
+ bj += (bt[k-1] * sk[jj-1]) ;
+ jj += j ;
+
+ if ( jj > jf )
+ jj -= jf ;
+ } while ( k < jf ) ;
+
+ k = jf - j ;
+ a[k1-1] = ak - bj ;
+ b[k1-1] = bk + aj ;
+ a[k2-1] = ak + bj ;
+ b[k2-1] = bk - aj ;
+
+ j++ ;
+
+ }while ( j < k ) ;
+
+
+
+
+
+ kk += kspnn ;
+ ktemp = kk ;
+
+ if ( kk > nn )
+ {
+ kk -= nn;
+ }
+
+}while ( ktemp <= nn || (kk <= kspan && ( ktemp > nn)) );
+}
+
+
+
+
+static int mulByRotationFactor (void )
+{
+ int ktemp = 0 ;
+
+ if ( i != m )
+ {
+ kk = jc + 1 ;
+
+ /*300*/
+ do
+ {
+ c2 = 1 - cd ;
+ s1 = sd ;
+
+ mm = min ( kspan , klim ) ;
+
+ /*320 */
+ do
+ {
+
+ c1 = c2 ;
+ s2 = s1 ;
+ kk += kspan ;
+
+ do
+ {
+
+ ak = a[kk-1] ;
+ a[kk-1] = c2*ak - s2*b[kk-1] ;
+ b[kk-1] = s2*ak + c2*b[kk-1] ;
+
+ kk += kspnn ;
+ ktemp = kk ;
+
+
+ if ( kk > nt )
+ {
+ ak = s1*s2 ;
+ s2 = s1*c2 + s2*c1 ;
+ c2 = c1*c2 - ak ;
+ kk += (kspan - nt ) ;
+
+
+
+ }
+
+ }while (ktemp <= nt || ( kk <= kspnn && ktemp > nt )) ;
+
+ kk += ( jc - kspnn );
+
+
+ if ( kk <= mm )
+ {
+
+ /* 310*/
+ c2 = c1 - ( cd*c1 + sd*s1 ) ;
+ s1 += (sd*c1 - cd*s1 ) ;
+
+ /*
+ the following three statements compensate for truncation
+ error. if rounded arithmetic is used, substitute
+ c1=c2
+ */
+
+ c1 = 0.5/(c2*c2+s1*s1) + 0.5 ;
+ s1 *= c1 ;
+ c2 *= c1 ;
+ }
+ else
+ {
+ if ( kk <= kspan )
+ {
+
+ s1 = dr*rad * (kk-1)/jc ;
+ c2 = cos (s1) ;
+ s1 = sin (s1) ;
+ mm = min ( kspan , mm + klim );
+ }
+ }
+
+ }while ( kk <= mm ||( kk <= kspan && kk > mm ) ) ;
+
+ kk += (jc + inc -kspan );
+
+
+ }while ( kk <= jc+jc);
+
+
+ return 0 ; /* goto40 */
+ }
+
+ return 1 ; /* goto350*/
+}
+
+
+
+
+static void pre_sqFactor2NormlOrder (void)
+{
+
+ k = kt + kt + 1 ;
+
+ if ( m < k )
+ k -- ;
+
+ j = 1 ;
+ np[k] = jc ;
+
+ do
+ {
+ np[j] = np[j-1]/nfac[j-1] ;
+ np[k-1] = np[k]*nfac[j-1] ;
+
+ j++ ;
+ k-- ;
+ }while ( j < k ) ;
+
+ k3 = np[k] ;
+ kspan = np[1] ;
+ kk = jc + 1 ;
+ k2 = kspan + 1 ;
+ j = 1;
+
+
+}
+
+static int post_sqFactor2NormlOrder (void)
+{
+
+ do
+ {
+ do
+ {
+ k2 -= np[j-1] ;
+ j++ ;
+ k2 += np[j] ;
+
+ } while ( k2 > np[j-1]);
+
+ j = 1 ;
+
+/* 390 */
+ do
+ {
+ if ( kk < k2 )
+ {
+
+
+ return 1 ;
+ }
+ else
+ {
+ kk += inc ;
+ k2 += kspan ;
+ }
+ }while( k2 < ks );
+
+ }while ( kk < ks ) ;
+
+ jc = k3 ;
+
+ return 0;
+}
+
+
+/* appeler cetter fonction dans un do while valeur_retour != 1)*/
+static void single_sqFactor2NormlOrder (void)
+{
+
+
+ do
+ {
+
+ ak = a[kk-1] ;
+ a[kk-1] = a[k2-1] ;
+ a[k2-1] = ak ;
+
+ bk = b[kk-1] ;
+ b[kk-1] = b[k2-1] ;
+ b[k2-1] = bk ;
+
+ kk += inc ;
+ k2 += kspan ;
+ } while ( k2 < ks );
+
+ /*380*/
+}
+
+/*idem que single_ */
+static int multi_sqFactor2NormlOrder (void)
+{
+
+
+
+ k = kk + jc ;
+
+ do /*410*/
+ {
+ ak = a[kk-1] ;
+ a[kk-1] = a[k2-1] ;
+ a[k2-1] = ak ;
+ bk = b[kk-1] ;
+ b[kk-1] = b[k2-1] ;
+ b[k2-1] = bk ;
+ kk += inc ;
+ k2 += kspan ;
+ } while ( kk < k );
+
+ kk += (ks - jc ) ;
+ k2 += (ks - jc ) ;
+
+ if ( kk < nt )
+ return 1 ;
+
+ k2 += ( kspan - nt );
+ kk += ( jc - nt );
+
+ if ( k2 < ks )
+ {
+
+ return 1 ;
+ }
+ if( post_sqFactor2NormlOrder ( ) == 1 )
+ {
+
+ return 1 ;
+ }
+ jc = k3 ;
+
+ return 0;
+
+}
+
+
+
+static void nonSqFactor2NormOrder (void)
+{
+
+ j = m - kt ;
+ nfac[j] = 1 ;
+
+
+
+ do
+ {
+ nfac[j-1] *= nfac[j] ;
+
+ j-- ;
+
+
+ }while ( j != kt ) ;
+
+ kt ++ ;
+ nn = nfac[kt-1] - 1;
+
+ jj = 0 ;
+ j = 0;
+
+ /*480*/
+
+ k2 = nfac[kt-1] ;
+ k = kt + 1 ;
+ kk = nfac[k-1] ;
+ j ++ ;
+
+ while ( j <= nn )
+ {
+ jj += kk ;
+
+
+ while ( jj >= k2 )
+ {
+ jj -= k2 ;
+ k2 = kk ;
+ k++ ;
+ kk = nfac[k-1] ;
+
+ jj += kk ;
+
+
+ }
+
+ np[j-1] = jj ;
+ k2 = nfac[kt-1] ;
+ k = kt + 1 ;
+ kk = nfac[k-1] ;
+ j ++ ;
+
+ }
+
+ j = 0 ;
+
+ return ;
+}
+
+/* here we determine how many permutation cycles we need to do */
+static void detPermutCycles (void)
+{
+
+ do
+ {
+ do
+ {
+ j++ ;
+
+ kk = np[j-1] ;
+ }while ( kk < 0 ) ;
+
+
+ if ( kk != j )
+ {
+ do
+ {
+
+ k = kk ;
+ kk = np[k-1] ;
+ np[k-1] = -kk ;
+ }while ( kk != j ) ;
+ k3 = kk ;
+ }
+ else
+ np[j-1] = -j ;
+ }while ( j != nn );
+
+ maxf *= inc ;
+
+ return ;
+}
+
+static void reorderMatrix (void)
+{
+do
+ {
+ do
+ {
+ j-- ;
+
+ }while (np[j-1] < 0 ) ;
+
+ jj = jc ;
+
+ /*520*/
+ do
+ {
+ kspan = jj ;
+
+ if ( jj > maxf )
+ kspan = maxf ;
+
+ jj -= kspan ;
+ k = np [j-1];
+ kk = jc*k + i + jj ;
+ k1 = kk + kspan ;
+ k2 = 0 ;
+
+ do /*530*/
+ {
+ k2 ++ ;
+ wt[k2-1] = a[k1-1] ;
+ bt[k2-1] = b[k1-1] ;
+ k1 -= inc ;
+
+ }while ( k1 != kk );
+
+ do
+ {
+ k1 = kk + kspan ;
+ k2 = k1 - jc * (k + np[k-1]);
+ k = -np[k-1];
+
+
+ do
+ {
+ a[k1-1] = a[k2-1] ;
+ b[k1-1] = b[k2-1] ;
+
+ k1 -= inc ;
+ k2 -= inc ;
+
+ }while ( k1 != kk ) ;
+
+ kk = k2 ;
+
+ }while ( k != j );
+
+ k1 = kk +kspan ;
+ k2 = 0 ;
+ /*560*/
+
+ do
+ {
+ k2 ++ ;
+ a[k1-1] = wt[k2-1] ;
+ b[k1-1] = bt[k2-1] ;
+ k1 -= inc ;
+
+
+ }while ( k1 != kk ) ;
+
+ } while ( jj != 0 ) ;
+}while ( j != 1 ) ;
+
+ return ;
+}
+
+
diff --git a/src/c/signalProcessing/fft/fft842.c b/src/c/signalProcessing/fft/fft842.c
new file mode 100644
index 0000000..162490f
--- /dev/null
+++ b/src/c/signalProcessing/fft/fft842.c
@@ -0,0 +1,173 @@
+/*
+ * 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
+ *
+ */
+
+#include "fft_internal.h"
+
+
+
+/* get binary log of integer argument; exact if n a power of 2 */
+static int fastlog2( int n)
+{
+ int log = -1;
+ while(n) {
+ log++;
+ n >>= 1;
+ }
+ return(log);
+}
+
+
+
+void fft842 (doubleComplex* b, int size , int in)
+{
+ double fn;
+ doubleComplex temp ;
+
+ int L[16],L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15;
+ int j1,j2,j3,j4,j5,j6,j7,j8,j9,j10,j11,j12,j13,j14;
+ int i = 0, j, ij, ji, ij1, ji1;
+ int n2pow, n8pow, nthpo, ipass, nxtlt, lengt;
+
+ n2pow = fastlog2( size );
+ nthpo = size ;
+ fn = 1.0 / (double)nthpo;
+
+
+ if(in==FORWARD)
+ /* take conjugate */
+ for(i=0;i< size ;i++)
+ {
+ b[i] = DoubleComplex ( zreals( b[i]) , - zimags (b[i]));
+ }
+
+
+
+ n8pow = n2pow/3;
+
+ if(n8pow)
+ {
+ /* if the size if a factor of a power of 8 we call r8tx */
+ /* radix 8 iterations */
+ for(ipass=1;ipass<=n8pow;ipass++)
+ {
+ nxtlt = 0x1 << (n2pow - 3*ipass);
+ lengt = 8*nxtlt;
+
+
+
+ r8tx(nxtlt,nthpo,lengt,
+ b,b+nxtlt,b+2*nxtlt,
+ b+3*nxtlt,b+4*nxtlt,b+5*nxtlt,
+ b+6*nxtlt,b+7*nxtlt);
+
+
+ }
+ }
+
+/* if the size can be written this way 2^(3*n + 1) , then we call the radix 2 function
+ if can be written this way 2^(3*n + 1) the we call the radix 4 function */
+
+ if(n2pow%3 == 1)
+ {
+ /* radix 2 iteration needed */
+ r2tx(nthpo,b,b+1);
+ }
+
+ if(n2pow%3 == 2)
+ {
+ /* radix 4 iteration needed */
+
+ r4tx(nthpo,b,b+1,b+2,b+3);
+ }
+
+
+
+ for(j=1;j<=15;j++)
+ {
+ L[j] = 1;
+ if(j-n2pow <= 0) L[j] = 0x1 << (n2pow + 1 - j);
+ }
+ /* this part can maybe be improved */
+
+ L15=L[1];L14=L[2];L13=L[3];L12=L[4];L11=L[5];L10=L[6];L9=L[7];
+ L8=L[8];L7=L[9];L6=L[10];L5=L[11];L4=L[12];L3=L[13];L2=L[14];L1=L[15];
+
+ ij = 1;
+
+/* all the following instruction is to unscramble the output */
+ for(j1=1;j1<=L1;j1++)
+ for(j2=j1;j2<=L2;j2+=L1)
+ for(j3=j2;j3<=L3;j3+=L2)
+ for(j4=j3;j4<=L4;j4+=L3)
+ for(j5=j4;j5<=L5;j5+=L4)
+ for(j6=j5;j6<=L6;j6+=L5)
+ for(j7=j6;j7<=L7;j7+=L6)
+ for(j8=j7;j8<=L8;j8+=L7)
+ for(j9=j8;j9<=L9;j9+=L8)
+ for(j10=j9;j10<=L10;j10+=L9)
+ for(j11=j10;j11<=L11;j11+=L10)
+ for(j12=j11;j12<=L12;j12+=L11)
+ for(j13=j12;j13<=L13;j13+=L12)
+ for(j14=j13;j14<=L14;j14+=L13)
+ for(ji=j14;ji<=L15;ji+=L14)
+
+ {
+ ij1 = ij-1;
+ ji1 = ji-1;
+
+ if(ij-ji<0)
+ {
+ temp = b[ij1];
+ b[ij1] = b[ji1];
+ b[ji1] = temp;
+
+ /*
+ r = b[ij1].re;
+ b[ij1].re = b[ji1].re;
+ b[ji1].re = r;
+ fi = b[ij1].im;
+ b[ij1].im = b[ji1].im;
+ b[ji1].im = fi;
+ */
+ }
+ ij++;
+ }
+
+ if(in==FORWARD) /* take conjugates & unscramble outputs */
+ for(i=0,j=size/2;j<size;i++,j++)
+ {
+ temp = DoubleComplex ( zreals ( b[j] ) ,- zimags( b[j] ));
+ b[j] = DoubleComplex ( zreals ( b[i] ) ,- zimags( b[i] ));
+ b[i] = DoubleComplex ( zreals ( temp ) , zimags( temp ));
+
+
+ /* r = b[j].re; fi = b[j].im;
+ b[j].re = b[i].re; b[j].im = -b[i].im;
+ b[i].re = r; b[i].im = -fi;
+ */
+ }
+
+
+
+/* this code is two fix a problem of result order which was different from what scilab give */
+ for ( i = 0 ; i < size /2 ; i++)
+ {
+ temp = b[i] ;
+ b[i] = b[i+(size/2)];
+ b[i+(size/2)]= temp ;
+
+
+
+ }
+
+
+}
diff --git a/src/c/signalProcessing/fft/fft_internal.h b/src/c/signalProcessing/fft/fft_internal.h
new file mode 100644
index 0000000..70377bf
--- /dev/null
+++ b/src/c/signalProcessing/fft/fft_internal.h
@@ -0,0 +1,42 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#ifndef __FFT_INTERNAL_H__
+#define __FFT_INTERNAL_H__
+
+
+#include "addition.h"
+#include "subtraction.h"
+
+#define FORWARD 0
+#define INVERSE 1
+void dfft2 ( double* a , double* b , int nseg , int n , int nspn ,
+ int isn , int ierr);
+
+
+
+void dfftbi ( double* a , double* b , int nseg , int n , int nspn ,
+ int isn , int ierr );
+
+void fft842 (doubleComplex* b, int size , int in);
+
+void r2tx(int nthpo, doubleComplex* c0, doubleComplex* c1);
+void r4tx( int nthpo, doubleComplex* c0, doubleComplex* c1, doubleComplex* c2, doubleComplex* c3);
+void r8tx ( int nxtlt,int nthpo,int lengt,
+ doubleComplex* cc0,doubleComplex* cc1,doubleComplex* cc2,doubleComplex* cc3,
+ doubleComplex* cc4,doubleComplex* cc5,doubleComplex* cc6,doubleComplex* cc7);
+
+int dfftmx ( double* _pdblA , double* _pdblB , int _iNtot, int _iN, int _iNspan,
+ int _iIsn, int _iM, int _iKt, double* _pdblWt, double* _pdblCk,
+ double* _pdblBt, double* _pdblSk, int* _piNp, int* _piNfac);
+
+#endif /* !__FFT_INTERNAL_H__ */
diff --git a/src/c/signalProcessing/fft/r2tx.c b/src/c/signalProcessing/fft/r2tx.c
new file mode 100644
index 0000000..fd45929
--- /dev/null
+++ b/src/c/signalProcessing/fft/r2tx.c
@@ -0,0 +1,46 @@
+/*
+ * 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
+ *
+ */
+
+#include "fft_internal.h"
+/*
+** radix 2 iteration subroutine
+*/
+void r2tx(int nthpo, doubleComplex* c0, doubleComplex* c1)
+{
+ int kk;
+ /* double *cr0, *ci0, *cr1, *ci1, r1, fi1;*/
+ doubleComplex temp ;
+
+/* cr0 = &(c0[0].re);
+ ci0 = &(c0[0].im);
+ cr1 = &(c1[0].re);
+ ci1 = &(c1[0].im);*/
+
+ for(kk=0;kk<nthpo;kk+=2)
+ {
+
+
+ temp = zadds ( c0[kk] , c1[kk] );
+ c1[kk] = zdiffs( c0[kk] , c1[kk] );
+ c0[kk] = DoubleComplex ( zreals ( temp ) , zimags( temp ));
+/*
+ r1 = cr0[kk] + cr1[kk];
+ cr1[kk] = cr0[kk] - cr1[kk];
+ cr0[kk] = r1;
+
+
+ fi1 = ci0[kk] + ci1[kk];
+ ci1[kk] = ci0[kk] - ci1[kk];
+ ci0[kk] = fi1;
+*/
+ }
+}
diff --git a/src/c/signalProcessing/fft/r4tx.c b/src/c/signalProcessing/fft/r4tx.c
new file mode 100644
index 0000000..a6a9411
--- /dev/null
+++ b/src/c/signalProcessing/fft/r4tx.c
@@ -0,0 +1,49 @@
+/*
+ * 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
+ *
+ */
+
+#include "fft_internal.h"
+
+
+
+/*
+** radix 4 iteration subroutine
+*/
+/* this function do in one turn the same computation that do radix 2 in two turns */
+void r4tx( int nthpo, doubleComplex* c0, doubleComplex* c1, doubleComplex* c2, doubleComplex* c3)
+{
+ int kk;
+ doubleComplex temp1 , temp2 , temp3 , temp4 ;
+
+ for(kk=0;kk<nthpo;kk+=4)
+ {
+ /* real and imag parts alternate */
+
+ /* this first step is strictly equivalent than calling radix 2
+ except that radix would have needed 2 turns to compute what radix4 do in one */
+ temp1 = zadds ( c0[kk] , c2[kk] ) ;
+ temp2 = zdiffs( c0[kk] , c2[kk] ) ;
+ temp3 = zadds ( c1[kk] , c3[kk] ) ;
+ temp4 = zdiffs( c1[kk] , c3[kk] ) ;
+
+
+ /* strictly equivalent than calling radix2 with the temporary vector , but here also , radix4 do it in one turn
+ instead of two */
+ c0[kk] = zadds ( temp1 , temp3 );
+ c1[kk] = zdiffs( temp1 , temp3 );
+
+
+ c2[kk] = DoubleComplex ( zreals ( temp2 ) - zimags( temp4 ) , zimags ( temp2 ) + zreals( temp4 ) );
+ c3[kk] = DoubleComplex ( zreals ( temp2 ) + zimags( temp4 ) , zimags ( temp2 ) - zreals( temp4 ) );
+
+
+ }
+}
diff --git a/src/c/signalProcessing/fft/r8tx.c b/src/c/signalProcessing/fft/r8tx.c
new file mode 100644
index 0000000..44866ce
--- /dev/null
+++ b/src/c/signalProcessing/fft/r8tx.c
@@ -0,0 +1,169 @@
+
+/*
+ * 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
+ *
+ */
+
+#include "fft_internal.h"
+#include <math.h>
+
+
+
+/*
+** radix 8 iteration subroutine
+*/
+
+/* this function do in one turn the same computation that do radix 2 in three turns */
+
+void r8tx ( int nxtlt,int nthpo,int lengt,
+ doubleComplex* cc0,doubleComplex* cc1,doubleComplex* cc2,doubleComplex* cc3,
+ doubleComplex* cc4,doubleComplex* cc5,doubleComplex* cc6,doubleComplex* cc7)
+
+{
+
+
+ int j , kk;
+ double dblP7 = 1 / sqrt(2.0) ;
+ double dblPi2 = 8 * atan(1.0);
+
+ double scale, arg;
+ double c1,c2,c3,c4,c5,c6,c7;
+ double s1,s2,s3,s4,s5,s6,s7;
+
+ doubleComplex Atemp0,Atemp1,Atemp2,Atemp3,Atemp4,Atemp5,Atemp6,Atemp7;
+ doubleComplex Btemp0,Btemp1,Btemp2,Btemp3,Btemp4,Btemp5,Btemp6,Btemp7;
+
+ doubleComplex temp ;
+
+
+ scale = dblPi2/lengt;
+
+
+ for(j=0;j<nxtlt;j++)
+ {
+
+ arg = j*scale;
+ c1 = cos(arg);
+ s1 = sin(arg);
+ c2 = c1*c1 - s1*s1;
+ s2 = c1*s1 + c1*s1;
+ c3 = c1*c2 - s1*s2;
+ s3 = c2*s1 + s2*c1;
+ c4 = c2*c2 - s2*s2;
+ s4 = c2*s2 + c2*s2;
+ c5 = c2*c3 - s2*s3;
+ s5 = c3*s2 + s3*c2;
+ c6 = c3*c3 - s3*s3;
+ s6 = c3*s3 + c3*s3;
+ c7 = c3*c4 - s3*s4;
+ s7 = c4*s3 + s4*c3;
+
+ for(kk=j;kk<nthpo;kk+=lengt)
+ {
+ /* (k-1)*2*/ /* index by twos; re & im alternate */
+
+
+ /* first turn the same as calling radix 2 with the input vector */
+ /* but radix2 will have do it in three turn , radix8 do it in one */
+ Atemp0 = zadds ( cc0[kk] , cc4[kk] ) ;
+ Atemp1 = zadds ( cc1[kk] , cc5[kk] ) ;
+ Atemp2 = zadds ( cc2[kk] , cc6[kk] ) ;
+ Atemp3 = zadds ( cc3[kk] , cc7[kk] ) ;
+
+
+ Atemp4 = zdiffs ( cc0[kk] , cc4[kk] ) ;
+ Atemp5 = zdiffs ( cc1[kk] , cc5[kk] ) ;
+ Atemp6 = zdiffs ( cc2[kk] , cc6[kk] ) ;
+ Atemp7 = zdiffs ( cc3[kk] , cc7[kk] ) ;
+
+ /* second turn the same as calling radix 2 with the vector transformed by a previous call of radix2 */
+ /* the same here , three turns in one */
+ Btemp0 = zadds ( Atemp0 , Atemp2 ) ;
+ Btemp1 = zadds ( Atemp1 , Atemp3 ) ;
+ Btemp2 = zdiffs ( Atemp0 , Atemp2 ) ;
+ Btemp3 = zdiffs ( Atemp1 , Atemp3 ) ;
+
+ Btemp4 = DoubleComplex ( zreals ( Atemp4 ) - zimags( Atemp6 ) , zimags ( Atemp4 ) + zreals( Atemp6 ) );
+ Btemp5 = DoubleComplex ( zreals ( Atemp5 ) - zimags( Atemp7 ) , zimags ( Atemp5 ) + zreals( Atemp7 ) );
+ Btemp6 = DoubleComplex ( zreals ( Atemp4 ) + zimags( Atemp6 ) , zimags ( Atemp4 ) - zreals( Atemp6 ) );
+ Btemp7 = DoubleComplex ( zreals ( Atemp5 ) + zimags( Atemp7 ) , zimags ( Atemp5 ) - zreals( Atemp7 ) );
+
+ /*third turn the same as calling radix 2 with the vector transformed by two previous call of radix2 */
+ cc0[kk] = zadds ( Btemp0 , Btemp1 );
+
+
+
+ /* if we are not in the first turn */
+
+ if(j>0)
+ {
+ cc1[kk] = DoubleComplex ( (c4 * (zreals(Btemp0) - zreals(Btemp1))) - (s4 * (zimags(Btemp0) - zimags(Btemp1))),
+ c4 * (zimags(Btemp0) - zimags(Btemp1)) + s4 * (zreals(Btemp0) - zreals(Btemp1)));
+
+ cc2[kk] = DoubleComplex ( c2 * (zreals(Btemp2) - zimags(Btemp3)) - s2 * (zimags(Btemp2) + zreals(Btemp3)) ,
+ c2 * (zimags(Btemp2) + zreals(Btemp3)) + s2 * (zreals(Btemp2) - zimags(Btemp3)));
+
+ cc3[kk] = DoubleComplex ( c6 * (zreals(Btemp2) + zimags(Btemp3)) - s6 * (zimags(Btemp2) - zreals(Btemp3)) ,
+ c6 * (zimags(Btemp2) - zreals(Btemp3)) + s6 * (zreals(Btemp2) + zimags(Btemp3)));
+
+
+ temp = DoubleComplex ( dblP7*(zreals ( Btemp5 ) - zimags( Btemp5 )) ,
+ dblP7*(zreals ( Btemp5 ) + zimags( Btemp5 )) );
+
+ cc4[kk] = DoubleComplex ( c1 * (zreals (Btemp4) + zreals(temp)) - s1 * (zimags (Btemp4) + zimags(temp)) ,
+ c1 * (zimags (Btemp4) + zimags(temp)) + s1 * (zreals (Btemp4) + zreals(temp)));
+ cc5[kk] = DoubleComplex ( c5 * (zreals (Btemp4) - zreals(temp)) - s5 * (zimags (Btemp4) - zimags(temp)) ,
+ c5 * (zimags (Btemp4) - zimags(temp)) + s5 * (zreals (Btemp4) - zreals(temp)));
+
+
+ temp = DoubleComplex ( - dblP7*(zreals ( Btemp7 ) + zimags( Btemp7 )) ,
+ dblP7*(zreals ( Btemp7 ) - zimags( Btemp7 )) );
+
+ cc6[kk] = DoubleComplex ( c3 * (zreals (Btemp6) + zreals(temp)) - s3 * (zimags (Btemp6) + zimags(temp)) ,
+ c3 * (zimags (Btemp6) + zimags(temp)) + s3 * (zreals (Btemp6) + zreals(temp)));
+ cc7[kk] = DoubleComplex ( c7 * (zreals (Btemp6) - zreals(temp)) - s7 * (zimags (Btemp6) - zimags(temp)) ,
+ c7 * (zimags (Btemp6) - zimags(temp)) + s7 * (zreals (Btemp6) - zreals(temp)));
+
+
+
+
+ }
+ else
+ {
+ cc1[kk] = zdiffs ( Btemp0 , Btemp1 );
+
+ cc2[kk] = DoubleComplex ( zreals ( Btemp2 ) - zimags( Btemp3 ) ,
+ zimags ( Btemp2 ) + zreals( Btemp3 ) );
+
+
+ cc3[kk] = DoubleComplex ( zreals ( Btemp2 ) + zimags( Btemp3 ) ,
+ zimags ( Btemp2 ) - zreals( Btemp3 ) );
+
+
+ temp = DoubleComplex ( dblP7*(zreals ( Btemp5 ) - zimags( Btemp5 )) ,
+ dblP7*(zreals ( Btemp5 ) + zimags( Btemp5 )) );
+
+ cc4[kk] = zadds ( Btemp4 , temp );
+ cc5[kk] = zdiffs ( Btemp4 , temp );
+
+ temp = DoubleComplex ( - dblP7*(zreals ( Btemp7 ) + zimags( Btemp7 )) ,
+ dblP7*(zreals ( Btemp7 ) - zimags( Btemp7 )) );
+
+ cc6[kk] = zadds ( Btemp6 , temp );
+ cc7[kk] = zdiffs ( Btemp6 , temp );
+
+
+ }
+
+ }
+ }
+
+
+}
diff --git a/src/c/signalProcessing/fft/sfftma.c b/src/c/signalProcessing/fft/sfftma.c
new file mode 100644
index 0000000..d4e145b
--- /dev/null
+++ b/src/c/signalProcessing/fft/sfftma.c
@@ -0,0 +1,34 @@
+/*
+ * 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 "fft.h"
+#include "zeros.h"
+
+void sfftma ( float* in , int rows, int cols, float* out){
+ float* ZEROS;
+ floatComplex* inCpx;
+ floatComplex* outCpx;
+
+ ZEROS = (float*) malloc((unsigned int)(rows*cols)*sizeof(float));
+ outCpx = (floatComplex*) malloc((unsigned int)(rows*cols)*sizeof(floatComplex));
+
+ szerosa(ZEROS,rows,cols);
+ inCpx=FloatComplexMatrix(in,ZEROS,rows*cols);
+
+ cfftma(inCpx,rows,cols,outCpx);
+
+ creala(outCpx, rows*cols, out);
+
+ free(ZEROS);
+ free(outCpx);
+}
diff --git a/src/c/signalProcessing/fft/testDoubleFft.c b/src/c/signalProcessing/fft/testDoubleFft.c
new file mode 100644
index 0000000..68bc431
--- /dev/null
+++ b/src/c/signalProcessing/fft/testDoubleFft.c
@@ -0,0 +1,470 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#include <stdlib.h>
+#include <assert.h>
+#include <stdio.h>
+#include <math.h>
+#include "fft.h"
+
+
+#define ROW 1
+#define COLS2 2
+#define COLS3 3
+#define COLS4 4
+#define COLS5 5
+#define COLS6 6
+#define COLS7 7
+#define COLS8 8
+#define COLS9 9
+#define COLS10 10
+#define COLS11 11
+#define COLS12 12
+#define COLS13 13
+#define COLS14 14
+#define COLS15 15
+#define COLS16 16
+#define COLS32 32
+
+#define ZREAL_IN2 { 0.00022113462910056 , 0.33032709173858166 }
+#define ZIMAG_IN2 { 0.66538110421970487 , 0.62839178834110498 }
+
+#define ZREAL_IN3 { 2.48206677380949259, 0.43537130765616894, 0.97385666053742170}
+#define ZIMAG_IN3 { 2.14807060454040766,- 0.78285905346274376, 0.42632796149700880}
+
+
+#define ZREAL_IN4 { 0.84974523587152362, 0.68573101982474327, 0.87821648130193353, 0.06837403681129217}
+#define ZIMAG_IN4 { 0.56084860628470778, 0.66235693730413914, 0.72635067673400044, 0.19851438421756029}
+
+#define ZREAL_IN5 { 0.84974523587152362, 0.68573101982474327, 0.87821648130193353, 0.06837403681129217,\
+ 0.65251349471509457}
+#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_IN7 { 0.54425731627270579, 0.23207478970289230, 0.23122371966019273, 0.21646326314657927,\
+ 0.65251349471509457, 0.88338878145441413, 0.30760907428339124 }
+#define ZIMAG_IN7 { 0.21460078610107303, 0.31264199689030647, 0.36163610080257058, 0.2922266637906432,\
+ 0.40948254754766822, 0.56642488157376647, 0.59350947011262178 }
+
+
+
+#define ZREAL_IN8 { 0.54425731627270579, 0.23207478970289230, 0.23122371966019273, 0.21646326314657927,\
+ 0.88338878145441413, 0.65251349471509457, 0.30760907428339124, 0.93296162132173777 }
+#define ZIMAG_IN8 { 0.21460078610107303, 0.31264199689030647, 0.36163610080257058, 0.2922266637906432,\
+ 0.56642488157376647, 0.48264719732105732, 0.33217189135029912, 0.59350947011262178}
+
+
+#define ZREAL_IN9 { 0.23122371966019273, 0.21646326314657927, 0.88338878145441413, 0.65251349471509457,\
+ 0.30760907428339124, 0.93296162132173777, 0.21460078610107303, 0.31264199689030647,\
+ 0.43685875833034515}
+#define ZIMAG_IN9 { 0.26931248093023896, 0.63257448654621840, 0.40519540151581168, 0.91847078315913677,\
+ 0.28064980218186975, 0.12800584640353918, 0.77831285959109664, 0.21190304495394230,\
+ 0.68568959552794695}
+
+
+#define ZREAL_IN10 { 0.21646326314657927, 0.65251349471509457, 0.63257448654621840, 0.31264199689030647,\
+ 0.93296162132173777, 0.31264199689030647, 0.48185089323669672, 0.48264719732105732,\
+ 0.2922266637906432 , 0.48264719732105732 }
+#define ZIMAG_IN10 { 0.23122371966019273, 0.21646326314657927, 0.88338878145441413, 0.65251349471509457,\
+ 0.11383596854284406, 0.19983377400785685, 0.56186607433483005, 0.58961773291230202,\
+ 0.23122371966019273, 0.21646326314657927}
+/*
+#define ZREAL_IN10 { 1,2,3,4,5,6,7,8,9,10 }
+
+
+#define ZIMAG_IN10 { 1,2,3,4,5,6,7,8,9,10 }
+*/
+
+
+
+
+#define ZREAL_IN11 {0.49934938363730907,0.26385784195736051,0.52535630855709314,0.53762298030778766,\
+ 0.11999255046248436,0.2256303490139544 ,0.62740930821746588,0.76084325974807143,\
+ 0.04855662025511265,0.67239497276023030,0.20171726960688829 }
+
+#define ZIMAG_IN11 {0.39115739194676280,0.83003165572881699,0.58787201577797532,0.48291792999953032,\
+ 0.22328650346025825,0.84008856676518917,0.12059959070757031,0.28553641680628061,\
+ 0.86075146449729800,0.84941016510128975,0.52570608118548989}
+
+
+#define ZREAL_IN12 {0.75604385416954756,0.00022113462910056,0.33032709173858166,0.66538110421970487,\
+ 0.62839178834110498,0.84974523587152362,0.68573101982474327,0.87821648130193353,\
+ 0.06837403681129217,0.56084860628470778,0.66235693730413914,0.72635067673400044}
+
+#define ZIMAG_IN12 {0.19851438421756029,0.54425731627270579,0.23207478970289230,0.23122371966019273,\
+ 0.21646326314657927,0.88338878145441413,0.65251349471509457,0.30760907428339124,\
+ 0.93296162132173777,0.21460078610107303,0.31264199689030647,0.36163610080257058}
+
+
+#define ZREAL_IN13 {0.2922266637906432 ,0.56642488157376647,0.48264719732105732,0.33217189135029912,\
+ 0.59350947011262178,0.50153415976092219,0.43685875833034515,0.26931248093023896,\
+ 0.63257448654621840,0.40519540151581168,0.91847078315913677,0.04373343335464597,\
+ 0.48185089323669672}
+
+
+
+#define ZIMAG_IN13 {0.26395560009405017,0.41481037065386772,0.28064980218186975,0.12800584640353918,\
+ 0.77831285959109664,0.21190304495394230,0.11213546665385365,0.68568959552794695,\
+ 0.15312166837975383,0.69708506017923355,0.84155184263363481,0.40620247554033995,\
+ 0.40948254754766822}
+
+
+
+#define ZREAL_IN14 {0.87841258011758327,0.11383596854284406,0.19983377400785685,0.56186607433483005,\
+ 0.58961773291230202,0.68539796629920602,0.89062247332185507,0.50422128057107329,\
+ 0.34936154074966908,0.38737787725403905,0.92228986788541079,0.94881842611357570,\
+ 0.34353372454643250,0.37601187312975526}
+
+#define ZIMAG_IN14 {0.73409405630081892,0.26157614728435874,0.49934938363730907,0.26385784195736051,\
+ 0.52535630855709314,0.53762298030778766,0.11999255046248436,0.2256303490139544 ,\
+ 0.62740930821746588,0.76084325974807143,0.04855662025511265,0.67239497276023030,\
+ 0.20171726960688829,0.39115739194676280}
+
+#define ZREAL_IN15 {0.83003165572881699,0.58787201577797532,0.48291792999953032,0.22328650346025825,\
+ 0.84008856676518917,0.12059959070757031,0.28553641680628061,0.86075146449729800,\
+ 0.84941016510128975,0.52570608118548989,0.99312098976224661,0.64885628735646605,\
+ 0.99231909401714802,0.05004197778180242,0.74855065811425447}
+
+#define ZIMAG_IN15 {0.41040589986369014,0.60845263302326202,0.85442108893766999,0.06426467280834913,\
+ 0.82790829380974174,0.92623437754809856,0.56672112690284848,0.57116389367729425,\
+ 0.81601104838773608,0.05689279362559319,0.55959366867318749,0.12493403162807226,\
+ 0.72792222863063216,0.26777664758265018,0.54653349192813039}
+
+
+
+#define ZREAL_IN16 {0.23122371966019273, 0.21646326314657927, 0.88338878145441413, 0.65251349471509457,\
+ 0.30760907428339124, 0.93296162132173777, 0.21460078610107303, 0.31264199689030647,\
+ 0.36163610080257058, 0.2922266637906432 , 0.56642488157376647, 0.48264719732105732,\
+ 0.33217189135029912, 0.59350947011262178, 0.50153415976092219, 0.43685875833034515}
+#define ZIMAG_IN16 {0.26931248093023896, 0.63257448654621840, 0.40519540151581168, 0.91847078315913677,\
+ 0.04373343335464597, 0.48185089323669672, 0.26395560009405017, 0.41481037065386772,\
+ 0.28064980218186975, 0.12800584640353918, 0.77831285959109664, 0.21190304495394230,\
+ 0.11213546665385365, 0.68568959552794695, 0.15312166837975383, 0.69708506017923355}
+
+
+#define ZREAL_IN32 {0.21132486546412110,0.75604385416954756,0.00022113462910056,0.33032709173858166,\
+ 0.66538110421970487,0.62839178834110498,0.84974523587152362,0.68573101982474327,\
+ 0.87821648130193353,0.06837403681129217,0.56084860628470778,0.66235693730413914,\
+ 0.72635067673400044,0.19851438421756029,0.54425731627270579,0.23207478970289230,\
+ 0.23122371966019273,0.21646326314657927,0.88338878145441413,0.65251349471509457,\
+ 0.30760907428339124,0.93296162132173777,0.21460078610107303,0.31264199689030647,\
+ 0.36163610080257058,0.2922266637906432 ,0.56642488157376647,0.48264719732105732,\
+ 0.33217189135029912,0.59350947011262178,0.50153415976092219,0.43685875833034515}
+
+#define ZIMAG_IN32 {0.26931248093023896,0.63257448654621840,0.40519540151581168,0.91847078315913677,\
+ 0.04373343335464597,0.48185089323669672,0.26395560009405017,0.41481037065386772,\
+ 0.28064980218186975,0.12800584640353918,0.77831285959109664,0.21190304495394230,\
+ 0.11213546665385365,0.68568959552794695,0.15312166837975383,0.69708506017923355,\
+ 0.84155184263363481,0.40620247554033995,0.40948254754766822,0.87841258011758327,\
+ 0.11383596854284406,0.19983377400785685,0.56186607433483005,0.58961773291230202,\
+ 0.68539796629920602,0.89062247332185507,0.50422128057107329,0.34936154074966908,\
+ 0.38737787725403905,0.92228986788541079,0.94881842611357570,0.34353372454643250}
+
+
+
+
+#define ZREAL_RESULT2 { 0.33054822636768222,- 0.33010595710948110}
+#define ZIMAG_RESULT2 { 1.29377289256080985, 0.03698931587859988}
+
+#define ZREAL_RESULT3 { 3.8912947420030832 , 0.73026611683127762, 2.82463946259411713}
+#define ZIMAG_RESULT3 { 1.79153951257467270, 2.79267814568426775, 1.85999415536228230}
+
+#define ZREAL_RESULT4 { 2.48206677380949259, 0.43537130765616894, 0.97385666053742170, -0.49231379851698875}
+#define ZIMAG_RESULT4 { 2.14807060454040766,- 0.78285905346274376, 0.42632796149700880, 0.45185491256415844}
+
+#define ZREAL_RESULT5 { 3.13458026852458715, 0.8989689127154592 ,-0.38601946016350575, 0.50520993574533923,\
+ 0.09598652253573875}
+#define ZIMAG_RESULT5 { 2.71449548611417413,-0.31527367037930898, 0.60322341639929178,-0.89813890885693670,\
+ 0.69993670814631914}
+
+#define ZREAL_RESULT6 { 2.18414165778085589,-0.26482327553354379,-0.01687604011087318, 0.67184740351513028,\
+ 0.11489612058787246, 0.57635803139679309 }
+#define ZIMAG_RESULT6 { +2.34103989927098155,+0.34168162147929737,-0.70971181304669773,-0.05571636231616137,\
+ -0.11084573654913504,-0.51884289223184654 }
+
+
+
+
+#define ZREAL_RESULT7 { 3.06753043923527002,-0.62032167153569062,-0.13156333379499591, 0.48353341667797933,\
+ 0.63567251139259018, 0.05503001802946385, 0.31991983390432432}
+#define ZIMAG_RESULT7 { 2.75052244681864977, 0.82490994311348309,-0.93592353228518299,-0.23131444371235776,\
+ -0.12732936894919694, 0.16455873200809046,-0.94321827428597393}
+
+
+
+#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,\
+ -0.20619166828691959,-1.17220193335521805,-0.17761892452836037,-1.13931807191437073 }
+
+#define ZREAL_RESULT9 { 4.18826149590313435,-0.33012457237426968,-0.46815050871925312,-0.52782532864173848,\
+ 0.14402327100125287, 0.48673726656350014,-0.36542216583231485,-0.05675799381585508,\
+ -0.98972798714272159}
+#define ZIMAG_RESULT9 { 4.31011430080980062,-0.43185186999958014,-0.61788469590268758, 2.02080753944191294,\
+ -1.82700213292318292,-0.72130831941965079,-0.43263346921029644,-0.61611460931125561,\
+ 0.73968558488709069 }
+
+
+#define ZREAL_RESULT10 { 4.7991688111796975 , 0.13431735180709442, 0.69797375124916528,-0.96094309976899528,\
+ -1.299412169815219 , 0.31298504490405327,-0.70524633213128674, 0.73186521665562432,\
+ -0.84695776029792746,-0.69911818231641265}
+#define ZIMAG_RESULT10 { +3.8964297915808856 ,-0.73143162523007543,-1.16550179795884423,-0.28088284236709465,\
+ +0.91311790128897607,+0.14664673572406173,-0.38825389263472715,+0.70003588825710683,\
+ -1.10050453393604197,+0.32258157187768072}
+
+#define ZREAL_RESULT11 { 4.48273084452375770,-0.38185469421558837,-0.20352646397260507, 0.93844897170676500,\
+ -0.36107014581234886, 1.63127126429331426, 0.21051283071884830, 0.41375037345506283,\
+ -1.51895083986003510, 0.07998126975880851, 0.20154980941442344}
+
+#define ZIMAG_RESULT11 {+5.99735778197646141,+0.89612320628808262,-1.19950115725534112,+0.16831729582097132,\
+ -0.30180616479381106,-1.1576712540107854 ,+0.14605414615044232,+0.98186675096176135,\
+ -1.81578488007792282,+0.11882005651954808,+0.46895552983498812}
+
+#define ZREAL_RESULT12 { 6.81198796723037958,-0.94341279444120363, 0.80833429094732012, 0.51617261953651883,\
+ -0.2952048802069408 , 2.17160345678053313,-0.54953851085156202,-0.00060138915045171,\
+ 1.48723066647267177,-0.96738335862755753, 0.38783971037387632,-0.35450152802901336}
+
+#define ZIMAG_RESULT12 {+5.08788532856851816,-0.92793626853655098,+1.98330386259771707,+1.00984227284789085,\
+ -0.76701015963174557,-0.03923425866831987,+0.00245377141982317,-0.97965668697496155,\
+ -0.43031801485501076,-0.70842429809272289,-0.77014751450337293,-1.07858542356054099}
+
+
+#define ZREAL_RESULT13 { 5.95651050098240376,-1.05002118208049122,-0.62824400440218664, 0.73670329745244079,\
+ 1.01270235903781081,-0.97652276217739442,-0.80139420917945892,-1.08927100387059594,\
+ 1.10768757452252697,-0.90416530058905542, 0.19128270229571837,-0.36935459470156029,\
+ 0.61303325198820890}
+
+#define ZIMAG_RESULT13 {+5.38290618034079671,-0.01795106539414900,-1.0736822056133133 ,-0.38375436766279453,\
+ +0.45177555081294796,-0.42204321578379422,+1.167268002300917 ,-0.8654330910349184 ,\
+ -1.80135467250416070,+0.73358402770681042,+0.92212767526074568,-0.53962030646712056,\
+ -0.12239971073931022}
+
+#define ZREAL_RESULT14 { 7.75120115978643298,-0.78366539551591063,-0.20265674140819168, 0.04290246165533468,\
+ 2.26072777524451896, 0.41764276367067404,-0.94725360360479638, 0.59614222729578614,\
+ 1.2655897771348088 , 1.49954927048727082, 0.59161337187577756, 1.32712418977692859,\
+ -1.04078471420795249,-0.48035642054451416}
+
+
+#define ZIMAG_RESULT14 {+5.86955844005569816,+0.59116535878306964,+1.10949301280070478,-0.10194863149531888,\
+ +0.33742089533324454,+1.27136622217475770,+0.66505772083419801,-0.35660744598135352,\
+ +0.55272403261244618,+0.78239239747489764,-0.76097885152655409,+1.7013910918422144 ,\
+ -1.05520441290632339,-0.32851304179021534}
+
+#define ZREAL_RESULT15 { 9.03908939706161618, 0.83695739793685675,-0.1247585940626968 , 0.73554494173292662,\
+ 2.89255624599792061,-0.60942096648213817,-0.96289916352621108,-2.01148115975842146,\
+ 1.08671310762523987, 1.10385593717105923, 0.14097082301450437, 0.77951939204949339,\
+ -0.19682993144621974, 1.09445436001472118,-1.35379695139639411}
+
+#define ZIMAG_RESULT15 {+7.929235897026956 ,+0.93665405708769556,-0.58867096407810116,-0.08075001529554950,\
+ +0.05154837779444588,-1.64233407065738146,+2.20857407200866884,+0.92685932199933529,\
+ -1.71222943015973872,-0.79519673795720203,-0.80828166087623532,-0.07547063282874045,\
+ +0.21930651464200918,+1.00880777239444086,-1.42196400314524918}
+
+
+
+#define ZREAL_RESULT16 { 7.31841186061501503, 0.57213963313411265,-0.54757095809921363,-0.48628670926159856,\
+ -1.24745626002550125,-0.60260425121772254,-0.09566750389725764, 1.12013387649474438,\
+ -0.52123307064175606,-0.4866536676629296 , 1.98659065302356819,-0.8626986211125984 ,\
+ -0.61915938556194305,-0.27813937201980266,-1.53103677171080510,-0.01918993749322817}
+#define ZIMAG_RESULT16 { 6.47680679336190224, 0.33111151130330035,-0.19343861330849654, 0.12474172265893407,\
+ -1.0452539175748825 , 1.29632487527975693, 1.87557979276701658,-1.82623636350346352,\
+ -1.86397336795926094,-1.03154071610913434,-0.48573205481665604, 0.44539904220706855,\
+ -0.74425477534532547,-0.54299368721281471, 0.37996440777257234, 1.11249504536330601}
+
+#define ZREAL_RESULT32 { 15.3165711835026741,-1.79021577127059173,-1.66659611407065089, 0.17525916470909797,\
+ -1.16958628014871602, 0.58684741669397522, 0.03947542161511042, 0.99740008842981942,\
+ -0.46323241293430328, 2.122539701124051 ,-1.52963914564883940, 0.87990417229605744,\
+ 0.58569127383151542,-0.18198535589432135, 0.26043384746900655,-1.11204765363415392,\
+ 0.35329844802618027,-1.47568616310628631,-2.03487116744967844,-3.19495610958970166,\
+ 0.81026376203844086,-0.46366666776372734,-1.63150209835186510, 0.77334707088593369,\
+ -0.35098156332969666,-1.63498270669406387, 0.67411467120679691, 2.80538085483913147,\
+ -1.62281507315555107,-0.5600265995962992 ,-0.48984739061140237, 1.75450689143393301}
+
+
+
+#define ZIMAG_RESULT32 { 15.509232945740223 ,-0.47962381296807621, 0.21213951866464975, 0.88442937061831350,\
+ 1.52924554070524898,-0.6313403060045536 ,-2.25908603874729419,-1.3836292677373856 ,\
+ -1.18231281638145447,-2.14767090006699668, 1.5452016553381984 ,-3.15355126536920993,\
+ 2.10199273301496747, 0.67530605269461363,-2.03603600735261558, 1.2309547869577584 ,\
+ -1.9912955537438393 ,-1.9668221895811833 , 0.29575245179739662, 1.34815224953105273,\
+ 1.508921339902356 ,-0.40084285801706099, 2.96716476331614754, 1.08125713762201059,\
+ -1.39964522421360016,-1.30777696073860294,-1.13169784714423916,-2.00872755010475013,\
+ 0.53915777133569487,-2.45178696294021004 , 1.56509394479014063, 1.5558426888499468}
+
+static void zfftmaTest2 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN2;
+ double tImagIn [] = ZIMAG_IN2 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT2 ;
+ double tImagResult [] = ZIMAG_RESULT2 ;
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS2));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS2 );
+ doubleComplex* Result = DoubleComplexMatrix ( tRealResult , tImagResult ,ROW*COLS2) ;
+
+
+
+ zfftma ( in , ROW , COLS2 , 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*COLS2 ) ; 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])) < 3e-16 );
+
+
+ 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])) < 3e-16 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+
+static void zfftmaTest3 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN3;
+ double tImagIn [] = ZIMAG_IN3 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT3 ;
+ double tImagResult [] = ZIMAG_RESULT3 ;
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS3));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS3 );
+ doubleComplex* Result = DoubleComplexMatrix ( tRealResult , tImagResult ,ROW*COLS3) ;
+
+
+
+ zfftma ( in , ROW , COLS3 , 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*COLS3 ) ; 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])) < 3e-16 );
+
+
+ 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])) < 3e-16 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+
+
+static int testFft(void) {
+
+ printf("\n>>>> FFT Tests\n");
+ printf("\t>>>> Matrix Double Realt Tests\n");
+ /*dfftmaTest();*/
+
+ printf("\n\n\n");
+
+ printf("\n\t>>>> Vector 2 Double Complex Tests\n");
+ zfftmaTest2();
+ printf("\n\t>>>> Vector 3 Double Complex Tests\n");
+ zfftmaTest3();
+
+/*
+ printf("\n\t>>>> Vector 4 Double Complex Tests\n");
+ zfftmaTest4();
+ printf("\n\t>>>> Vector 5 Double Complex Tests\n");
+ zfftmaTest5();
+ printf("\n\t>>>> Vector 6 Double Complex Tests\n");
+ zfftmaTest6();
+ printf("\n\t>>>> Vector 7 Double Complex Tests\n");
+ zfftmaTest7();
+ printf("\n\t>>>> Vector 8 Double Complex Tests\n");
+ zfftmaTest8();
+ printf("\n\t>>>> Vector 9 Double Complex Tests\n");
+ zfftmaTest9();
+ printf("\n\t>>>> Vector 10 Double Complex Tests\n");
+ zfftmaTest10();
+ printf("\n\t>>>> Vector 11 Double Complex Tests\n");
+ zfftmaTest11();
+ printf("\n\t>>>> Vector 12 Double Complex Tests\n");
+ zfftmaTest12();
+ printf("\n\t>>>> Vector 13 Double Complex Tests\n");
+ zfftmaTest13();
+ printf("\n\t>>>> Vector 14 Double Complex Tests\n");
+ zfftmaTest14();
+ printf("\n\t>>>> Vector 14 Double Complex Tests\n");
+ zfftmaTest15();
+ printf("\n\t>>>> Vector 16 Double Complex Tests\n");
+ zfftmaTest16();
+ printf("\n\t>>>> Vector 32 Double Complex Tests\n");
+ zfftmaTest32();
+*/
+ return 0;
+}
+
+
+
+int main(void) {
+ assert(testFft() == 0);
+ return 0;
+}
diff --git a/src/c/signalProcessing/fft/testFloatFft.c b/src/c/signalProcessing/fft/testFloatFft.c
new file mode 100644
index 0000000..5176c34
--- /dev/null
+++ b/src/c/signalProcessing/fft/testFloatFft.c
@@ -0,0 +1,1238 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#include <stdlib.h>
+#include <assert.h>
+#include <stdio.h>
+#include <math.h>
+#include "fft.h"
+
+
+#define ROW 1
+#define COLS2 2
+#define COLS3 3
+#define COLS4 4
+#define COLS5 5
+#define COLS6 6
+#define COLS7 7
+#define COLS8 8
+#define COLS9 9
+#define COLS10 10
+#define COLS11 11
+#define COLS12 12
+#define COLS13 13
+#define COLS14 14
+#define COLS15 15
+#define COLS16 16
+#define COLS32 32
+
+
+#define CREAL_IN2 { 0.00022113462910056f , 0.33032709173858166f }
+#define CIMAG_IN2 { 0.66538110421970487f , 0.62839178834110498f }
+
+#define CREAL_IN3 { 2.48206677380949259f, 0.43537130765616894f, 0.97385666053742170f}
+#define CIMAG_IN3 { 2.14807060454040766f,- 0.78285905346274376f, 0.42632796149700880f}
+
+
+#define CREAL_IN4 { 0.84974523587152362f, 0.68573101982474327f, 0.87821648130193353f, 0.06837403681129217f}
+#define CIMAG_IN4 { 0.56084860628470778f, 0.66235693730413914f, 0.72635067673400044f, 0.19851438421756029f}
+
+#define CREAL_IN5 { 0.84974523587152362f, 0.68573101982474327f, 0.87821648130193353f, 0.06837403681129217f,\
+ 0.65251349471509457f}
+#define CIMAG_IN5 { 0.56084860628470778f, 0.66235693730413914f, 0.72635067673400044f, 0.19851438421756029f,\
+ 0.56642488157376647f}
+
+#define CREAL_IN6 { 0.54425731627270579f, 0.23207478970289230f, 0.23122371966019273f, 0.21646326314657927f,\
+ 0.65251349471509457f, 0.30760907428339124f }
+#define CIMAG_IN6 { 0.21460078610107303f, 0.31264199689030647f, 0.36163610080257058f, 0.2922266637906432f,\
+ 0.56642488157376647f, 0.59350947011262178f }
+
+#define CREAL_IN7 { 0.54425731627270579f, 0.23207478970289230f, 0.23122371966019273f, 0.21646326314657927f,\
+ 0.65251349471509457f, 0.88338878145441413f, 0.30760907428339124f }
+#define CIMAG_IN7 { 0.21460078610107303f, 0.31264199689030647f, 0.36163610080257058f, 0.2922266637906432f,\
+ 0.40948254754766822f, 0.56642488157376647f, 0.59350947011262178f }
+
+
+
+#define CREAL_IN8 { 0.54425731627270579f, 0.23207478970289230f, 0.23122371966019273f, 0.21646326314657927f,\
+ 0.88338878145441413f, 0.65251349471509457f, 0.30760907428339124f, 0.93296162132173777f }
+#define CIMAG_IN8 { 0.21460078610107303f, 0.31264199689030647f, 0.36163610080257058f, 0.2922266637906432f,\
+ 0.56642488157376647f, 0.48264719732105732f, 0.33217189135029912f, 0.59350947011262178f}
+
+
+#define CREAL_IN9 { 0.23122371966019273f, 0.21646326314657927f, 0.88338878145441413f, 0.65251349471509457f,\
+ 0.30760907428339124f, 0.93296162132173777f, 0.21460078610107303f, 0.31264199689030647f,\
+ 0.43685875833034515f}
+#define CIMAG_IN9 { 0.26931248093023896f, 0.63257448654621840f, 0.40519540151581168f, 0.91847078315913677f,\
+ 0.28064980218186975f, 0.12800584640353918f, 0.77831285959109664f, 0.21190304495394230f,\
+ 0.68568959552794695f}
+
+
+#define CREAL_IN10 { 0.21646326314657927f, 0.65251349471509457f, 0.63257448654621840f, 0.31264199689030647f,\
+ 0.93296162132173777f, 0.31264199689030647f, 0.48185089323669672f, 0.48264719732105732f,\
+ 0.2922266637906432f , 0.48264719732105732f }
+#define CIMAG_IN10 { 0.23122371966019273f, 0.21646326314657927f, 0.88338878145441413f, 0.65251349471509457f,\
+ 0.11383596854284406f, 0.19983377400785685f, 0.56186607433483005f, 0.58961773291230202f,\
+ 0.23122371966019273f, 0.21646326314657927f}
+/*
+#define CREAL_IN10 { 1,2,3,4,5,6,7,8,9,10 }
+
+
+#define CIMAG_IN10 { 1,2,3,4,5,6,7,8,9,10 }
+*/
+
+
+
+
+#define CREAL_IN11 {0.49934938363730907f,0.26385784195736051f,0.52535630855709314f,0.53762298030778766f,\
+ 0.11999255046248436f,0.2256303490139544f ,0.62740930821746588f,0.76084325974807143f,\
+ 0.04855662025511265f,0.67239497276023030f,0.20171726960688829f }
+
+#define CIMAG_IN11 {0.39115739194676280f,0.83003165572881699f,0.58787201577797532f,0.48291792999953032f,\
+ 0.22328650346025825f,0.84008856676518917f,0.12059959070757031f,0.28553641680628061f,\
+ 0.86075146449729800f,0.84941016510128975f,0.52570608118548989f}
+
+
+#define CREAL_IN12 {0.75604385416954756f,0.00022113462910056f,0.33032709173858166f,0.66538110421970487f,\
+ 0.62839178834110498f,0.84974523587152362f,0.68573101982474327f,0.87821648130193353f,\
+ 0.06837403681129217f,0.56084860628470778f,0.66235693730413914f,0.72635067673400044f}
+
+#define CIMAG_IN12 {0.19851438421756029f,0.54425731627270579f,0.23207478970289230f,0.23122371966019273f,\
+ 0.21646326314657927f,0.88338878145441413f,0.65251349471509457f,0.30760907428339124f,\
+ 0.93296162132173777f,0.21460078610107303f,0.31264199689030647f,0.36163610080257058f}
+
+
+#define CREAL_IN13 {0.2922266637906432f ,0.56642488157376647f,0.48264719732105732f,0.33217189135029912f,\
+ 0.59350947011262178f,0.50153415976092219f,0.43685875833034515f,0.26931248093023896f,\
+ 0.63257448654621840f,0.40519540151581168f,0.91847078315913677f,0.04373343335464597f,\
+ 0.48185089323669672f}
+
+
+
+#define CIMAG_IN13 {0.26395560009405017f,0.41481037065386772f,0.28064980218186975f,0.12800584640353918f,\
+ 0.77831285959109664f,0.21190304495394230f,0.11213546665385365f,0.68568959552794695f,\
+ 0.15312166837975383f,0.69708506017923355f,0.84155184263363481f,0.40620247554033995f,\
+ 0.40948254754766822f}
+
+
+
+#define CREAL_IN14 {0.87841258011758327f,0.11383596854284406f,0.19983377400785685f,0.56186607433483005f,\
+ 0.58961773291230202f,0.68539796629920602f,0.89062247332185507f,0.50422128057107329f,\
+ 0.34936154074966908f,0.38737787725403905f,0.92228986788541079f,0.94881842611357570f,\
+ 0.34353372454643250f,0.37601187312975526f}
+
+#define CIMAG_IN14 {0.73409405630081892f,0.26157614728435874f,0.49934938363730907f,0.26385784195736051f,\
+ 0.52535630855709314f,0.53762298030778766f,0.11999255046248436f,0.2256303490139544f ,\
+ 0.62740930821746588f,0.76084325974807143f,0.04855662025511265f,0.67239497276023030f,\
+ 0.20171726960688829f,0.39115739194676280f}
+
+#define CREAL_IN15 {0.83003165572881699f,0.58787201577797532f,0.48291792999953032f,0.22328650346025825f,\
+ 0.84008856676518917f,0.12059959070757031f,0.28553641680628061f,0.86075146449729800f,\
+ 0.84941016510128975f,0.52570608118548989f,0.99312098976224661f,0.64885628735646605f,\
+ 0.99231909401714802f,0.05004197778180242f,0.74855065811425447f}
+
+#define CIMAG_IN15 {0.41040589986369014f,0.60845263302326202f,0.85442108893766999f,0.06426467280834913f,\
+ 0.82790829380974174f,0.92623437754809856f,0.56672112690284848f,0.57116389367729425f,\
+ 0.81601104838773608f,0.05689279362559319f,0.55959366867318749f,0.12493403162807226f,\
+ 0.72792222863063216f,0.26777664758265018f,0.54653349192813039f}
+
+
+
+#define CREAL_IN16 {0.23122371966019273f, 0.21646326314657927f, 0.88338878145441413f, 0.65251349471509457f,\
+ 0.30760907428339124f, 0.93296162132173777f, 0.21460078610107303f, 0.31264199689030647f,\
+ 0.36163610080257058f, 0.2922266637906432f , 0.56642488157376647f, 0.48264719732105732f,\
+ 0.33217189135029912f, 0.59350947011262178f, 0.50153415976092219f, 0.43685875833034515f}
+#define CIMAG_IN16 {0.26931248093023896f, 0.63257448654621840f, 0.40519540151581168f, 0.91847078315913677f,\
+ 0.04373343335464597f, 0.48185089323669672f, 0.26395560009405017f, 0.41481037065386772f,\
+ 0.28064980218186975f, 0.12800584640353918f, 0.77831285959109664f, 0.21190304495394230f,\
+ 0.11213546665385365f, 0.68568959552794695f, 0.15312166837975383f, 0.69708506017923355f}
+
+
+#define CREAL_IN32 {0.21132486546412110f,0.75604385416954756f,0.00022113462910056f,0.33032709173858166f,\
+ 0.66538110421970487f,0.62839178834110498f,0.84974523587152362f,0.68573101982474327f,\
+ 0.87821648130193353f,0.06837403681129217f,0.56084860628470778f,0.66235693730413914f,\
+ 0.72635067673400044f,0.19851438421756029f,0.54425731627270579f,0.23207478970289230f,\
+ 0.23122371966019273f,0.21646326314657927f,0.88338878145441413f,0.65251349471509457f,\
+ 0.30760907428339124f,0.93296162132173777f,0.21460078610107303f,0.31264199689030647f,\
+ 0.36163610080257058f,0.2922266637906432f ,0.56642488157376647f,0.48264719732105732f,\
+ 0.33217189135029912f,0.59350947011262178f,0.50153415976092219f,0.43685875833034515f}
+
+#define CIMAG_IN32 {0.26931248093023896f,0.63257448654621840f,0.40519540151581168f,0.91847078315913677f,\
+ 0.04373343335464597f,0.48185089323669672f,0.26395560009405017f,0.41481037065386772f,\
+ 0.28064980218186975f,0.12800584640353918f,0.77831285959109664f,0.21190304495394230f,\
+ 0.11213546665385365f,0.68568959552794695f,0.15312166837975383f,0.69708506017923355f,\
+ 0.84155184263363481f,0.40620247554033995f,0.40948254754766822f,0.87841258011758327f,\
+ 0.11383596854284406f,0.19983377400785685f,0.56186607433483005f,0.58961773291230202f,\
+ 0.68539796629920602f,0.89062247332185507f,0.50422128057107329f,0.34936154074966908f,\
+ 0.38737787725403905f,0.92228986788541079f,0.94881842611357570f,0.34353372454643250f}
+
+
+
+
+#define CREAL_RESULT2 { 0.33054822636768222f,- 0.33010595710948110f}
+#define CIMAG_RESULT2 { 1.29377289256080985f, 0.03698931587859988f}
+
+#define CREAL_RESULT3 { 3.8912947420030832f , 0.73026611683127762f, 2.82463946259411713f}
+#define CIMAG_RESULT3 { 1.79153951257467270f, 2.79267814568426775f, 1.85999415536228230f}
+
+#define CREAL_RESULT4 { 2.48206677380949259f, 0.43537130765616894f, 0.97385666053742170f, -0.49231379851698875f}
+#define CIMAG_RESULT4 { 2.14807060454040766f,- 0.78285905346274376f, 0.42632796149700880f, 0.45185491256415844f}
+
+#define CREAL_RESULT5 { 3.13458026852458715f, 0.8989689127154592f ,-0.38601946016350575f, 0.50520993574533923f,\
+ 0.09598652253573875f}
+#define CIMAG_RESULT5 { 2.71449548611417413f,-0.31527367037930898f, 0.60322341639929178f,-0.89813890885693670f,\
+ 0.69993670814631914f}
+
+#define CREAL_RESULT6 { 2.18414165778085589f,-0.26482327553354379f,-0.01687604011087318f, 0.67184740351513028f,\
+ 0.11489612058787246f, 0.57635803139679309f }
+#define CIMAG_RESULT6 { +2.34103989927098155f,+0.34168162147929737f,-0.70971181304669773f,-0.05571636231616137f,\
+ -0.11084573654913504f,-0.51884289223184654f }
+
+
+
+
+#define CREAL_RESULT7 { 3.06753043923527002f,-0.62032167153569062f,-0.13156333379499591f, 0.48353341667797933f,\
+ 0.63567251139259018f, 0.05503001802946385f, 0.31991983390432432f}
+#define CIMAG_RESULT7 { 2.75052244681864977f, 0.82490994311348309f,-0.93592353228518299f,-0.23131444371235776f,\
+ -0.12732936894919694f, 0.16455873200809046f,-0.94321827428597393f}
+
+
+
+#define CREAL_RESULT8 { 4.00049206055700779f,-0.43357241280891956f, 0.79836636409163475f,-0.91119240848798977f,\
+ -0.06753427721560001f,-0.18576209864995416f, 0.97926024347543716f, 0.17400105922003017f}
+#define CIMAG_RESULT8 { 3.15585898794233799f, 0.62132445165622818f, 0.35205427557229996f, 0.28289917172258683f,\
+ -0.20619166828691959f,-1.17220193335521805f,-0.17761892452836037f,-1.13931807191437073f }
+
+#define CREAL_RESULT9 { 4.18826149590313435f,-0.33012457237426968f,-0.46815050871925312f,-0.52782532864173848f,\
+ 0.14402327100125287f, 0.48673726656350014f,-0.36542216583231485f,-0.05675799381585508f,\
+ -0.98972798714272159f}
+#define CIMAG_RESULT9 { 4.31011430080980062f,-0.43185186999958014f,-0.61788469590268758f, 2.02080753944191294f,\
+ -1.82700213292318292f,-0.72130831941965079f,-0.43263346921029644f,-0.61611460931125561f,\
+ 0.73968558488709069f }
+
+
+#define CREAL_RESULT10 { 4.7991688111796975f , 0.13431735180709442f, 0.69797375124916528f,-0.96094309976899528f,\
+ -1.299412169815219f , 0.31298504490405327f,-0.70524633213128674f, 0.73186521665562432f,\
+ -0.84695776029792746f,-0.69911818231641265f}
+#define CIMAG_RESULT10 { +3.8964297915808856f ,-0.73143162523007543f,-1.16550179795884423f,-0.28088284236709465f,\
+ +0.91311790128897607f,+0.14664673572406173f,-0.38825389263472715f,+0.70003588825710683f,\
+ -1.10050453393604197f,+0.32258157187768072f}
+
+#define CREAL_RESULT11 { 4.48273084452375770f,-0.38185469421558837f,-0.20352646397260507f, 0.93844897170676500f,\
+ -0.36107014581234886f, 1.63127126429331426f, 0.21051283071884830f, 0.41375037345506283f,\
+ -1.51895083986003510f, 0.07998126975880851f, 0.20154980941442344f}
+
+#define CIMAG_RESULT11 {+5.99735778197646141f,+0.89612320628808262f,-1.19950115725534112f,+0.16831729582097132f,\
+ -0.30180616479381106f,-1.1576712540107854f ,+0.14605414615044232f,+0.98186675096176135f,\
+ -1.81578488007792282f,+0.11882005651954808f,+0.46895552983498812f}
+
+#define CREAL_RESULT12 { 6.81198796723037958f,-0.94341279444120363f, 0.80833429094732012f, 0.51617261953651883f,\
+ -0.2952048802069408f , 2.17160345678053313f,-0.54953851085156202f,-0.00060138915045171f,\
+ 1.48723066647267177f,-0.96738335862755753f, 0.38783971037387632f,-0.35450152802901336f}
+
+#define CIMAG_RESULT12 {+5.08788532856851816f,-0.92793626853655098f,+1.98330386259771707f,+1.00984227284789085f,\
+ -0.76701015963174557f,-0.03923425866831987f,+0.00245377141982317f,-0.97965668697496155f,\
+ -0.43031801485501076f,-0.70842429809272289f,-0.77014751450337293f,-1.07858542356054099f}
+
+
+#define CREAL_RESULT13 { 5.95651050098240376f,-1.05002118208049122f,-0.62824400440218664f, 0.73670329745244079f,\
+ 1.01270235903781081f,-0.97652276217739442f,-0.80139420917945892f,-1.08927100387059594f,\
+ 1.10768757452252697f,-0.90416530058905542f, 0.19128270229571837f,-0.36935459470156029f,\
+ 0.61303325198820890f}
+
+#define CIMAG_RESULT13 {+5.38290618034079671f,-0.01795106539414900f,-1.0736822056133133f ,-0.38375436766279453f,\
+ +0.45177555081294796f,-0.42204321578379422f,+1.167268002300917f ,-0.8654330910349184f ,\
+ -1.80135467250416070f,+0.73358402770681042f,+0.92212767526074568f,-0.53962030646712056f,\
+ -0.12239971073931022f}
+
+#define CREAL_RESULT14 { 7.75120115978643298f,-0.78366539551591063f,-0.20265674140819168f, 0.04290246165533468f,\
+ 2.26072777524451896f, 0.41764276367067404f,-0.94725360360479638f, 0.59614222729578614f,\
+ 1.2655897771348088f , 1.49954927048727082f, 0.59161337187577756f, 1.32712418977692859f,\
+ -1.04078471420795249f,-0.48035642054451416f}
+
+
+#define CIMAG_RESULT14 {+5.86955844005569816f,+0.59116535878306964f,+1.10949301280070478f,-0.10194863149531888f,\
+ +0.33742089533324454f,+1.27136622217475770f,+0.66505772083419801f,-0.35660744598135352f,\
+ +0.55272403261244618f,+0.78239239747489764f,-0.76097885152655409f,+1.7013910918422144f ,\
+ -1.05520441290632339f,-0.32851304179021534f}
+
+#define CREAL_RESULT15 { 9.03908939706161618f, 0.83695739793685675f,-0.1247585940626968f , 0.73554494173292662f,\
+ 2.89255624599792061f,-0.60942096648213817f,-0.96289916352621108f,-2.01148115975842146f,\
+ 1.08671310762523987f, 1.10385593717105923f, 0.14097082301450437f, 0.77951939204949339f,\
+ -0.19682993144621974f, 1.09445436001472118f,-1.35379695139639411f}
+
+#define CIMAG_RESULT15 {+7.929235897026956f ,+0.93665405708769556f,-0.58867096407810116f,-0.08075001529554950f,\
+ +0.05154837779444588f,-1.64233407065738146f,+2.20857407200866884f,+0.92685932199933529f,\
+ -1.71222943015973872f,-0.79519673795720203f,-0.80828166087623532f,-0.07547063282874045f,\
+ +0.21930651464200918f,+1.00880777239444086f,-1.42196400314524918f}
+
+
+
+#define CREAL_RESULT16 { 7.31841186061501503f, 0.57213963313411265f,-0.54757095809921363f,-0.48628670926159856f,\
+ -1.24745626002550125f,-0.60260425121772254f,-0.09566750389725764f, 1.12013387649474438f,\
+ -0.52123307064175606f,-0.4866536676629296f , 1.98659065302356819f,-0.8626986211125984f ,\
+ -0.61915938556194305f,-0.27813937201980266f,-1.53103677171080510f,-0.01918993749322817f}
+#define CIMAG_RESULT16 { 6.47680679336190224f, 0.33111151130330035f,-0.19343861330849654f, 0.12474172265893407f,\
+ -1.0452539175748825f , 1.29632487527975693f, 1.87557979276701658f,-1.82623636350346352f,\
+ -1.86397336795926094f,-1.03154071610913434f,-0.48573205481665604f, 0.44539904220706855f,\
+ -0.74425477534532547f,-0.54299368721281471f, 0.37996440777257234f, 1.11249504536330601f}
+
+#define CREAL_RESULT32 { 15.3165711835026741f,-1.79021577127059173f,-1.66659611407065089f, 0.17525916470909797f,\
+ -1.16958628014871602f, 0.58684741669397522f, 0.03947542161511042f, 0.99740008842981942f,\
+ -0.46323241293430328f, 2.122539701124051f ,-1.52963914564883940f, 0.87990417229605744f,\
+ 0.58569127383151542f,-0.18198535589432135f, 0.26043384746900655f,-1.11204765363415392f,\
+ 0.35329844802618027f,-1.47568616310628631f,-2.03487116744967844f,-3.19495610958970166f,\
+ 0.81026376203844086f,-0.46366666776372734f,-1.63150209835186510f, 0.77334707088593369f,\
+ -0.35098156332969666f,-1.63498270669406387f, 0.67411467120679691f, 2.80538085483913147f,\
+ -1.62281507315555107f,-0.5600265995962992f ,-0.48984739061140237f, 1.75450689143393301f}
+
+
+
+#define CIMAG_RESULT32 { 15.509232945740223f ,-0.47962381296807621f, 0.21213951866464975f, 0.88442937061831350f,\
+ 1.52924554070524898f,-0.6313403060045536f ,-2.25908603874729419f,-1.3836292677373856f ,\
+ -1.18231281638145447f,-2.14767090006699668f, 1.5452016553381984f ,-3.15355126536920993f,\
+ 2.10199273301496747f, 0.67530605269461363f,-2.03603600735261558f, 1.2309547869577584f ,\
+ -1.9912955537438393f ,-1.9668221895811833f , 0.29575245179739662f, 1.34815224953105273f,\
+ 1.508921339902356f ,-0.40084285801706099f, 2.96716476331614754f, 1.08125713762201059f,\
+ -1.39964522421360016f,-1.30777696073860294f,-1.13169784714423916f,-2.00872755010475013f,\
+ 0.53915777133569487f,-2.45178696294021004f , 1.56509394479014063f, 1.5558426888499468f}
+
+static void cfftmaTest2 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN2;
+ float tImagIn [] = CIMAG_IN2 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT2 ;
+ float tImagResult [] = CIMAG_RESULT2 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS2));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS2 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS2) ;
+
+
+
+ cfftma ( in , ROW , COLS2 , 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*COLS2 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ creals (Result[i]) ,
+ cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])));
+
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+}
+
+static void cfftmaTest3 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN3;
+ float tImagIn [] = CIMAG_IN3 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT3;
+ float tImagResult [] = CIMAG_RESULT3 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS3));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS3 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS3) ;
+
+
+
+ cfftma ( in , ROW , COLS3 , 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*COLS3 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ creals (Result[i]) ,
+ cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])));
+
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+
+ free(out);
+ free(in);
+ free(Result);
+}
+
+
+static void cfftmaTest4 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN4;
+ float tImagIn [] = CIMAG_IN4 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT4 ;
+ float tImagResult [] = CIMAG_RESULT4 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS4));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS4 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS4) ;
+
+
+ cfftma ( in , ROW , COLS4 , 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*COLS4 ) ; 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 ,creals(out[i]) , cimags(out[i]), creals (Result[i]) , cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])));
+
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+
+static void cfftmaTest5 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN5;
+ float tImagIn [] = CIMAG_IN5 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT5;
+ float tImagResult [] = CIMAG_RESULT5 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS5));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS5 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS5) ;
+
+
+
+ cfftma ( in , ROW , COLS5 , 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*COLS5 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ creals (Result[i]) ,
+ cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])));
+
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+
+static void cfftmaTest6 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN6;
+ float tImagIn [] = CIMAG_IN6 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT6;
+ float tImagResult [] = CIMAG_RESULT6;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS6));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS6 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS6) ;
+
+
+
+ cfftma ( 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ creals (Result[i]) ,
+ cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])));
+
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+
+ free(out);
+ free(in);
+ free(Result);
+}
+
+
+static void cfftmaTest7 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN7;
+ float tImagIn [] = CIMAG_IN7 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT7;
+ float tImagResult [] = CIMAG_RESULT7;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS7));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS7 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS7) ;
+
+
+
+ cfftma ( in , ROW , COLS7 , 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*COLS7 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ creals (Result[i]) ,
+ cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])));
+
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+static void cfftmaTest8 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN8;
+ float tImagIn [] = CIMAG_IN8 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT8 ;
+ float tImagResult [] = CIMAG_RESULT8 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS8));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS8 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS8) ;
+
+
+ cfftma ( in , ROW , COLS8 , 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*COLS8 ) ; 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 ,creals(out[i]) , cimags(out[i]), creals (Result[i]) , cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])));
+
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+
+static void cfftmaTest9 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN9;
+ float tImagIn [] = CIMAG_IN9 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT9 ;
+ float tImagResult [] = CIMAG_RESULT9 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS9));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS9 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS9) ;
+
+
+ cfftma ( in , ROW , COLS9 , 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*COLS9 ) ; 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 ,creals(out[i]) , cimags(out[i]), creals (Result[i]) , cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])));
+
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+static void cfftmaTest10 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN10;
+ float tImagIn [] = CIMAG_IN10 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT10 ;
+ float tImagResult [] = CIMAG_RESULT10 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS10));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS10 );
+
+
+
+ cfftma ( in , ROW , COLS10 , 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*COLS10 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+ free(out);
+ free(in);
+}
+
+static void cfftmaTest11 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN11;
+ float tImagIn [] = CIMAG_IN11 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT11 ;
+ float tImagResult [] = CIMAG_RESULT11 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS11));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS11 );
+
+
+
+ cfftma ( in , ROW , COLS11 , 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*COLS11 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+ free(out);
+ free(in);
+}
+
+
+static void cfftmaTest12 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN12;
+ float tImagIn [] = CIMAG_IN12 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT12 ;
+ float tImagResult [] = CIMAG_RESULT12 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS12));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS12 );
+
+
+
+ cfftma ( in , ROW , COLS12 , 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*COLS12 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-5 ) ;
+
+ }
+
+ free(out);
+ free(in);
+}
+
+
+static void cfftmaTest13 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN13;
+ float tImagIn [] = CIMAG_IN13 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT13 ;
+ float tImagResult [] = CIMAG_RESULT13 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS13));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS13 );
+
+
+
+ cfftma ( in , ROW , COLS13 , 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*COLS13 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+ free(out);
+ free(in);
+}
+
+
+static void cfftmaTest14 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN14;
+ float tImagIn [] = CIMAG_IN14 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT14 ;
+ float tImagResult [] = CIMAG_RESULT14 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS14));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS14 );
+
+
+
+ cfftma ( in , ROW , COLS14 , 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*COLS14 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+ free(out);
+ free(in);
+}
+
+
+
+static void cfftmaTest15 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN15;
+ float tImagIn [] = CIMAG_IN15 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT15 ;
+ float tImagResult [] = CIMAG_RESULT15 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS15));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS15 );
+
+
+
+ cfftma ( in , ROW , COLS15 , 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*COLS15 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+ free(out);
+ free(in);
+}
+
+
+
+static void cfftmaTest16 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN16;
+ float tImagIn [] = CIMAG_IN16 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT16 ;
+ float tImagResult [] = CIMAG_RESULT16 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS16));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS16 );
+
+
+
+ cfftma ( in , ROW , COLS16 , 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*COLS16 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+ free(out);
+ free(in);
+}
+
+
+
+static void cfftmaTest32 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN32;
+ float tImagIn [] = CIMAG_IN32 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT32 ;
+ float tImagResult [] = CIMAG_RESULT32 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS32));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS32 );
+
+
+
+ cfftma ( in , ROW , COLS32 , 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*COLS32 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-5 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+ free(out);
+ free(in);
+}
+
+static int testFft(void) {
+
+ printf("\n>>>> FFT Tests\n");
+ printf("\t>>>> Matrix Float Realt Tests\n");
+ /*dfftmaTest();*/
+
+ printf("\n\n\n");
+
+ printf("\n\t>>>> Vector 2 Float Complex Tests\n");
+ cfftmaTest2();
+ printf("\n\t>>>> Vector 3 Float Complex Tests\n");
+ cfftmaTest3();
+ printf("\n\t>>>> Vector 4 Float Complex Tests\n");
+ cfftmaTest4();
+ printf("\n\t>>>> Vector 5 Float Complex Tests\n");
+ cfftmaTest5();
+ printf("\n\t>>>> Vector 6 Float Complex Tests\n");
+ cfftmaTest6();
+ printf("\n\t>>>> Vector 7 Float Complex Tests\n");
+ cfftmaTest7();
+ printf("\n\t>>>> Vector 8 Float Complex Tests\n");
+ cfftmaTest8();
+ printf("\n\t>>>> Vector 9 Float Complex Tests\n");
+ cfftmaTest9();
+ printf("\n\t>>>> Vector 10 Float Complex Tests\n");
+ cfftmaTest10();
+ printf("\n\t>>>> Vector 11 Float Complex Tests\n");
+ cfftmaTest11();
+ printf("\n\t>>>> Vector 12 Float Complex Tests\n");
+ cfftmaTest12();
+ printf("\n\t>>>> Vector 13 Float Complex Tests\n");
+ cfftmaTest13();
+ printf("\n\t>>>> Vector 14 Float Complex Tests\n");
+ cfftmaTest14();
+ printf("\n\t>>>> Vector 14 Float Complex Tests\n");
+ cfftmaTest15();
+ printf("\n\t>>>> Vector 16 Float Complex Tests\n");
+ cfftmaTest16();
+ printf("\n\t>>>> Vector 32 Float Complex Tests\n");
+ cfftmaTest32();
+ return 0;
+}
+
+
+
+int main(void) {
+ assert(testFft() == 0);
+ return 0;
+}
diff --git a/src/c/signalProcessing/fft/testMatFft.c b/src/c/signalProcessing/fft/testMatFft.c
new file mode 100644
index 0000000..8863162
--- /dev/null
+++ b/src/c/signalProcessing/fft/testMatFft.c
@@ -0,0 +1,297 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+#include <stdlib.h>
+#include <assert.h>
+#include <stdio.h>
+#include <math.h>
+#include "fft.h"
+
+#define test1 {0.2113249000000000099586,0.3303270999999999846253,0.8497451999999999783242,0.0683740000000000042180,\
+ 0.7560438999999999909463,0.6653810999999999475918,0.6857309999999999794440,0.5608486000000000304411,\
+ 0.0002211000000000000075,0.6283917999999999448590,0.8782164999999999555058,0.6623569000000000261963}
+
+#define test2 {0.2113249000000000099586,0.6857309999999999794440,\
+ 0.3303270999999999846253,0.5608486000000000304411,\
+ 0.8497451999999999783242,0.0002211000000000000075,\
+ 0.0683740000000000042180,0.6283917999999999448590,\
+ 0.7560438999999999909463,0.8782164999999999555058,\
+ 0.6653810999999999475918,0.6623569000000000261963}
+
+#define test3 {0.2113249000000000099586,0.7560438999999999909463,0.0002211000000000000075,\
+ 0.3303270999999999846253,0.6653810999999999475918,0.6283917999999999448590,\
+ 0.8497451999999999783242,0.6857309999999999794440,0.8782164999999999555058,\
+ 0.0683740000000000042180,0.5608486000000000304411,0.6623569000000000261963}
+
+#define test4 {0.2113249000000000099586,0.0683740000000000042180,0.6857309999999999794440,0.6283917999999999448590,\
+ 0.3303270999999999846253,0.7560438999999999909463,0.5608486000000000304411,0.8782164999999999555058,\
+ 0.8497451999999999783242,0.6653810999999999475918,0.0002211000000000000075,0.6623569000000000261963}
+
+#define test6 {0.2113249000000000099586,0.8497451999999999783242,0.7560438999999999909463,0.6857309999999999794440,0.0002211000000000000075,0.8782164999999999555058,\
+ 0.3303270999999999846253,0.0683740000000000042180,0.6653810999999999475918,0.5608486000000000304411,0.6283917999999999448590,0.6623569000000000261963}
+
+#define test9 {1,2,3,4,5,6,7,8,9}
+
+#define RRESULT1 {6.2969621000000000066166,-0.1908142591446193858662,0.0676336000000001824617,\
+-1.4461027999999997994962,-0.7577484999999999359943,0.2136987591446193046618,\
+0.4656031000000000474870,0.2136987591446193046618,-0.7577484999999999359943,\
+-1.4461027999999997994962,0.0676336000000001824617,-0.1908142591446193858662}
+
+#define IRESULT1 {0,-0.0438615735192828815059,-1.0572926567728160307524,0.3325204999999997745874,\
+0.3011445725036896448046,-1.3036713264807171519521,0,1.3036713264807171519521,\
+-0.3011445725036896448046,-0.3325204999999997745874,1.0572926567728160307524,\
+0.0438615735192828815059}
+
+#define RRESULT2 {6.2969621000000000066166,-0.5345696999999998144659,\
+0.0676336000000000714394,-0.3918127000000001247670,\
+-0.7577485000000003800835,-1.2843509999999995763176,\
+0.4656030999999999364647,1.0404605000000000103455,\
+-0.7577485000000003800835,-1.2843509999999995763176,\
+0.0676336000000000714394,-0.3918127000000001247670}
+
+#define IRESULT2 {0,0,\
+-1.05729265677281625280,0.6392575178288871784460,\
+0.3011445725036897003157,-1.043770536118125757952,\
+0,0,\
+-0.3011445725036897003157,1.043770536118125757952,\
+1.05729265677281625280,-0.6392575178288871784460}
+
+#define RRESULT3 {6.2969621000000000066166,-0.9588242499999999335358,-0.9588242499999999335358,\
+-1.4461027999999997994962,-0.3545214899631756733101,-0.1146366100368243767793,\
+0.4656031000000000474870,0.7607519500000001766438,0.7607519500000001766438,\
+-1.4461027999999997994962,-0.1146366100368243767793,-0.3545214899631756733101}
+
+#define IRESULT3 {0,0.4319893196725672623870,-0.4319893196725672623870,\
+0.3325204999999997745874,1.0479284784196345459151,-0.5945896784196345041806,\
+0,0.5437395057261036335206,-0.5437395057261036335206,\
+-0.3325204999999997745874,0.5945896784196345041806,-1.0479284784196345459151}
+
+#define RRESULT4 {6.2969621000000000066166,0.1445965000000000166835,-1.0205663000000000373291,\
+ 0.1445965000000000166835,\
+-0.7577485000000003800835,-0.6754837907274804376101,0.8107183000000001138474,\
+ -0.8923310092725194042629,\
+-0.7577485000000003800835,-0.8923310092725194042629,0.8107183000000001138474,\
+ -0.6754837907274804376101}
+
+#define IRESULT4 {0,-0.6791661999999999421718,0,0.6791661999999999421718,\
+0.3011445725036897003157,-1.4357905268456061520510,-0.2297677979542606663266,\
+ -0.4349033268456063971996,\
+-0.3011445725036897003157,0.4349033268456063971996,0.2297677979542606663266,\
+ 1.4357905268456061520510}
+
+#define RRESULT6 {6.2969621000000000066166,-0.5006002499999999688640,-0.4661336499999999549715,\
+ -1.113582300000000024909,-0.4661336499999999549715,-0.5006002499999999688640,\
+0.46560309999999915931,0.5234847499999999431708,-0.2239812499999997985611,\
+ -1.7786232999999995740836,-0.2239812499999997985611,0.5234847499999999431708}
+
+#define IRESULT6 {0,0.1475342691353691004785,-1.2256565689200087376776,0,1.2256565689200087376776,\
+ -0.1475342691353691004785,\
+0,1.112275483826065114457,-0.1327806603564972709464,0,0.1327806603564972709464,\
+ -1.112275483826065114457}
+
+#define RRESULT9 {45,-4.5,-4.5,-13.5,0,0,-13.5,0,0}
+
+#define IRESULT9 {0,2.598076211353316011810,- 2.598076211353316011810,7.7942286340599471472501,0,0,- 7.7942286340599471472501,0,0}
+
+static void dfftmaTest(void){
+ int i;
+
+ double in1[]=test1;
+ double in2[]=test2;
+ double in3[]=test3;
+ double in4[]=test4;
+ double in6[]=test6;
+ double in9[]=test9;
+
+ double resR1[]=RRESULT1;
+ double resR2[]=RRESULT2;
+ double resR3[]=RRESULT3;
+ double resR4[]=RRESULT4;
+ double resR6[]=RRESULT6;
+ double resR9[]=RRESULT9;
+
+ double out1[12], out2[12], out3[12], out4[12], out6[12], out9[9];
+
+
+ printf(" >>> Matrice 1*12 <<< \n");
+ dfftma(in1, 1, 12, out1);
+ for (i=0;i<12;i++){
+ printf("\t\n out : %e \t result : %e \t assert: %e",out1[i], resR1[i] ,(fabs(out1[i]-resR1[i]) / fabs(out1[i])) );
+ if (out1[i]>1e-16) assert( (fabs(out1[i]-resR1[i]) / fabs(out1[i])) < 1e-13);
+ else assert(1);
+ }
+
+ printf(" >>> Matrice 2*6 <<< \n");
+ dfftma(in2, 2, 6, out2);
+ for (i=0;i<12;i++){
+ printf("\n\t out : %e \t result : %e \t assert: %e\n",out2[i], resR2[i] ,(fabs(out2[i]-resR2[i]) / fabs(out2[i])) );
+ if (out2[i]>1e-16) assert( (fabs(out2[i]-resR2[i]) / fabs(out2[i])) < 1e-13);
+ else assert(1);
+ }
+
+
+ printf(" >>> Matrice 3*4 <<< \n");
+ dfftma(in3, 3, 4, out3);
+ for (i=0;i<12;i++){
+ if (out3[i]>1e-16) assert( (fabs(out3[i]-resR3[i]) / fabs(out3[i])) < 1e-13);
+ else assert(1);
+ }
+
+ printf(" >>> Matrice 4*3 <<< \n");
+ dfftma(in4, 4, 3, out4);
+ for (i=0;i<12;i++){
+ if (out4[i]>1e-16) assert( (fabs(out4[i]-resR4[i]) / fabs(out4[i])) < 1e-13);
+ else assert(1);
+ }
+
+ printf(" >>> Matrice 6*2 <<< \n");
+ dfftma(in6, 6, 2, out6);
+ for (i=0;i<12;i++){
+ if (out6[i]>1e-16) assert( (fabs(out6[i]-resR6[i]) / fabs(out6[i])) < 1e-13);
+ else assert(1);
+ }
+
+ printf(" >>> Matrice 3*3 <<< \n");
+ dfftma(in9, 3, 3, out9);
+ for (i=0;i<9;i++){
+ if (out9[i]>1e-16) assert( (fabs(out9[i]-resR9[i]) / fabs(out9[i])) < 1e-13);
+ else assert(1);
+ }
+
+
+}
+
+static void zfftmaTest(void){
+ int i;
+
+ double inR1[]=test1;
+ double inR2[]=test2;
+ double inR3[]=test3;
+ double inR4[]=test4;
+ double inR6[]=test6;
+ double inR9[]=test9;
+
+ double resR1[]=RRESULT1;
+ double resI1[]=IRESULT1;
+ double resR2[]=RRESULT2;
+ double resI2[]=IRESULT2;
+ double resR3[]=RRESULT3;
+ double resI3[]=IRESULT3;
+ double resR4[]=RRESULT4;
+ double resI4[]=IRESULT4;
+ double resR6[]=RRESULT6;
+ double resI6[]=IRESULT6;
+ double resR9[]=RRESULT9;
+ double resI9[]=IRESULT9;
+
+ doubleComplex *in1, *in2, *in3, *in4, *in6, *in9, out1[12], out2[12], out3[12], out4[12], out6[12], out9[12];
+
+ in1=(doubleComplex*)malloc((unsigned int)12*sizeof(doubleComplex));
+ in2=(doubleComplex*)malloc((unsigned int)12*sizeof(doubleComplex));
+ in3=(doubleComplex*)malloc((unsigned int)12*sizeof(doubleComplex));
+ in4=(doubleComplex*)malloc((unsigned int)12*sizeof(doubleComplex));
+ in6=(doubleComplex*)malloc((unsigned int)12*sizeof(doubleComplex));
+ in9=(doubleComplex*)malloc((unsigned int)9*sizeof(doubleComplex));
+
+
+
+ for (i=0;i<12;i++){
+ in1[i]=DoubleComplex(inR1[i],0);
+ in2[i]=DoubleComplex(inR2[i],0);
+ in3[i]=DoubleComplex(inR3[i],0);
+ in4[i]=DoubleComplex(inR4[i],0);
+ in6[i]=DoubleComplex(inR6[i],0);
+ }
+ for (i=0;i<9;i++){
+ in9[i]=DoubleComplex(inR9[i],0);
+
+ }
+
+ /* !!!!!!!!!!!!!!!!!!!!!!!
+ for the imaginary part, the assert is out + res instead of out - res
+ cause I export the transposate of the result matrix and the transposate change the sign
+ of the imaginary part.
+ And instead of change all the define, I only change the sign of the assert.*/
+ printf(" >>> Matrice 1*12 <<< \n");
+ zfftma(in1, 1, 12, out1);
+ for (i=0;i<12;i++){
+ if (zreals(out1[i])>1e-16) assert( (fabs(zreals(out1[i])-resR1[i]) / fabs(zreals(out1[i]))) < 1e-13);
+ else assert(1);
+ if (zimags(out1[i])>1e-16) assert( (fabs(zimags(out1[i])+resI1[i]) / fabs(zimags(out1[i]))) < 1e-13);
+ else assert(1);
+ }
+
+ printf(" >>> Matrice 2*6 <<< \n");
+ zfftma(in2, 2, 6, out2);
+ for (i=0;i<12;i++){
+ printf("\t\n outR : %e \t result : %e \t assert: %e",zreals(out2[i]), resR2[i] ,(fabs(zreals(out2[i])-resR2[i]) / fabs(zreals(out2[i]))) );
+ printf("\t\n outI : %e \t result : %e \t assert: %e",zimags(out2[i]), resI2[i] ,(fabs(zimags(out2[i])-resI2[i]) / fabs(zimags(out2[i]))) );
+ if (zreals(out2[i])>1e-16) assert( (fabs(zreals(out2[i])-resR2[i]) / fabs(zreals(out2[i]))) < 1e-13);
+ else assert(1);
+ if (zimags(out2[i])>2e-16) assert( (fabs(zimags(out2[i])+resI2[i]) / fabs(zimags(out2[i]))) < 1e-13 );
+ else assert(1);
+ }
+
+
+ printf(" >>> Matrice 3*4 <<< \n");
+ zfftma(in3, 3, 4, out3);
+ for (i=0;i<12;i++){
+ if (zreals(out3[i])>1e-16) assert( (fabs(zreals(out3[i])-resR3[i]) / fabs(zreals(out3[i]))) < 1e-13);
+ else assert(1);
+ if (zimags(out3[i])>1e-16) assert( (fabs(zimags(out3[i])+resI3[i]) / fabs(zimags(out3[i]))) < 1e-13);
+ else assert(1);
+ }
+
+ printf(" >>> Matrice 4*3 <<< \n");
+ zfftma(in4, 4, 3, out4);
+ for (i=0;i<12;i++){
+ if (zreals(out4[i])>1e-16) assert( (fabs(zreals(out4[i])-resR4[i]) / fabs(zreals(out4[i]))) < 1e-13);
+ else assert(1);
+ if (zimags(out4[i])>1e-16) assert( (fabs(zimags(out4[i])+resI4[i]) / fabs(zimags(out4[i]))) < 1e-13);
+ else assert(1);
+ }
+
+ printf(" >>> Matrice 6*2 <<< \n");
+ zfftma(in6, 6, 2, out6);
+ for (i=0;i<12;i++){
+ if (zreals(out6[i])>1e-16) assert( (fabs(zreals(out6[i])-resR6[i]) / fabs(zreals(out6[i]))) < 1e-13);
+ else assert(1);
+ if (zimags(out6[i])>1e-16) assert( (fabs(zimags(out6[i])+resI6[i]) / fabs(zimags(out6[i]))) < 1e-13);
+ else assert(1);
+ }
+
+ printf(" >>> Matrice 3*3 <<< \n");
+ zfftma(in9, 3, 3, out9);
+ for (i=0;i<9;i++){
+ if (zreals(out9[i])>1e-16) assert( (fabs(zreals(out9[i])-resR9[i]) / fabs(zreals(out9[i]))) < 1e-13);
+ else assert(1);
+
+ if (zimags(out9[i])>1e-16) assert( (fabs(zimags(out9[i])-resI9[i]) / fabs(zimags(out9[i]))) < 1e-13);
+ else assert(1);
+ }
+}
+
+
+
+static int testFft(void){
+ dfftmaTest();
+ zfftmaTest();
+ return 0;
+}
+
+
+int main(void) {
+ printf(">>> Fft Matrices Double Tests <<<\n");
+ assert(testFft() == 0);
+ return 0;
+}
+
diff --git a/src/c/signalProcessing/fft/test_DoubleFft/testDoubleFft.vcxproj b/src/c/signalProcessing/fft/test_DoubleFft/testDoubleFft.vcxproj
new file mode 100644
index 0000000..67ae054
--- /dev/null
+++ b/src/c/signalProcessing/fft/test_DoubleFft/testDoubleFft.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DBD206E6-F7F2-4C00-83F0-2AAAB90A6C72}</ProjectGuid>
+ <RootNamespace>testDoubleFft</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleFft.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/fft/test_DoubleFft/testDoubleFft.vcxproj.filters b/src/c/signalProcessing/fft/test_DoubleFft/testDoubleFft.vcxproj.filters
new file mode 100644
index 0000000..8824fe4
--- /dev/null
+++ b/src/c/signalProcessing/fft/test_DoubleFft/testDoubleFft.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleFft.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/fft/test_FloatFft/testFloatFft.vcxproj b/src/c/signalProcessing/fft/test_FloatFft/testFloatFft.vcxproj
new file mode 100644
index 0000000..ee576db
--- /dev/null
+++ b/src/c/signalProcessing/fft/test_FloatFft/testFloatFft.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EDE2F70A-E2A0-45B6-A9C7-E3E62409AF95}</ProjectGuid>
+ <RootNamespace>testFloatFft</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatFft.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/fft/test_FloatFft/testFloatFft.vcxproj.filters b/src/c/signalProcessing/fft/test_FloatFft/testFloatFft.vcxproj.filters
new file mode 100644
index 0000000..0d9cec9
--- /dev/null
+++ b/src/c/signalProcessing/fft/test_FloatFft/testFloatFft.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatFft.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/fft/test_MatFft/testMatFft.vcxproj b/src/c/signalProcessing/fft/test_MatFft/testMatFft.vcxproj
new file mode 100644
index 0000000..3f16af3
--- /dev/null
+++ b/src/c/signalProcessing/fft/test_MatFft/testMatFft.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{A7A46527-B5F9-4B92-9C46-2416E2432314}</ProjectGuid>
+ <RootNamespace>testMatFft</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testMatFft.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/fft/test_MatFft/testMatFft.vcxproj.filters b/src/c/signalProcessing/fft/test_MatFft/testMatFft.vcxproj.filters
new file mode 100644
index 0000000..503e5a9
--- /dev/null
+++ b/src/c/signalProcessing/fft/test_MatFft/testMatFft.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testMatFft.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/fft/zfftma.c b/src/c/signalProcessing/fft/zfftma.c
new file mode 100644
index 0000000..48616ea
--- /dev/null
+++ b/src/c/signalProcessing/fft/zfftma.c
@@ -0,0 +1,156 @@
+/*
+ * 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 FFT842 1
+#define DFFT2 0
+
+#include <stdlib.h>
+#include <math.h>
+#include "fft.h"
+#include "lapack.h"
+#include "fft_internal.h"
+
+void zfftma ( 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, (int) (log(size + 0.5) / log(2.0)));
+ if ( size == sizeTemp )
+ {
+ if ( size <= pow(2.0, 15.0))
+ {
+ fft842 ( inCopy , size , 0 );
+ choosenAlgo = FFT842 ;
+ }
+ else
+ {
+ dfft2 ( realIn , imagIn , 1 , size , 1 , isn , ierr );
+ }
+ }
+ else
+ {
+ dfft2 ( realIn , imagIn , 1 , size , 1 , isn , ierr );
+ }
+ }
+ else
+ {
+ rowsTemp = (int) pow(2.0, (int)(log(rows + 0.5) / log(2.0))) ;
+ colsTemp = (int) pow(2.0 ,(int)(log(cols + 0.5) / log(2.0))) ;
+
+ if ( rows == rowsTemp)
+ {
+ if ( rows <= pow(2.0, 15.0))
+ {
+ for ( i = 0 ; i < cols ; i++ )
+ {
+ fft842 ( &inCopy[ rows*i] , rows , 0);
+ /* stock new inCopy in realIn and imagIn
+ if the second call don't call fft842
+ ex : matrix 2*3 */
+ zimaga ( inCopy , size , imagIn) ;
+ zreala ( inCopy , size , realIn) ;
+ }
+ }
+ else
+ {
+ dfft2 ( realIn, imagIn ,cols , rows , 1 , isn , ierr);
+ /* stock new realIn and imagIn in inCopy
+ if the second call call fft842
+ ex : matrix 3*2 */
+ inCopy=DoubleComplexMatrix(realIn,imagIn,size);
+ }
+ }
+ else
+ {
+ dfft2 ( realIn, imagIn ,cols , rows , 1 , isn , ierr);
+ /* stock new realIn and imagIn in inCopy
+ if the second call call fft842
+ ex : matrix 3*2 */
+ 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 );
+
+ fft842( inTemp , cols , 0);
+ choosenAlgo = FFT842 ;
+ C2F(zcopy) ( &cols, inTemp , &increment, inCopy + i, &rows );
+
+ }
+ }
+ else
+ {
+ dfft2 ( realIn, imagIn, 1, cols, rows, isn, ierr);
+ }
+ }
+ else
+ {
+ dfft2 ( realIn, imagIn, 1, cols, rows, isn, ierr);
+ }
+
+ }
+
+
+
+ if ( choosenAlgo == FFT842 )
+ {
+ 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);
+
+}
diff --git a/src/c/signalProcessing/fftshift/Makefile.am b/src/c/signalProcessing/fftshift/Makefile.am
new file mode 100644
index 0000000..22ced90
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/Makefile.am
@@ -0,0 +1,68 @@
+##
+## 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
+##
+##
+
+
+
+
+libFftShift_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+
+instdir = $(top_builddir)/lib
+
+
+pkglib_LTLIBRARIES = libFftShift.la
+
+HEAD = ../includes/fftshift.h
+
+libFftShift_la_SOURCES = $(HEAD) \
+ sfftshifta.c \
+ dfftshifta.c \
+ cfftshifta.c \
+ zfftshifta.c \
+ srowfftshifta.c \
+ drowfftshifta.c \
+ crowfftshifta.c \
+ zrowfftshifta.c \
+ scolumnfftshifta.c \
+ dcolumnfftshifta.c \
+ ccolumnfftshifta.c \
+ zcolumnfftshifta.c
+
+
+###############
+#### Check ####
+###############
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ libFftShift.la
+
+
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+check_PROGRAMS = testFloatFftShift testDoubleFftShift
+
+TESTS = testFloatFftShift testDoubleFftShift
+
+testDoubleFftShift_SOURCES = testDoubleFftShift.c
+testDoubleFftShift_LDADD = $(check_LDADD)
+testDoubleFftShift_CFLAGS = $(check_INCLUDES)
+
+testFloatFftShift_SOURCES = testFloatFftShift.c
+testFloatFftShift_LDADD = $(check_LDADD)
+testFloatFftShift_CFLAGS = $(check_INCLUDES)
+
+
+
diff --git a/src/c/signalProcessing/fftshift/Makefile.in b/src/c/signalProcessing/fftshift/Makefile.in
new file mode 100644
index 0000000..5d85d3d
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/Makefile.in
@@ -0,0 +1,828 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+check_PROGRAMS = testFloatFftShift$(EXEEXT) \
+ testDoubleFftShift$(EXEEXT)
+TESTS = testFloatFftShift$(EXEEXT) testDoubleFftShift$(EXEEXT)
+subdir = src/c/signalProcessing/fftshift
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/includes/machine.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkglibdir)"
+LTLIBRARIES = $(pkglib_LTLIBRARIES)
+libFftShift_la_LIBADD =
+am__objects_1 =
+am_libFftShift_la_OBJECTS = $(am__objects_1) \
+ libFftShift_la-sfftshifta.lo libFftShift_la-dfftshifta.lo \
+ libFftShift_la-cfftshifta.lo libFftShift_la-zfftshifta.lo \
+ libFftShift_la-srowfftshifta.lo \
+ libFftShift_la-drowfftshifta.lo \
+ libFftShift_la-crowfftshifta.lo \
+ libFftShift_la-zrowfftshifta.lo \
+ libFftShift_la-scolumnfftshifta.lo \
+ libFftShift_la-dcolumnfftshifta.lo \
+ libFftShift_la-ccolumnfftshifta.lo \
+ libFftShift_la-zcolumnfftshifta.lo
+libFftShift_la_OBJECTS = $(am_libFftShift_la_OBJECTS)
+libFftShift_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libFftShift_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testDoubleFftShift_OBJECTS = \
+ testDoubleFftShift-testDoubleFftShift.$(OBJEXT)
+testDoubleFftShift_OBJECTS = $(am_testDoubleFftShift_OBJECTS)
+testDoubleFftShift_DEPENDENCIES = $(check_LDADD)
+testDoubleFftShift_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(testDoubleFftShift_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_testFloatFftShift_OBJECTS = \
+ testFloatFftShift-testFloatFftShift.$(OBJEXT)
+testFloatFftShift_OBJECTS = $(am_testFloatFftShift_OBJECTS)
+testFloatFftShift_DEPENDENCIES = $(check_LDADD)
+testFloatFftShift_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(testFloatFftShift_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+ -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libFftShift_la_SOURCES) $(testDoubleFftShift_SOURCES) \
+ $(testFloatFftShift_SOURCES)
+DIST_SOURCES = $(libFftShift_la_SOURCES) $(testDoubleFftShift_SOURCES) \
+ $(testFloatFftShift_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBMATH = @LIBMATH@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libFftShift_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+instdir = $(top_builddir)/lib
+pkglib_LTLIBRARIES = libFftShift.la
+HEAD = ../includes/fftshift.h
+libFftShift_la_SOURCES = $(HEAD) \
+ sfftshifta.c \
+ dfftshifta.c \
+ cfftshifta.c \
+ zfftshifta.c \
+ srowfftshifta.c \
+ drowfftshifta.c \
+ crowfftshifta.c \
+ zrowfftshifta.c \
+ scolumnfftshifta.c \
+ dcolumnfftshifta.c \
+ ccolumnfftshifta.c \
+ zcolumnfftshifta.c
+
+
+###############
+#### Check ####
+###############
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ libFftShift.la
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+testDoubleFftShift_SOURCES = testDoubleFftShift.c
+testDoubleFftShift_LDADD = $(check_LDADD)
+testDoubleFftShift_CFLAGS = $(check_INCLUDES)
+testFloatFftShift_SOURCES = testFloatFftShift.c
+testFloatFftShift_LDADD = $(check_LDADD)
+testFloatFftShift_CFLAGS = $(check_INCLUDES)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/c/signalProcessing/fftshift/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/c/signalProcessing/fftshift/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ }
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libFftShift.la: $(libFftShift_la_OBJECTS) $(libFftShift_la_DEPENDENCIES)
+ $(libFftShift_la_LINK) -rpath $(pkglibdir) $(libFftShift_la_OBJECTS) $(libFftShift_la_LIBADD) $(LIBS)
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+testDoubleFftShift$(EXEEXT): $(testDoubleFftShift_OBJECTS) $(testDoubleFftShift_DEPENDENCIES)
+ @rm -f testDoubleFftShift$(EXEEXT)
+ $(testDoubleFftShift_LINK) $(testDoubleFftShift_OBJECTS) $(testDoubleFftShift_LDADD) $(LIBS)
+testFloatFftShift$(EXEEXT): $(testFloatFftShift_OBJECTS) $(testFloatFftShift_DEPENDENCIES)
+ @rm -f testFloatFftShift$(EXEEXT)
+ $(testFloatFftShift_LINK) $(testFloatFftShift_OBJECTS) $(testFloatFftShift_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFftShift_la-ccolumnfftshifta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFftShift_la-cfftshifta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFftShift_la-crowfftshifta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFftShift_la-dcolumnfftshifta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFftShift_la-dfftshifta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFftShift_la-drowfftshifta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFftShift_la-scolumnfftshifta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFftShift_la-sfftshifta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFftShift_la-srowfftshifta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFftShift_la-zcolumnfftshifta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFftShift_la-zfftshifta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libFftShift_la-zrowfftshifta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDoubleFftShift-testDoubleFftShift.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFloatFftShift-testFloatFftShift.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+libFftShift_la-sfftshifta.lo: sfftshifta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -MT libFftShift_la-sfftshifta.lo -MD -MP -MF $(DEPDIR)/libFftShift_la-sfftshifta.Tpo -c -o libFftShift_la-sfftshifta.lo `test -f 'sfftshifta.c' || echo '$(srcdir)/'`sfftshifta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFftShift_la-sfftshifta.Tpo $(DEPDIR)/libFftShift_la-sfftshifta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sfftshifta.c' object='libFftShift_la-sfftshifta.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -c -o libFftShift_la-sfftshifta.lo `test -f 'sfftshifta.c' || echo '$(srcdir)/'`sfftshifta.c
+
+libFftShift_la-dfftshifta.lo: dfftshifta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -MT libFftShift_la-dfftshifta.lo -MD -MP -MF $(DEPDIR)/libFftShift_la-dfftshifta.Tpo -c -o libFftShift_la-dfftshifta.lo `test -f 'dfftshifta.c' || echo '$(srcdir)/'`dfftshifta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFftShift_la-dfftshifta.Tpo $(DEPDIR)/libFftShift_la-dfftshifta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dfftshifta.c' object='libFftShift_la-dfftshifta.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -c -o libFftShift_la-dfftshifta.lo `test -f 'dfftshifta.c' || echo '$(srcdir)/'`dfftshifta.c
+
+libFftShift_la-cfftshifta.lo: cfftshifta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -MT libFftShift_la-cfftshifta.lo -MD -MP -MF $(DEPDIR)/libFftShift_la-cfftshifta.Tpo -c -o libFftShift_la-cfftshifta.lo `test -f 'cfftshifta.c' || echo '$(srcdir)/'`cfftshifta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFftShift_la-cfftshifta.Tpo $(DEPDIR)/libFftShift_la-cfftshifta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cfftshifta.c' object='libFftShift_la-cfftshifta.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -c -o libFftShift_la-cfftshifta.lo `test -f 'cfftshifta.c' || echo '$(srcdir)/'`cfftshifta.c
+
+libFftShift_la-zfftshifta.lo: zfftshifta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -MT libFftShift_la-zfftshifta.lo -MD -MP -MF $(DEPDIR)/libFftShift_la-zfftshifta.Tpo -c -o libFftShift_la-zfftshifta.lo `test -f 'zfftshifta.c' || echo '$(srcdir)/'`zfftshifta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFftShift_la-zfftshifta.Tpo $(DEPDIR)/libFftShift_la-zfftshifta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zfftshifta.c' object='libFftShift_la-zfftshifta.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -c -o libFftShift_la-zfftshifta.lo `test -f 'zfftshifta.c' || echo '$(srcdir)/'`zfftshifta.c
+
+libFftShift_la-srowfftshifta.lo: srowfftshifta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -MT libFftShift_la-srowfftshifta.lo -MD -MP -MF $(DEPDIR)/libFftShift_la-srowfftshifta.Tpo -c -o libFftShift_la-srowfftshifta.lo `test -f 'srowfftshifta.c' || echo '$(srcdir)/'`srowfftshifta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFftShift_la-srowfftshifta.Tpo $(DEPDIR)/libFftShift_la-srowfftshifta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='srowfftshifta.c' object='libFftShift_la-srowfftshifta.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -c -o libFftShift_la-srowfftshifta.lo `test -f 'srowfftshifta.c' || echo '$(srcdir)/'`srowfftshifta.c
+
+libFftShift_la-drowfftshifta.lo: drowfftshifta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -MT libFftShift_la-drowfftshifta.lo -MD -MP -MF $(DEPDIR)/libFftShift_la-drowfftshifta.Tpo -c -o libFftShift_la-drowfftshifta.lo `test -f 'drowfftshifta.c' || echo '$(srcdir)/'`drowfftshifta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFftShift_la-drowfftshifta.Tpo $(DEPDIR)/libFftShift_la-drowfftshifta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='drowfftshifta.c' object='libFftShift_la-drowfftshifta.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -c -o libFftShift_la-drowfftshifta.lo `test -f 'drowfftshifta.c' || echo '$(srcdir)/'`drowfftshifta.c
+
+libFftShift_la-crowfftshifta.lo: crowfftshifta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -MT libFftShift_la-crowfftshifta.lo -MD -MP -MF $(DEPDIR)/libFftShift_la-crowfftshifta.Tpo -c -o libFftShift_la-crowfftshifta.lo `test -f 'crowfftshifta.c' || echo '$(srcdir)/'`crowfftshifta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFftShift_la-crowfftshifta.Tpo $(DEPDIR)/libFftShift_la-crowfftshifta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='crowfftshifta.c' object='libFftShift_la-crowfftshifta.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -c -o libFftShift_la-crowfftshifta.lo `test -f 'crowfftshifta.c' || echo '$(srcdir)/'`crowfftshifta.c
+
+libFftShift_la-zrowfftshifta.lo: zrowfftshifta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -MT libFftShift_la-zrowfftshifta.lo -MD -MP -MF $(DEPDIR)/libFftShift_la-zrowfftshifta.Tpo -c -o libFftShift_la-zrowfftshifta.lo `test -f 'zrowfftshifta.c' || echo '$(srcdir)/'`zrowfftshifta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFftShift_la-zrowfftshifta.Tpo $(DEPDIR)/libFftShift_la-zrowfftshifta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zrowfftshifta.c' object='libFftShift_la-zrowfftshifta.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -c -o libFftShift_la-zrowfftshifta.lo `test -f 'zrowfftshifta.c' || echo '$(srcdir)/'`zrowfftshifta.c
+
+libFftShift_la-scolumnfftshifta.lo: scolumnfftshifta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -MT libFftShift_la-scolumnfftshifta.lo -MD -MP -MF $(DEPDIR)/libFftShift_la-scolumnfftshifta.Tpo -c -o libFftShift_la-scolumnfftshifta.lo `test -f 'scolumnfftshifta.c' || echo '$(srcdir)/'`scolumnfftshifta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFftShift_la-scolumnfftshifta.Tpo $(DEPDIR)/libFftShift_la-scolumnfftshifta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='scolumnfftshifta.c' object='libFftShift_la-scolumnfftshifta.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -c -o libFftShift_la-scolumnfftshifta.lo `test -f 'scolumnfftshifta.c' || echo '$(srcdir)/'`scolumnfftshifta.c
+
+libFftShift_la-dcolumnfftshifta.lo: dcolumnfftshifta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -MT libFftShift_la-dcolumnfftshifta.lo -MD -MP -MF $(DEPDIR)/libFftShift_la-dcolumnfftshifta.Tpo -c -o libFftShift_la-dcolumnfftshifta.lo `test -f 'dcolumnfftshifta.c' || echo '$(srcdir)/'`dcolumnfftshifta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFftShift_la-dcolumnfftshifta.Tpo $(DEPDIR)/libFftShift_la-dcolumnfftshifta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dcolumnfftshifta.c' object='libFftShift_la-dcolumnfftshifta.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -c -o libFftShift_la-dcolumnfftshifta.lo `test -f 'dcolumnfftshifta.c' || echo '$(srcdir)/'`dcolumnfftshifta.c
+
+libFftShift_la-ccolumnfftshifta.lo: ccolumnfftshifta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -MT libFftShift_la-ccolumnfftshifta.lo -MD -MP -MF $(DEPDIR)/libFftShift_la-ccolumnfftshifta.Tpo -c -o libFftShift_la-ccolumnfftshifta.lo `test -f 'ccolumnfftshifta.c' || echo '$(srcdir)/'`ccolumnfftshifta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFftShift_la-ccolumnfftshifta.Tpo $(DEPDIR)/libFftShift_la-ccolumnfftshifta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ccolumnfftshifta.c' object='libFftShift_la-ccolumnfftshifta.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -c -o libFftShift_la-ccolumnfftshifta.lo `test -f 'ccolumnfftshifta.c' || echo '$(srcdir)/'`ccolumnfftshifta.c
+
+libFftShift_la-zcolumnfftshifta.lo: zcolumnfftshifta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -MT libFftShift_la-zcolumnfftshifta.lo -MD -MP -MF $(DEPDIR)/libFftShift_la-zcolumnfftshifta.Tpo -c -o libFftShift_la-zcolumnfftshifta.lo `test -f 'zcolumnfftshifta.c' || echo '$(srcdir)/'`zcolumnfftshifta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libFftShift_la-zcolumnfftshifta.Tpo $(DEPDIR)/libFftShift_la-zcolumnfftshifta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zcolumnfftshifta.c' object='libFftShift_la-zcolumnfftshifta.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libFftShift_la_CFLAGS) $(CFLAGS) -c -o libFftShift_la-zcolumnfftshifta.lo `test -f 'zcolumnfftshifta.c' || echo '$(srcdir)/'`zcolumnfftshifta.c
+
+testDoubleFftShift-testDoubleFftShift.o: testDoubleFftShift.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleFftShift_CFLAGS) $(CFLAGS) -MT testDoubleFftShift-testDoubleFftShift.o -MD -MP -MF $(DEPDIR)/testDoubleFftShift-testDoubleFftShift.Tpo -c -o testDoubleFftShift-testDoubleFftShift.o `test -f 'testDoubleFftShift.c' || echo '$(srcdir)/'`testDoubleFftShift.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleFftShift-testDoubleFftShift.Tpo $(DEPDIR)/testDoubleFftShift-testDoubleFftShift.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleFftShift.c' object='testDoubleFftShift-testDoubleFftShift.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleFftShift_CFLAGS) $(CFLAGS) -c -o testDoubleFftShift-testDoubleFftShift.o `test -f 'testDoubleFftShift.c' || echo '$(srcdir)/'`testDoubleFftShift.c
+
+testDoubleFftShift-testDoubleFftShift.obj: testDoubleFftShift.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleFftShift_CFLAGS) $(CFLAGS) -MT testDoubleFftShift-testDoubleFftShift.obj -MD -MP -MF $(DEPDIR)/testDoubleFftShift-testDoubleFftShift.Tpo -c -o testDoubleFftShift-testDoubleFftShift.obj `if test -f 'testDoubleFftShift.c'; then $(CYGPATH_W) 'testDoubleFftShift.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleFftShift.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleFftShift-testDoubleFftShift.Tpo $(DEPDIR)/testDoubleFftShift-testDoubleFftShift.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleFftShift.c' object='testDoubleFftShift-testDoubleFftShift.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleFftShift_CFLAGS) $(CFLAGS) -c -o testDoubleFftShift-testDoubleFftShift.obj `if test -f 'testDoubleFftShift.c'; then $(CYGPATH_W) 'testDoubleFftShift.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleFftShift.c'; fi`
+
+testFloatFftShift-testFloatFftShift.o: testFloatFftShift.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatFftShift_CFLAGS) $(CFLAGS) -MT testFloatFftShift-testFloatFftShift.o -MD -MP -MF $(DEPDIR)/testFloatFftShift-testFloatFftShift.Tpo -c -o testFloatFftShift-testFloatFftShift.o `test -f 'testFloatFftShift.c' || echo '$(srcdir)/'`testFloatFftShift.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatFftShift-testFloatFftShift.Tpo $(DEPDIR)/testFloatFftShift-testFloatFftShift.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatFftShift.c' object='testFloatFftShift-testFloatFftShift.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatFftShift_CFLAGS) $(CFLAGS) -c -o testFloatFftShift-testFloatFftShift.o `test -f 'testFloatFftShift.c' || echo '$(srcdir)/'`testFloatFftShift.c
+
+testFloatFftShift-testFloatFftShift.obj: testFloatFftShift.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatFftShift_CFLAGS) $(CFLAGS) -MT testFloatFftShift-testFloatFftShift.obj -MD -MP -MF $(DEPDIR)/testFloatFftShift-testFloatFftShift.Tpo -c -o testFloatFftShift-testFloatFftShift.obj `if test -f 'testFloatFftShift.c'; then $(CYGPATH_W) 'testFloatFftShift.c'; else $(CYGPATH_W) '$(srcdir)/testFloatFftShift.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatFftShift-testFloatFftShift.Tpo $(DEPDIR)/testFloatFftShift-testFloatFftShift.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatFftShift.c' object='testFloatFftShift-testFloatFftShift.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatFftShift_CFLAGS) $(CFLAGS) -c -o testFloatFftShift-testFloatFftShift.obj `if test -f 'testFloatFftShift.c'; then $(CYGPATH_W) 'testFloatFftShift.c'; else $(CYGPATH_W) '$(srcdir)/testFloatFftShift.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(pkglibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pkglibLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pkglibLTLIBRARIES
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-pkglibLTLIBRARIES install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-pkglibLTLIBRARIES
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/c/signalProcessing/fftshift/ccolumnfftshifta.c b/src/c/signalProcessing/fftshift/ccolumnfftshifta.c
new file mode 100644
index 0000000..a388509
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/ccolumnfftshifta.c
@@ -0,0 +1,48 @@
+/*
+ * 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 "fftshift.h"
+
+static void Pair(floatComplex* in,int rows,int columns,floatComplex* out){
+ int i=0,j=0;
+
+
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[i+((j+columns/2)%columns)*rows];
+}
+
+
+static void Odd(floatComplex* in,int rows,int columns,floatComplex* out){
+ int i=0,j=0;
+ /*
+ same as Pair with some change in the indice
+ */
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[i+((j+(columns+1)/2)%columns)*rows];
+}
+
+
+
+
+
+
+void ccolumnfftshifta(floatComplex* in,int rows,int columns,floatComplex* out){
+ switch(columns%2){
+ case 0 : Pair(in,rows,columns,out); break;
+ case 1 : Odd(in,rows,columns,out); break;
+ default : break;
+ }
+}
+
diff --git a/src/c/signalProcessing/fftshift/cfftshifta.c b/src/c/signalProcessing/fftshift/cfftshifta.c
new file mode 100644
index 0000000..9297ca3
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/cfftshifta.c
@@ -0,0 +1,26 @@
+/*
+ * 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 "fftshift.h"
+
+void cfftshifta(floatComplex* in,int rows,int columns,floatComplex* out){
+ floatComplex* temp;
+
+ /*FIXME : malloc here*/
+ temp= (floatComplex *) malloc((unsigned int)(rows*columns)*sizeof(floatComplex));
+
+ crowfftshifta(in,rows,columns,temp);
+ ccolumnfftshifta(temp,rows,columns,out);
+}
+
+
diff --git a/src/c/signalProcessing/fftshift/crowfftshifta.c b/src/c/signalProcessing/fftshift/crowfftshifta.c
new file mode 100644
index 0000000..99b807e
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/crowfftshifta.c
@@ -0,0 +1,48 @@
+/*
+ * 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 "fftshift.h"
+
+static void Pair(floatComplex* in,int rows,int columns,floatComplex* out){
+ int i=0,j=0;
+
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[j*rows+((rows/2)+i)%rows];
+}
+
+
+static void Odd(floatComplex* in,int rows,int columns,floatComplex* out){
+ int i=0,j=0;
+
+ /*
+ same as Pair with some change in the indice
+ */
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[j*rows+(((rows+1)/2)+i)%rows];
+}
+
+
+
+
+
+
+void crowfftshifta(floatComplex* in,int rows,int columns,floatComplex* out){
+ switch(rows%2){
+ case 0 : Pair(in,rows,columns,out); break;
+ case 1 : Odd(in,rows,columns,out); break;
+ default : break;
+ }
+}
+
diff --git a/src/c/signalProcessing/fftshift/dcolumnfftshifta.c b/src/c/signalProcessing/fftshift/dcolumnfftshifta.c
new file mode 100644
index 0000000..a098a53
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/dcolumnfftshifta.c
@@ -0,0 +1,45 @@
+/*
+ * 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 "fftshift.h"
+
+static void Pair(double* in,int rows,int columns,double* out){
+ int i=0,j=0;
+
+
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[i+((j+columns/2)%columns)*rows];
+}
+
+
+static void Odd(double* in,int rows,int columns,double* out){
+ int i=0,j=0;
+ /*
+ same as Pair with some change in the indice
+ */
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[i+((j+(columns+1)/2)%columns)*rows];
+}
+
+
+
+void dcolumnfftshifta(double* in,int rows,int columns,double* out){
+ switch(columns%2){
+ case 0 : Pair(in,rows,columns,out); break;
+ case 1 : Odd(in,rows,columns,out); break;
+ default : break;
+ }
+}
+
diff --git a/src/c/signalProcessing/fftshift/dfftshifta.c b/src/c/signalProcessing/fftshift/dfftshifta.c
new file mode 100644
index 0000000..ffab173
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/dfftshifta.c
@@ -0,0 +1,26 @@
+/*
+ * 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 "fftshift.h"
+
+void dfftshifta(double* in,int rows,int columns,double* out){
+ double* temp;
+
+ /*FIXME : malloc here*/
+ temp= (double *) malloc((unsigned int)(rows*columns)*sizeof(double));
+
+ drowfftshifta(in,rows,columns,temp);
+ dcolumnfftshifta(temp,rows,columns,out);
+}
+
+
diff --git a/src/c/signalProcessing/fftshift/drowfftshifta.c b/src/c/signalProcessing/fftshift/drowfftshifta.c
new file mode 100644
index 0000000..522c828
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/drowfftshifta.c
@@ -0,0 +1,46 @@
+/*
+ * 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 "fftshift.h"
+
+static void Pair(double* in,int rows,int columns,double* out){
+ int i=0,j=0;
+
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[j*rows+((rows/2)+i)%rows];
+}
+
+
+static void Odd(double* in,int rows,int columns,double* out){
+ int i=0,j=0;
+
+ /*
+ same as Pair with some change in the indice
+ */
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[j*rows+(((rows+1)/2)+i)%rows];
+}
+
+
+
+
+void drowfftshifta(double* in,int rows,int columns,double* out){
+ switch(rows%2){
+ case 0 : Pair(in,rows,columns,out); break;
+ case 1 : Odd(in,rows,columns,out); break;
+ default : break;
+ }
+}
+
diff --git a/src/c/signalProcessing/fftshift/scolumnfftshifta.c b/src/c/signalProcessing/fftshift/scolumnfftshifta.c
new file mode 100644
index 0000000..f455d05
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/scolumnfftshifta.c
@@ -0,0 +1,49 @@
+/*
+ * 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 "fftshift.h"
+
+static void Pair(float* in,int rows,int columns,float* out){
+ int i=0,j=0;
+
+
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[i+((j+columns/2)%columns)*rows];
+}
+
+
+static void Odd(float* in,int rows,int columns,float* out){
+ int i=0,j=0;
+ /*
+ same as Pair with some change in the indice
+ */
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[i+((j+(columns+1)/2)%columns)*rows];
+}
+
+
+
+
+
+
+
+void scolumnfftshifta(float* in,int rows,int columns,float* out){
+ switch(columns%2){
+ case 0 : Pair(in,rows,columns,out); break;
+ case 1 : Odd(in,rows,columns,out); break;
+ default : break;
+ }
+}
+
diff --git a/src/c/signalProcessing/fftshift/sfftshifta.c b/src/c/signalProcessing/fftshift/sfftshifta.c
new file mode 100644
index 0000000..a53734a
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/sfftshifta.c
@@ -0,0 +1,26 @@
+/*
+ * 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 "fftshift.h"
+
+void sfftshifta(float* in,int rows,int columns,float* out){
+ float* temp;
+
+ /*FIXME : malloc here*/
+ temp = (float *) malloc((unsigned int)(rows*columns)*sizeof(float));
+
+ srowfftshifta(in,rows,columns,temp);
+ scolumnfftshifta(temp,rows,columns,out);
+}
+
+
diff --git a/src/c/signalProcessing/fftshift/srowfftshifta.c b/src/c/signalProcessing/fftshift/srowfftshifta.c
new file mode 100644
index 0000000..b68c29c
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/srowfftshifta.c
@@ -0,0 +1,48 @@
+/*
+ * 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 "fftshift.h"
+
+static void Pair(float* in,int rows,int columns,float* out){
+ int i=0,j=0;
+
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[j*rows+((rows/2)+i)%rows];
+}
+
+
+static void Odd(float* in,int rows,int columns,float* out){
+ int i=0,j=0;
+
+ /*
+ same as Pair with some change in the indice
+ */
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[j*rows+(((rows+1)/2)+i)%rows];
+}
+
+
+
+
+
+
+void srowfftshifta(float* in,int rows,int columns,float* out){
+ switch(rows%2){
+ case 0 : Pair(in,rows,columns,out); break;
+ case 1 : Odd(in,rows,columns,out); break;
+ default : break;
+ }
+}
+
diff --git a/src/c/signalProcessing/fftshift/testDoubleFftShift.c b/src/c/signalProcessing/fftshift/testDoubleFftShift.c
new file mode 100644
index 0000000..e5d9452
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/testDoubleFftShift.c
@@ -0,0 +1,162 @@
+/*
+ * 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 "fftshift.h"
+#include <assert.h>
+#include <stdio.h>
+
+#define SOURCE {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,\
+ 21,22,23,24,25,26,27,28,29,30}
+
+
+static void drowfftshiftaTest(void){
+ int i=0;
+
+ double in[]=SOURCE;
+ double result5_6[30]={4,5,1,2,3,9,10,6,7,8,14,15,11,12,13,19,20,16,17,18,24,25,21,22,23,29,30,26,27,28};
+ double result6_5[30]={4,5,6,1,2,3,10,11,12,7,8,9,16,17,18,13,14,15,22,23,24,19,20,21,28,29,30,25,26,27};
+ double out[30];
+
+ drowfftshifta(in,5,6,out);
+ for (i=0;i<30;i++) assert( out[i]-result5_6[i]==0);
+
+ drowfftshifta(in,6,5,out);
+ for (i=0;i<30;i++) assert( out[i]-result6_5[i]==0);
+
+}
+
+static void zrowfftshiftaTest(void){
+ int i=0;
+
+ double inR[]=SOURCE;
+ double result5_6[30]={4,5,1,2,3,9,10,6,7,8,14,15,11,12,13,19,20,16,17,18,24,25,21,22,23,29,30,26,27,28};
+ double result6_5[30]={4,5,6,1,2,3,10,11,12,7,8,9,16,17,18,13,14,15,22,23,24,19,20,21,28,29,30,25,26,27};
+ doubleComplex out[30];
+ double ZEROS[30]={0};
+ doubleComplex *in;
+
+ in=DoubleComplexMatrix(inR,ZEROS,30);
+
+ zrowfftshifta(in,5,6,out);
+ for (i=0;i<30;i++) {
+ assert( zreals(out[i])-result5_6[i]==0);
+ assert( zimags(out[i])==0);
+ }
+
+ zrowfftshifta(in,6,5,out);
+ for (i=0;i<30;i++) {
+ assert( zreals(out[i])-result6_5[i]==0);
+ assert( zimags(out[i])==0);
+ }
+}
+
+
+static void dcolumnfftshiftaTest(void){
+ int i=0;
+
+ double in[]=SOURCE;
+ double result5_6[30]={16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+ double result6_5[30]={19,20,21,22,23,24,25,26,27,28,29,30,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18};
+ double out[30];
+
+ dcolumnfftshifta(in,5,6,out);
+ for (i=0;i<30;i++) assert( out[i]-result5_6[i]==0);
+
+ dcolumnfftshifta(in,6,5,out);
+ for (i=0;i<30;i++) assert( out[i]-result6_5[i]==0);
+
+}
+
+static void zcolumnfftshiftaTest(void){
+ int i=0;
+
+ double inR[]=SOURCE;
+ double result5_6[30]={16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+ double result6_5[30]={19,20,21,22,23,24,25,26,27,28,29,30,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18};
+ doubleComplex out[30];
+ double ZEROS[30]={0};
+ doubleComplex *in;
+
+ in=DoubleComplexMatrix(inR,ZEROS,30);
+
+ zcolumnfftshifta(in,5,6,out);
+ for (i=0;i<30;i++) {
+ assert( zreals(out[i])-result5_6[i]==0);
+ assert( zimags(out[i])==0);
+ }
+
+ zcolumnfftshifta(in,6,5,out);
+ for (i=0;i<30;i++) {
+ assert( zreals(out[i])-result6_5[i]==0);
+ assert( zimags(out[i])==0);
+ }
+
+}
+
+static void dfttshiftaTest(void){
+ int i=0;
+
+ double in[]=SOURCE;
+ double result5_6[30]={19,20,16,17,18,24,25,21,22,23,29,30,26,27,28,4,5,1,2,3,9,10,6,7,8,14,15,11,12,13};
+ double result6_5[30]={22,23,24,19,20,21,28,29,30,25,26,27,4,5,6,1,2,3,10,11,12,7,8,9,16,17,18,13,14,15};
+ double out[30];
+
+ dfftshifta(in,5,6,out);
+ for (i=0;i<30;i++) assert( out[i]-result5_6[i]==0);
+
+ dfftshifta(in,6,5,out);
+ for (i=0;i<30;i++) assert( out[i]-result6_5[i]==0);
+
+}
+
+static void zfftshiftaTest(void){
+ int i=0;
+
+ double inR[]=SOURCE;
+ double result5_6[30]={19,20,16,17,18,24,25,21,22,23,29,30,26,27,28,4,5,1,2,3,9,10,6,7,8,14,15,11,12,13};
+ double result6_5[30]={22,23,24,19,20,21,28,29,30,25,26,27,4,5,6,1,2,3,10,11,12,7,8,9,16,17,18,13,14,15};
+ doubleComplex out[30];
+ double ZEROS[30]={0};
+ doubleComplex *in;
+
+ in=DoubleComplexMatrix(inR,ZEROS,30);
+
+ zfftshifta(in,5,6,out);
+ for (i=0;i<30;i++) {
+ assert( zreals(out[i])-result5_6[i]==0);
+ assert( zimags(out[i])==0);
+ }
+
+ zfftshifta(in,6,5,out);
+ for (i=0;i<30;i++) {
+ assert( zreals(out[i])-result6_5[i]==0);
+ assert( zimags(out[i])==0);
+ }
+
+}
+
+static int FftShiftTest(void){
+ drowfftshiftaTest();
+ zrowfftshiftaTest();
+ dcolumnfftshiftaTest();
+ zcolumnfftshiftaTest();
+ dfttshiftaTest();
+ zfftshiftaTest();
+ return 0;
+}
+
+
+int main(void){
+ assert (FftShiftTest()==0);
+ return 0;
+}
diff --git a/src/c/signalProcessing/fftshift/testFloatFftShift.c b/src/c/signalProcessing/fftshift/testFloatFftShift.c
new file mode 100644
index 0000000..19b8573
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/testFloatFftShift.c
@@ -0,0 +1,159 @@
+/*
+ * 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 "fftshift.h"
+#include <assert.h>
+#define SOURCE {1,2,3,4,5,6,7,8,9,10,11,12}
+
+
+static void srowfftshiftaTest(void){
+ int i=0;
+
+ float in[]=SOURCE;
+ float result3_4[12]={3,1,2,6,4,5,9,7,8,12,10,11};
+ float result4_3[12]={3,4,1,2,7,8,5,6,11,12,9,10};
+ float out[12];
+
+ srowfftshifta(in,3,4,out);
+ for (i=0;i<12;i++) assert( out[i]-result3_4[i]==0);
+
+ srowfftshifta(in,4,3,out);
+ for (i=0;i<12;i++) assert( out[i]-result4_3[i]==0);
+
+}
+
+static void crowfftshiftaTest(void){
+ int i=0;
+
+ float inR[]=SOURCE;
+ float result3_4[12]={3,1,2,6,4,5,9,7,8,12,10,11};
+ float result4_3[12]={3,4,1,2,7,8,5,6,11,12,9,10};
+ floatComplex out[12];
+ float ZEROS[12]={0};
+ floatComplex *in;
+
+ in=FloatComplexMatrix(inR,ZEROS,12);
+
+ crowfftshifta(in,3,4,out);
+ for (i=0;i<12;i++) {
+ assert( creals(out[i])-result3_4[i]==0);
+ assert( cimags(out[i])==0);
+ }
+
+ crowfftshifta(in,4,3,out);
+ for (i=0;i<12;i++) {
+ assert( creals(out[i])-result4_3[i]==0);
+ assert( cimags(out[i])==0);
+ }
+}
+
+
+static void scolumnfftshiftaTest(void){
+ int i=0;
+
+ float in[]=SOURCE;
+ float result3_4[12]={7,8,9,10,11,12,1,2,3,4,5,6};
+ float result4_3[12]={9,10,11,12,1,2,3,4,5,6,7,8};
+ float out[12];
+
+ scolumnfftshifta(in,3,4,out);
+ for (i=0;i<12;i++) assert( out[i]-result3_4[i]==0);
+
+ scolumnfftshifta(in,4,3,out);
+ for (i=0;i<12;i++) assert( out[i]-result4_3[i]==0);
+
+}
+
+static void ccolumnfftshiftaTest(void){
+ int i=0;
+
+ float inR[]=SOURCE;
+ float result3_4[12]={7,8,9,10,11,12,1,2,3,4,5,6};
+ float result4_3[12]={9,10,11,12,1,2,3,4,5,6,7,8};
+ floatComplex out[12];
+ float ZEROS[12]={0};
+ floatComplex *in;
+
+ in=FloatComplexMatrix(inR,ZEROS,12);
+
+ ccolumnfftshifta(in,3,4,out);
+ for (i=0;i<12;i++) {
+ assert( creals(out[i])-result3_4[i]==0);
+ assert( cimags(out[i])==0);
+ }
+
+ ccolumnfftshifta(in,4,3,out);
+ for (i=0;i<12;i++) {
+ assert( creals(out[i])-result4_3[i]==0);
+ assert( cimags(out[i])==0);
+ }
+
+}
+
+static void sfftshiftaTest(void){
+ int i=0;
+
+ float in[]=SOURCE;
+ float result3_4[12]={9,7,8,12,10,11,3,1,2,6,4,5};
+ float result4_3[12]={11,12,9,10,3,4,1,2,7,8,5,6};
+ float out[12];
+
+ sfftshifta(in,3,4,out);
+ for (i=0;i<12;i++) assert( out[i]-result3_4[i]==0);
+
+ sfftshifta(in,4,3,out);
+ for (i=0;i<12;i++) assert( out[i]-result4_3[i]==0);
+
+}
+
+static void cfftshiftaTest(void){
+ int i=0;
+
+ float inR[]=SOURCE;
+ float result3_4[12]={9,7,8,12,10,11,3,1,2,6,4,5};
+ float result4_3[12]={11,12,9,10,3,4,1,2,7,8,5,6};
+ floatComplex out[12];
+ float ZEROS[12]={0};
+ floatComplex *in;
+
+ in=FloatComplexMatrix(inR,ZEROS,12);
+
+ cfftshifta(in,3,4,out);
+ for (i=0;i<12;i++) {
+ assert( creals(out[i])-result3_4[i]==0);
+ assert( cimags(out[i])==0);
+ }
+
+ cfftshifta(in,4,3,out);
+ for (i=0;i<12;i++) {
+ assert( creals(out[i])-result4_3[i]==0);
+ assert( cimags(out[i])==0);
+ }
+
+}
+
+static int FftShiftTest(void){
+ srowfftshiftaTest();
+ crowfftshiftaTest();
+ scolumnfftshiftaTest();
+ ccolumnfftshiftaTest();
+ sfftshiftaTest();
+ cfftshiftaTest();
+ return 0;
+}
+
+
+int main(void){
+ assert (FftShiftTest()==0);
+ return 0;
+}
diff --git a/src/c/signalProcessing/fftshift/test_DoubleFftShift/testDoubleFftShift.vcxproj b/src/c/signalProcessing/fftshift/test_DoubleFftShift/testDoubleFftShift.vcxproj
new file mode 100644
index 0000000..ea8aa7f
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/test_DoubleFftShift/testDoubleFftShift.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{1EA7E165-A87C-49EA-90CB-2AECD5FED605}</ProjectGuid>
+ <RootNamespace>testDoubleFftShift</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleFftShift.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/fftshift/test_DoubleFftShift/testDoubleFftShift.vcxproj.filters b/src/c/signalProcessing/fftshift/test_DoubleFftShift/testDoubleFftShift.vcxproj.filters
new file mode 100644
index 0000000..d0da718
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/test_DoubleFftShift/testDoubleFftShift.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleFftShift.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/fftshift/test_FloatFftShift/testFloatFftShift.vcxproj b/src/c/signalProcessing/fftshift/test_FloatFftShift/testFloatFftShift.vcxproj
new file mode 100644
index 0000000..1b013a8
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/test_FloatFftShift/testFloatFftShift.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{CF3E80F1-A0B6-465B-9285-11753E84B7F4}</ProjectGuid>
+ <RootNamespace>testFloatFftShift</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatFftShift.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/fftshift/test_FloatFftShift/testFloatFftShift.vcxproj.filters b/src/c/signalProcessing/fftshift/test_FloatFftShift/testFloatFftShift.vcxproj.filters
new file mode 100644
index 0000000..f976195
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/test_FloatFftShift/testFloatFftShift.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatFftShift.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/fftshift/zcolumnfftshifta.c b/src/c/signalProcessing/fftshift/zcolumnfftshifta.c
new file mode 100644
index 0000000..fc36acd
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/zcolumnfftshifta.c
@@ -0,0 +1,46 @@
+/*
+ * 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 "fftshift.h"
+
+static void Pair(doubleComplex* in,int rows,int columns,doubleComplex* out){
+ int i=0,j=0;
+
+
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[i+((j+columns/2)%columns)*rows];
+}
+
+
+static void Odd(doubleComplex* in,int rows,int columns,doubleComplex* out){
+ int i=0,j=0;
+ /*
+ same as Pair with some change in the indice
+ */
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[i+((j+(columns+1)/2)%columns)*rows];
+}
+
+
+
+
+void zcolumnfftshifta(doubleComplex* in,int rows,int columns,doubleComplex* out){
+ switch(columns%2){
+ case 0 : Pair(in,rows,columns,out); break;
+ case 1 : Odd(in,rows,columns,out); break;
+ default : break;
+ }
+}
+
diff --git a/src/c/signalProcessing/fftshift/zfftshifta.c b/src/c/signalProcessing/fftshift/zfftshifta.c
new file mode 100644
index 0000000..6cf4e25
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/zfftshifta.c
@@ -0,0 +1,26 @@
+/*
+ * 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 "fftshift.h"
+
+void zfftshifta(doubleComplex* in,int rows,int columns,doubleComplex* out){
+ doubleComplex* temp;
+
+ /*FIXME : malloc here*/
+ temp=(doubleComplex *) malloc((unsigned int)(rows*columns)*sizeof(doubleComplex));
+
+ zrowfftshifta(in,rows,columns,temp);
+ zcolumnfftshifta(temp,rows,columns,out);
+}
+
+
diff --git a/src/c/signalProcessing/fftshift/zrowfftshifta.c b/src/c/signalProcessing/fftshift/zrowfftshifta.c
new file mode 100644
index 0000000..b5fbb69
--- /dev/null
+++ b/src/c/signalProcessing/fftshift/zrowfftshifta.c
@@ -0,0 +1,45 @@
+/*
+ * 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 "fftshift.h"
+
+static void Pair(doubleComplex* in,int rows,int columns,doubleComplex* out){
+ int i=0,j=0;
+
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[j*rows+((rows/2)+i)%rows];
+}
+
+
+static void Odd(doubleComplex* in,int rows,int columns,doubleComplex* out){
+ int i=0,j=0;
+
+ /*
+ same as Pair with some change in the indice
+ */
+ for (i=0;i<rows;i++)
+ for(j=0;j<columns;j++)
+ out[i+j*rows]=in[j*rows+(((rows+1)/2)+i)%rows];
+}
+
+
+
+void zrowfftshifta(doubleComplex* in,int rows,int columns,doubleComplex* out){
+ switch(rows%2){
+ case 0 : Pair(in,rows,columns,out); break;
+ case 1 : Odd(in,rows,columns,out); break;
+ default : break;
+ }
+}
+
diff --git a/src/c/signalProcessing/filt_sinc/dfilt_sincs.c b/src/c/signalProcessing/filt_sinc/dfilt_sincs.c
new file mode 100644
index 0000000..65aaaa6
--- /dev/null
+++ b/src/c/signalProcessing/filt_sinc/dfilt_sincs.c
@@ -0,0 +1,58 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#include<stdio.h>
+#include<math.h>
+#include "filt_sinc.h"
+void dfilt_sincs(double N,double fc,double* oup)
+{
+ double no2=(N-1)/2;
+ int ino2=(int)no2;
+ double wl=fc*2*M_PI;
+ int sz=N;
+ double xn[sz];
+ double i;
+ int l,m;
+ for(i=-no2;i<=no2;i++)
+ {
+ l=i+no2;
+ xn[l]=sin(wl*i);
+ }
+ double xd[sz];
+ double j;
+ printf("\n");
+ for(j=-no2;j<=no2;j++)
+ {
+ m=j+no2;
+ xd[m]=M_PI*j;
+ }
+ if(ino2==no2)
+ {
+ xn[(int)no2]=2*fc;
+ xd[(int)no2]=1;
+ }
+ double x[sz];
+ int k;
+ for(k=0;k<N;k++)
+ {
+ oup[k]=xn[k]/xd[k];
+ }
+}
+/*
+int main()
+{
+ int n;
+ double fl;
+ n=5;
+ fl=0.2;
+ filt_sinc(n,fl);
+}
+*/
diff --git a/src/c/signalProcessing/filt_sinc/filt_sinc.h b/src/c/signalProcessing/filt_sinc/filt_sinc.h
new file mode 100644
index 0000000..43b2415
--- /dev/null
+++ b/src/c/signalProcessing/filt_sinc/filt_sinc.h
@@ -0,0 +1,28 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __FILT_SINC_H__
+#define __FILT_SINC_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void u8filt_sincs(int N,double fc,double* oup);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __FILT_SINC_H */
+
diff --git a/src/c/signalProcessing/filt_sinc/int_filt_sinc.h b/src/c/signalProcessing/filt_sinc/int_filt_sinc.h
new file mode 100644
index 0000000..5b7b07a
--- /dev/null
+++ b/src/c/signalProcessing/filt_sinc/int_filt_sinc.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_FILT_SINC_H__
+#define __INT_FILT_SINC_H__
+
+#define u80d0filt_sincd2(N,fc,oup) u8filt_sincs(N,fc,oup)
+
+#endif /* !__INT_FILT_SINC_H__! */
diff --git a/src/c/signalProcessing/fsfirlin/dfsfirlina.c b/src/c/signalProcessing/fsfirlin/dfsfirlina.c
new file mode 100644
index 0000000..d2079f4
--- /dev/null
+++ b/src/c/signalProcessing/fsfirlin/dfsfirlina.c
@@ -0,0 +1,144 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#include<stdio.h>
+
+#include<math.h>
+#include "sincd.h"
+#include "fsfirlin.h"
+//#define PI 3.14159265358979
+
+void dfsfirlina(double* hd,int size,double flag,double* hst)
+{
+ int n1=size,n;
+ if( n1%2==0)
+ {
+ n=2*n1;
+ }
+ else
+ {
+ n=2*n1+1;
+ }
+ double scd[8*n+1];
+ //STRAT SINCD
+ double npt=4*n;
+ int sz=4*n;
+ double PI=M_PI;
+ double pas=PI/npt;
+ double om[sz+1];
+ int i;
+ for(i=0;i<=sz;i++)
+ {
+ om[i]=i*pas;
+ }
+ double eps=pow(-1,(n-1));
+ double s1[sz+1],s2[sz+1];
+ double s[2*(sz)+1];
+ double sr[2*(sz)+1];
+ if(flag==1)
+ {
+ int j,k;
+ for(j=0;j<=4*n;j++)
+ {
+ s1[j]=sin(n*om[j]);
+ s2[j]=sin(om[j]);
+ }
+ s1[0]=n;
+ s2[0]=1;
+ s1[sz]=n*eps;
+ s2[sz]=1;
+
+ for(k=0;k<=4*n;k++)
+ {
+ s[k]=s1[k]/s2[k];
+ }
+
+ int x;
+ for(x=0;x<=4*n;x++)
+ {
+ scd[sz-x]=s[x];
+ }
+ int l;
+ for(l=4*n+1;l<=8*n;l++)
+ {
+ scd[l]=s[l-(sz)];
+ }
+ int m;
+ for(m=0;m<=8*n;m++)
+ {
+ scd[m]=scd[m]/n;
+ }
+ }
+ else
+ {
+ int a;
+ for(a=0;a<=4*n;a++)
+ {
+ om[a]=om[a]-(PI/(2*n));
+ }
+ int j,k;
+ for(j=0;j<=4*n;j++)
+ {
+ s1[j]=sin(n*om[j]);
+ s2[j]=sin(om[j]);
+ }
+ s1[2]=n;
+ s2[2]=1;
+ for(k=0;k<=4*n;k++)
+ {
+ s[k]=s1[k]/s2[k];
+ }
+ int m;
+ for(m=0;m<=4*n;m++)
+ {
+ scd[m]=(eps*s[m])/n;
+ }
+ int l;
+ for(l=4*n+1;l<=8*n;l++)
+ {
+ scd[l]=s[l-(sz)]/n;
+ }
+ }
+ //END SINCD
+ int ii;
+ for(ii=4*n;ii<=6*n;ii++)
+ {
+ hst[ii-(4*n)]=hd[0]*scd[ii];
+ }
+
+ int epsi;
+ epsi=pow(-1,n-1);
+ int jj;
+ for(jj=1;jj<=(n1-1);jj++)
+ {
+ double tp1[2*n+1];
+ double tp2[2*n+1];
+ int k,l;
+ for(k=(-4*jj+4*n);k<=(-4*jj+6*n);k++)
+ {
+ tp1[k-(-4*jj+4*n)]=hd[jj]*scd[k];
+ }
+
+ for(l=(4*jj);l<=(4*jj+2*n);l++)
+ {
+ tp2[l-(4*jj)]=hd[jj]*(epsi*scd[l]);
+ }
+ int m;
+ for(m=0;m<=2*n;m++)
+ {
+ hst[m]=hst[m]+(tp1[m]+tp2[m]);
+ }
+
+ }
+
+
+}
diff --git a/src/c/signalProcessing/fsfirlin/fsfirlin.h b/src/c/signalProcessing/fsfirlin/fsfirlin.h
new file mode 100644
index 0000000..7337cbf
--- /dev/null
+++ b/src/c/signalProcessing/fsfirlin/fsfirlin.h
@@ -0,0 +1,26 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __FSFIRLIN_H__
+#define __FSFIRLIN_H__
+#include "types.h"
+#include "sincd.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dfsfirlina(double* hd,int size,int flag,double* hst);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
diff --git a/src/c/signalProcessing/fsfirlin/int_fsfirlin.h b/src/c/signalProcessing/fsfirlin/int_fsfirlin.h
new file mode 100644
index 0000000..857dae8
--- /dev/null
+++ b/src/c/signalProcessing/fsfirlin/int_fsfirlin.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_FSFIRLIN_H__
+#define __INT_FSFIRLIN_H__
+
+#define d2u80fsfirlind2(hd,size,flag,hst) dfsfirlina(hd,size[1],flag,hst)
+
+#endif /* !__INT_FSFIRLIN_H__! */
diff --git a/src/c/signalProcessing/hilbert/Makefile.am b/src/c/signalProcessing/hilbert/Makefile.am
new file mode 100644
index 0000000..8622610
--- /dev/null
+++ b/src/c/signalProcessing/hilbert/Makefile.am
@@ -0,0 +1,67 @@
+##
+## 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
+##
+##
+
+
+
+
+libHilbert_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+
+instdir = $(top_builddir)/lib
+
+
+pkglib_LTLIBRARIES = libHilbert.la
+
+HEAD = ../includes/hilbert.h
+
+
+
+libHilbert_la_SOURCES = $(HEAD) \
+ shilberta.c \
+ dhilberta.c \
+ shilberts.c \
+ dhilberts.c
+
+
+###############
+#### Check ####
+###############
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/signalProcessing/ifft/libIfft.la \
+ $(top_builddir)/src/c/signalProcessing/fft/libFft.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/fortran//blas/libsciblas.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la \
+ $(top_builddir)/src/c/signalProcessing/hilbert/libHilbert.la
+
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/fft \
+ -I $(top_builddir)/src/c/signalProcessing/ifft \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+check_PROGRAMS = testHilbert
+
+TESTS = testHilbert
+
+
+testHilbert_SOURCES = testHilbert.c
+testHilbert_LDADD = $(check_LDADD)
+testHilbert_CFLAGS = $(check_INCLUDES)
diff --git a/src/c/signalProcessing/hilbert/Makefile.in b/src/c/signalProcessing/hilbert/Makefile.in
new file mode 100644
index 0000000..5b712e5
--- /dev/null
+++ b/src/c/signalProcessing/hilbert/Makefile.in
@@ -0,0 +1,726 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+check_PROGRAMS = testHilbert$(EXEEXT)
+TESTS = testHilbert$(EXEEXT)
+subdir = src/c/signalProcessing/hilbert
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/includes/machine.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkglibdir)"
+LTLIBRARIES = $(pkglib_LTLIBRARIES)
+libHilbert_la_LIBADD =
+am__objects_1 =
+am_libHilbert_la_OBJECTS = $(am__objects_1) libHilbert_la-shilberta.lo \
+ libHilbert_la-dhilberta.lo libHilbert_la-shilberts.lo \
+ libHilbert_la-dhilberts.lo
+libHilbert_la_OBJECTS = $(am_libHilbert_la_OBJECTS)
+libHilbert_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libHilbert_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testHilbert_OBJECTS = testHilbert-testHilbert.$(OBJEXT)
+testHilbert_OBJECTS = $(am_testHilbert_OBJECTS)
+testHilbert_DEPENDENCIES = $(check_LDADD)
+testHilbert_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testHilbert_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libHilbert_la_SOURCES) $(testHilbert_SOURCES)
+DIST_SOURCES = $(libHilbert_la_SOURCES) $(testHilbert_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBMATH = @LIBMATH@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libHilbert_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+instdir = $(top_builddir)/lib
+pkglib_LTLIBRARIES = libHilbert.la
+HEAD = ../includes/hilbert.h
+libHilbert_la_SOURCES = $(HEAD) \
+ shilberta.c \
+ dhilberta.c \
+ shilberts.c \
+ dhilberts.c
+
+
+###############
+#### Check ####
+###############
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/signalProcessing/ifft/libIfft.la \
+ $(top_builddir)/src/c/signalProcessing/fft/libFft.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/fortran//blas/libsciblas.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la \
+ $(top_builddir)/src/c/signalProcessing/hilbert/libHilbert.la
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/fft \
+ -I $(top_builddir)/src/c/signalProcessing/ifft \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+testHilbert_SOURCES = testHilbert.c
+testHilbert_LDADD = $(check_LDADD)
+testHilbert_CFLAGS = $(check_INCLUDES)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/c/signalProcessing/hilbert/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/c/signalProcessing/hilbert/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ }
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libHilbert.la: $(libHilbert_la_OBJECTS) $(libHilbert_la_DEPENDENCIES)
+ $(libHilbert_la_LINK) -rpath $(pkglibdir) $(libHilbert_la_OBJECTS) $(libHilbert_la_LIBADD) $(LIBS)
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+testHilbert$(EXEEXT): $(testHilbert_OBJECTS) $(testHilbert_DEPENDENCIES)
+ @rm -f testHilbert$(EXEEXT)
+ $(testHilbert_LINK) $(testHilbert_OBJECTS) $(testHilbert_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libHilbert_la-dhilberta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libHilbert_la-dhilberts.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libHilbert_la-shilberta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libHilbert_la-shilberts.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testHilbert-testHilbert.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+libHilbert_la-shilberta.lo: shilberta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libHilbert_la_CFLAGS) $(CFLAGS) -MT libHilbert_la-shilberta.lo -MD -MP -MF $(DEPDIR)/libHilbert_la-shilberta.Tpo -c -o libHilbert_la-shilberta.lo `test -f 'shilberta.c' || echo '$(srcdir)/'`shilberta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libHilbert_la-shilberta.Tpo $(DEPDIR)/libHilbert_la-shilberta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='shilberta.c' object='libHilbert_la-shilberta.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libHilbert_la_CFLAGS) $(CFLAGS) -c -o libHilbert_la-shilberta.lo `test -f 'shilberta.c' || echo '$(srcdir)/'`shilberta.c
+
+libHilbert_la-dhilberta.lo: dhilberta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libHilbert_la_CFLAGS) $(CFLAGS) -MT libHilbert_la-dhilberta.lo -MD -MP -MF $(DEPDIR)/libHilbert_la-dhilberta.Tpo -c -o libHilbert_la-dhilberta.lo `test -f 'dhilberta.c' || echo '$(srcdir)/'`dhilberta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libHilbert_la-dhilberta.Tpo $(DEPDIR)/libHilbert_la-dhilberta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dhilberta.c' object='libHilbert_la-dhilberta.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libHilbert_la_CFLAGS) $(CFLAGS) -c -o libHilbert_la-dhilberta.lo `test -f 'dhilberta.c' || echo '$(srcdir)/'`dhilberta.c
+
+libHilbert_la-shilberts.lo: shilberts.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libHilbert_la_CFLAGS) $(CFLAGS) -MT libHilbert_la-shilberts.lo -MD -MP -MF $(DEPDIR)/libHilbert_la-shilberts.Tpo -c -o libHilbert_la-shilberts.lo `test -f 'shilberts.c' || echo '$(srcdir)/'`shilberts.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libHilbert_la-shilberts.Tpo $(DEPDIR)/libHilbert_la-shilberts.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='shilberts.c' object='libHilbert_la-shilberts.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libHilbert_la_CFLAGS) $(CFLAGS) -c -o libHilbert_la-shilberts.lo `test -f 'shilberts.c' || echo '$(srcdir)/'`shilberts.c
+
+libHilbert_la-dhilberts.lo: dhilberts.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libHilbert_la_CFLAGS) $(CFLAGS) -MT libHilbert_la-dhilberts.lo -MD -MP -MF $(DEPDIR)/libHilbert_la-dhilberts.Tpo -c -o libHilbert_la-dhilberts.lo `test -f 'dhilberts.c' || echo '$(srcdir)/'`dhilberts.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libHilbert_la-dhilberts.Tpo $(DEPDIR)/libHilbert_la-dhilberts.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dhilberts.c' object='libHilbert_la-dhilberts.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libHilbert_la_CFLAGS) $(CFLAGS) -c -o libHilbert_la-dhilberts.lo `test -f 'dhilberts.c' || echo '$(srcdir)/'`dhilberts.c
+
+testHilbert-testHilbert.o: testHilbert.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testHilbert_CFLAGS) $(CFLAGS) -MT testHilbert-testHilbert.o -MD -MP -MF $(DEPDIR)/testHilbert-testHilbert.Tpo -c -o testHilbert-testHilbert.o `test -f 'testHilbert.c' || echo '$(srcdir)/'`testHilbert.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testHilbert-testHilbert.Tpo $(DEPDIR)/testHilbert-testHilbert.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testHilbert.c' object='testHilbert-testHilbert.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testHilbert_CFLAGS) $(CFLAGS) -c -o testHilbert-testHilbert.o `test -f 'testHilbert.c' || echo '$(srcdir)/'`testHilbert.c
+
+testHilbert-testHilbert.obj: testHilbert.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testHilbert_CFLAGS) $(CFLAGS) -MT testHilbert-testHilbert.obj -MD -MP -MF $(DEPDIR)/testHilbert-testHilbert.Tpo -c -o testHilbert-testHilbert.obj `if test -f 'testHilbert.c'; then $(CYGPATH_W) 'testHilbert.c'; else $(CYGPATH_W) '$(srcdir)/testHilbert.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testHilbert-testHilbert.Tpo $(DEPDIR)/testHilbert-testHilbert.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testHilbert.c' object='testHilbert-testHilbert.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testHilbert_CFLAGS) $(CFLAGS) -c -o testHilbert-testHilbert.obj `if test -f 'testHilbert.c'; then $(CYGPATH_W) 'testHilbert.c'; else $(CYGPATH_W) '$(srcdir)/testHilbert.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(pkglibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pkglibLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pkglibLTLIBRARIES
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-pkglibLTLIBRARIES install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-pkglibLTLIBRARIES
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/c/signalProcessing/hilbert/dhilberta.c b/src/c/signalProcessing/hilbert/dhilberta.c
new file mode 100644
index 0000000..815cc7a
--- /dev/null
+++ b/src/c/signalProcessing/hilbert/dhilberta.c
@@ -0,0 +1,37 @@
+/*
+ * 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 "hilbert.h"
+#include "fft.h"
+#include "ifft.h"
+#include "multiplication.h"
+#include <stdio.h>
+
+void dhilberta (double* in, int rows, int cols, doubleComplex *out){
+ int i=0,size=rows*cols;
+
+
+ for (i=0;i<rows*cols;i++) out[i]=DoubleComplex(in[i],0);
+
+
+ zfftma(out, rows, cols, out);
+
+ for (i=0;i<size;i++){
+ if ((i>0)&&(i<((size+1)/2))) out[i] = zmuls(out[i],DoubleComplex(2,0));
+ if (i>(size/2)) out[i] = zmuls(out[i],DoubleComplex(0,0));
+ }
+
+ zifftma(out, rows, cols,out);
+}
+
+
diff --git a/src/c/signalProcessing/hilbert/dhilberts.c b/src/c/signalProcessing/hilbert/dhilberts.c
new file mode 100644
index 0000000..8798031
--- /dev/null
+++ b/src/c/signalProcessing/hilbert/dhilberts.c
@@ -0,0 +1,18 @@
+/*
+ * 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 "hilbert.h"
+
+double dhilberts (double in){
+ return in;
+}
diff --git a/src/c/signalProcessing/hilbert/shilberta.c b/src/c/signalProcessing/hilbert/shilberta.c
new file mode 100644
index 0000000..c65bb56
--- /dev/null
+++ b/src/c/signalProcessing/hilbert/shilberta.c
@@ -0,0 +1,32 @@
+/*
+ * 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 "hilbert.h"
+#include "fft.h"
+#include "ifft.h"
+#include "multiplication.h"
+
+void shilberta (float* in, int rows, int cols, floatComplex *out){
+ int i;
+ int size=rows*cols;
+
+ for (i=0;i<rows*cols;i++) out[i]=FloatComplex(in[i],0);
+
+ cfftma(out, rows, cols, out);
+
+ for (i=0;i<size;i++){
+ if ((i>0)&&(i<(size+1)/2)) out[i] = cmuls(out[i],FloatComplex(2,0));
+ if (i>size/2) out[i] = cmuls(out[i],FloatComplex(0,0));
+ }
+
+ cifftma(out, rows, cols,out);
+}
diff --git a/src/c/signalProcessing/hilbert/shilberts.c b/src/c/signalProcessing/hilbert/shilberts.c
new file mode 100644
index 0000000..92f2c7c
--- /dev/null
+++ b/src/c/signalProcessing/hilbert/shilberts.c
@@ -0,0 +1,18 @@
+/*
+ * 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 "hilbert.h"
+
+
+float shilberts (float in){
+ return in;
+}
diff --git a/src/c/signalProcessing/hilbert/testHilbert.c b/src/c/signalProcessing/hilbert/testHilbert.c
new file mode 100644
index 0000000..ad50e45
--- /dev/null
+++ b/src/c/signalProcessing/hilbert/testHilbert.c
@@ -0,0 +1,851 @@
+/*
+ * 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 <stdio.h>
+#include <assert.h>
+#include <math.h>
+#include "hilbert.h"
+
+
+#define SOURCE2 {.7560438541695475578308,0.0002211346291005611420,\
+0.3303270917385816574097,0.6653811042197048664093}
+
+#define SOURCE3 {0.6283917883411049842835,0.8497452358715236186981,0.6857310198247432708740,\
+0.8782164813019335269928,0.0683740368112921714783,0.5608486062847077846527,\
+0.6623569373041391372681,0.7263506767340004444122,0.1985143842175602912903}
+
+#define SOURCE4 {0.5442573162727057933807,0.2320747897028923034668,0.2312237196601927280426,\
+ 0.2164632631465792655945,\
+0.8833887814544141292572,0.6525134947150945663452,0.3076090742833912372589,\
+ 0.9329616213217377662659,\
+0.2146007861010730266571,0.3126419968903064727783,0.3616361008025705814362,\
+ 0.2922266637906432151794,\
+0.5664248815737664699554,0.4826471973210573196411,0.3321718913502991199493,\
+ 0.5935094701126217842102}
+
+#define SOURCE5 {0.3572649653069674968720,0.7693399824202060699463,0.5477633909322321414948,\
+ 0.0962288742884993553162,0.9561171731911599636078,\
+0.2207408566027879714966,0.0143259358592331409454,0.8191489772871136665344,\
+ 0.1304992842487990856171,0.9682003557682037353516,\
+0.6561381467618048191071,0.2445538965985178947449,0.5283123566769063472748,\
+ 0.8468925636261701583862,0.7876622085459530353546,\
+0.1262082615867257118225,0.7883860985748469829559,0.3453042469918727874756,\
+ 0.2659857333637773990631,0.9709818651899695396423,\
+0.8875247663818299770355,0.2066752854734659194946,0.8525160965509712696075,\
+ 0.6744697811082005500794,0.9152874383144080638886}
+
+#define SOURCE7 {0.0284859761595726013184,0.2367841475643217563629,0.7015343559905886650085,\
+ 0.1202526628039777278900,0.8287412133067846298218,0.3161072959192097187042,\
+ 0.5305190766230225563049,\
+0.5715174819342792034149,0.0478015430271625518799,0.8248619721271097660065,\
+ 0.5798843121156096458435,0.2791808298788964748383,0.9545110929757356643677,\
+ 0.9071154636330902576447,\
+0.3360149310901761054993,0.1175613063387572765350,0.9253723770380020141602,\
+ 0.7263671257533133029938,0.9009497938677668571472,0.3948993249796330928803,\
+ 0.5655179750174283981323,\
+0.7061489676125347614288,0.6787831196561455726624,0.413293636869639158249,\
+ 0.1402290873229503631592,0.4952356130816042423248,0.4194877287372946739197,\
+ 0.8626222289167344570160,\
+0.2857509646564722061157,0.2512136367149651050568,0.3389101596549153327942,\
+ 0.3921975973062217235565,0.4681552127003669738770,0.3361602746881544589996,\
+ 0.5336876614019274711609,\
+0.2039063959382474422455,0.1589989718049764633179,0.0181815107353031635284,\
+ 0.4098370606079697608948,0.0105834598653018474579,0.1965309716761112213135,\
+ 0.2725595370866358280182,\
+0.3437655037268996238709,0.2033702037297189235687,0.3011944610625505447388,\
+ 0.2762595904059708118439,0.2944530742242932319641,0.5718073952011764049530,\
+ 0.2141770124435424804688}
+
+#define SOURCE12 {0.5595936686731874942780,0.1249340316280722618103}
+
+#define SOURCE13 {0.7279222286306321620941,0.2677766475826501846314,0.5465334919281303882599}
+
+#define SOURCE14 {0.9885407658293843269348,0.7395656588487327098846,0.0037173107266426086426,\
+0.5900572859682142734528}
+
+#define SOURCE15 {0.3096467358991503715515,0.2552205710671842098236,0.6251879390329122543335,\
+0.1157417376525700092316,0.6117004090920090675354}
+
+#define SOURCE17 {0.6783956284634768962860,0.3320095278322696685791,0.0258709923364222049713,\
+0.5174468224868178367615,0.3916873238049447536469,0.2413538414984941482544,\
+0.5064434898085892200470}
+
+#define SOURCE31 {0.4236102001741528511047,0.2893727528862655162811,0.0887932181358337402344}
+
+#define SOURCE32 {0.6212881752289831638336,0.3454984454438090324402,0.7064867629669606685638,\
+0.5211472492665052413940,0.2870400850661098957062,0.6502795079723000526428}
+
+#define SOURCE34 {0.0881334762088954448700,0.4498763345181941986084,0.722725308034569025040,\
+0.8976796260103583335877,0.2427821881137788295746,0.4337721113115549087524,\
+0.9677053210325539112091,0.5068534435704350471497,0.523297640960663557053,\
+0.5596947595477104187012,0.5617307000793516635895,0.468176002614200115204}
+
+#define SOURCE35 {0.7794546722434461116791,0.7901071812957525253296,0.9808542062528431415558,\
+0.8187066102400422096252,0.4256872381083667278290,0.2461560554802417755127,\
+0.922953246627002954483,0.1000745808705687522888,0.4678218117915093898773,\
+0.3950497675687074661255,0.0366117102093994617462,0.5175368534401059150696,\
+0.8325451570563018321991,0.6104832142591476440430,0.1871111788786947727203}
+
+#define SOURCE37 {0.0189574835821986198425,0.8433564766310155391693,0.0748594831675291061401,\
+0.8532815133221447467804,0.0124590108171105384827,0.1867539356462657451630,\
+0.4920584075152873992920,0.7489608139730989933014,0.9414957007393240928650,\
+0.212405560072511434555,0.5795019958168268203735,0.2628147569485008716583,\
+0.4360986622050404548645,0.9110545101575553417206,0.8082667365670204162598,\
+0.8102653049863874912262,0.2590428395196795463562,0.4139087288640439510346,\
+0.3599927779287099838257,0.6912787933833897113800,0.7656858796253800392151}
+
+
+#define RESULTR2 {0.5885168479289859533310,0.1677481408696621656418,\
+0.7082384515088051557541,0.2874697444494813680649}
+
+#define RESULTR3 {1.0529534542001781627363,0.7069182925236719983175,0.4039962973135212687126,\
+0.8377721576641001810515,0.3181039501602450081386,0.3515630165735879608668,\
+0.6943617464664080252135,0.5110746005860467011672,0.3817856512032448690341}
+
+#define RESULTR4 {0.6752608462702482938767,0.2057518342044204473496,-0.0427890990395098924637,\
+ 0.3857955073472112417221,\
+0.9621772530954331159592,0.6242313084658235311508,0.3033984049689024686813,\
+ 0.8866660052444785833359,\
+0.3456043160986155271530,0.2863190413918346166611,0.0876232821028679609299,\
+ 0.4615589079912751913071,\
+0.6452133532147854566574,0.454365011071786284447,0.3279612220358103513718,\
+ 0.5472138540353626012802}
+
+#define RESULTR5 {0.2962400295259193239161,0.3089018898394935153107,0.8970718315147718779912,\
+ -0.1110250488619887454522,1.3355256841208691387379,\
+0.2186875433360468412580,0.0142399996764340786015,0.5494750142671456227816,\
+ 0.1438244289733127678765,1.2266884235131985114720,\
+0.3243622761355875461220,0.146488853809641050852,0.8307917790741377039865,\
+ 0.4672829933864904861096,1.294633269803495245753,\
+0.2689630731113705763846,0.3885024240640397863444,0.3410024486082647299234,\
+ 0.3015788194209125805401,1.196819440502604692256,\
+0.5921953628411829040346,0.3931235221328068796254,0.7724433550837475070949,\
+ 0.4311855720220420518096,1.3475255557490961599854}
+
+#define RESULTR7 {0.0221790934600933908882,0.1223243807506165237165,0.8078579279308952809657,\
+ 0.0831055973421020999226,0.7234293187562024218806,0.3410300566625018015010,\
+ 0.6624983534650656924470,\
+0.4173417573555355808423,-0.1702289447306715719499,0.8932521097561832990053,\
+ 0.5795505696167876363845,0.4650900528477819317885,0.9531674534660129483044,\
+ 1.0266996973802535730869,\
+0.3592502496807103984366,-0.0602177881600134204398,1.0040005062671357727311,\
+ 0.5952560602897534192124,0.8458135965517576959627,0.4992619639538963260961,\
+ 0.7233182455018367651434,\
+0.5575694746471103746544,0.5320442416692767739761,0.5114069770070045484189,\
+ 0.2079572921340347990693,0.5832271371004160709362,0.3596406358527834412620,\
+ 0.9639546237862767208426,\
+0.2693600210346490664293,0.0082908280086841923406,0.3916743713665618020769,\
+ 0.2324071406142651508020,0.5392849148911003087648,0.4665026157423768915500,\
+ 0.6985556154653854710190,\
+0.1211347285688481462129,0.0583534009281404877911,0.1331768173348806816314,\
+ 0.4611817954035059563545,-0.0310306062323534859182,0.1483735266235425009906,\
+ 0.3794082450879812107303,\
+0.2484192180646929426491,-0.0574661602186613551524,0.3494023378688325687236,\
+ 0.1746705178068543862224,0.4728580805104006801187,0.6551060166287933084206,\
+ 0.3620372301332393516482}
+
+#define RESULTR12 {0.5595936686731874942780,0.1249340316280722618103}
+
+#define RESULTR13 {0.727922228630632051072,0.2677766475826501846314,0.5465334919281302772376}
+
+#define RESULTR14 {0.9885407658293843269348,0.7395656588487327098846,0.0037173107266426086426,\
+0.5900572859682142734528}
+
+#define RESULTR15 {0.3096467358991503715515,0.2552205710671842098236,0.6251879390329122543335,\
+0.1157417376525700092316,0.6117004090920090675354}
+
+#define RESULTR17 {0.6783956284634768962860,0.3320095278322696685791,0.0258709923364222188491,\
+0.5174468224868178367615,0.3916873238049447536469,0.2413538414984941482544,\
+0.5064434898085892200470}
+
+#define RESULTR31 {0.4236102001741528511047,0.2893727528862655162811,0.0887932181358337541122}
+
+#define RESULTR32 {0.6562798103938499716392,0.1463829164082805778246,0.8706106568376222876182,\
+0.5846776299489041539559,0.0747807359633347046302,0.7990084763926764699349}
+
+#define RESULTR34 {0.2895147710417708131203,0.324826880668600381785,0.6463934670512875291237,\
+0.8825004372435311106315,0.1780484897705416069691,0.5136849984216192988029,\
+1.1690866158654293904817,0.3818039897208412303264,0.4469657999773820611367,\
+0.5445155707808831957451,0.4969970017361144409840,0.5480888897242645052543}
+
+#define RESULTR35 {1.0992448165164583340214,0.6267460169007069703540,0.8244252263748765852114,\
+0.9107979135927461999955,0.3598763258423408051279,0.219875664393563818866,\
+1.2103192873573502819085,-0.1660945217914423510663,0.4466248737231732213182,\
+0.5941534869981266453465,-0.0029212825965045929877,0.3579661268165908460937,\
+0.9791855748989433116947,0.4046034830239924606765,0.2463504922712086431247}
+
+#define RESULTR37 {0.0033434146069818981850,0.9554376522688345918510,-0.0216076234950733081508,\
+0.7336972769716557651876,0.0730809598165483853549,0.2457162229973169909059,\
+0.5179742532819129330335,0.7909655834196462897978,0.8735750855261512626271,\
+0.0801094846848779407189,0.7065129902723632504547,0.2680998378805983239914,\
+0.4433905356823317212012,0.9035067595439678633795,0.8085226137033167947976,\
+0.7242403070946337173552,0.4089553443197004867216,0.3500212219557769510736,\
+0.3025310230791596888267,0.6920164671332854622321,0.8224099607250346943843}
+
+
+#define RESULTI2 {0,0,\
+0,0}
+
+#define RESULTI3 {0.0827980395095824772689,-0.1114116569690337538168,-0.0174490462390520933988,\
+-0.2070330189892598260482,-0.1130704082592781378747,-0.0128233225106435810847,\
+0.1242349794796773487793,0.2244820652283119055692,0.0302723687496956744836}
+
+#define RESULTI4 {0.1584819499403238296509,0.0849331486970186233521,-0.0122814085334539413452,\
+ 0.1697260756045579910278,\
+-0.1648282650858163833618,0.0402836035937070846558,0.0652061905711889266968,\
+ 0.0378817003220319747925,\
+-0.1584819499403238296509,-0.0849331486970186233521,0.0122814085334539413452,\
+ -0.1697260756045579910278,\
+0.1648282650858163833618,-0.0402836035937070846558,-0.0652061905711889266968,\
+ -0.0378817003220319747925}
+
+#define RESULTI5 {-0.2379577488223760806108,-0.1980500856853430191595,-0.2084157540378530903968,\
+ -0.2009595577277856481846,-0.0885928718752091587385,\
+0.0642786760664435519175,-0.0992997005877370997329,0.0218942281271939376275,\
+ 0.3748027917451171031615,-0.0032719016765754976861,\
+-0.0120583931462525106859,0.2181341408963820838185,-0.1102129389906743167638,\
+ 0.0183158030378510194858,-0.0201291388704768203777,\
+0.1535920604590304550108,0.1089958127617958461020,-0.0864243708530107318522,\
+ 0.0148125088838929608315,0.0167421638470533970522,\
+0.0321454054431545913073,-0.0297801673850977763336,0.3831588357543441736297,\
+ -0.2069715459390754075386,0.0952517485752080866890}
+
+#define RESULTI7 {0.1409758334471349350281,0.0314029776230078383481,0.3019335556748578008879,\
+ 0.2398099296761546650458,-0.0573140088334526676128,0.1432732614656592184943,\
+ 0.4398940061473099460976,\
+0.2162564212505879712722,-0.1637770322583952942175,0.1579264489634253088024,\
+ 0.2772819115997168237797,0.1711718089649424678900,0.1763527386616343117787,\
+ 0.0538284803848837895002,\
+0.0479617156709556957672,0.4681440954755101135909,-0.2490982322246580449310,\
+ -0.1915260827332628534858,-0.0036549673932591286718,-0.470893962786261499609,\
+ -0.0386408325310867925562,\
+0.0046438722379344987701,-0.0050534006016343113732,-0.4130897490567612129198,\
+ -0.2025604018656496918549,-0.2026110258293718491274,0.0911255775566176540181,\
+ -0.0247913383142026599870,\
+-0.3363272079021759064510,-0.2442642889954655671669,-0.2069968083137898595680,\
+ 0.0984957222872148985271,-0.3125265588587076148741,-0.2526097487856979739718,\
+ -0.4062536135232318601496,\
+0.0341324589755990226436,-0.0326770186735925727284,-0.0666918900335931735812,\
+ -0.0303613325286397894853,-0.1194235732677166039739,0.2006381933984195675702,\
+ -0.1355401977319409256850,\
+-0.1076430936800362725414,-0.0537753325694302272697,0.4760166749905191396763,\
+ -0.1911397464355340802822,0.5243583252175655351479,0.1121139404896287633529,\
+ 0.1115034955682685374745}
+
+#define RESULTI12 {0,0}
+
+#define RESULTI13 {-0.1609403391213135858795,-0.104724835963155529783,0.2656651750844691295406}
+
+#define RESULTI14 {0.0747541864402592182159,-0.4924117275513708591461,-0.0747541864402592182159,\
+0.4924117275513708591461}
+
+#define RESULTI15 {-0.2934532919715012178052,0.2662942066238083160812,-0.1297453097398825194730,\
+-0.0162106544485858539151,0.1731150495361612751122}
+
+#define RESULTI17 {-0.0718252325460487783815,-0.3822405612852492473586,0.0883019157396930931547,\
+0.2043974836060600819288,-0.143817067391037223256,0.1155937622404165643353,\
+0.1895896996361655095775}
+
+#define RESULTI31 {0.1158046483820916738861,-0.1933066747090816384080,0.0775020263269899506442}
+
+#define RESULTI32 {0,0,0,\
+0,0,0}
+
+#define RESULTI34 {0.1689924332313239296877,-0.1594742559827864170075,-0.0172019456513225893479,\
+0.4397859224118292331696,0.0284885545261204103928,-0.0997138335369527201157,\
+-0.1689924332313239296877,0.1594742559827864170075,0.0172019456513225893479,\
+-0.4397859224118292331696,-0.0284885545261204103928,0.0997138335369527201157}
+
+#define RESULTI35 {-0.1316292475222873847862,-0.0038207475230211465633,-0.0291790984031743347304,\
+0.124318851362821516937,-0.4288056400198558271164,-0.2487686861965354157000,\
+-0.1774606387906726145953,-0.1910360457356966579212,0.1689989243063947654822,\
+-0.1696542221928825366906,0.3125071348259343961828,-0.2111224267558209632956,\
+0.3544252571430209775016,0.3111552984526392839904,0.3200712870491359551828}
+
+#define RESULTI37 {0.2189793220094558567901,-0.4489603496292741136031,-0.4937799046293088744974,\
+0.2870975885300787178167,-0.0153475020886480462146,0.6805622794419772247920,\
+-0.3638091467691619285141,0.3493297478826523638773,-0.1277224814869524771588,\
+0.0075644305010185153293,0.0001438303630438494962,0.103302919046026508987,\
+0.2871483917593231072196,-0.0213705070070041927566,0.0069067656750675318622,\
+-0.0442384488081716820140,-0.2780963082978277212121,-0.0838499868835354822405,\
+-0.392742137222542697650,0.4143010887770579020462,-0.0854195911632744664388}
+
+static void double2float (double* tabdouble, float* tabfloat,int size){
+ int i;
+
+ for(i=0;i<size;i++) tabfloat[i]=(float)tabdouble[i];
+}
+
+static void dhilbertaTest(void){
+ int i;
+ double in2[]=SOURCE2;
+ double in3[]=SOURCE3;
+ double in4[]=SOURCE4;
+ double in5[]=SOURCE5;
+ double in7[]=SOURCE7;
+ double in12[]=SOURCE12;
+ double in13[]=SOURCE13;
+ double in14[]=SOURCE14;
+ double in15[]=SOURCE15;
+ double in17[]=SOURCE17;
+ double in31[]=SOURCE31;
+ double in32[]=SOURCE32;
+ double in34[]=SOURCE34;
+ double in35[]=SOURCE35;
+ double in37[]=SOURCE37;
+
+ double resR2[]=RESULTR2;
+ double resR3[]=RESULTR3;
+ double resR4[]=RESULTR4;
+ double resR5[]=RESULTR5;
+ double resR7[]=RESULTR7;
+ double resR12[]=RESULTR12;
+ double resR13[]=RESULTR13;
+ double resR14[]=RESULTR14;
+ double resR15[]=RESULTR15;
+ double resR17[]=RESULTR17;
+ double resR31[]=RESULTR31;
+ double resR32[]=RESULTR32;
+ double resR34[]=RESULTR34;
+ double resR35[]=RESULTR35;
+ double resR37[]=RESULTR37;
+
+ double resI2[]=RESULTI2;
+ double resI3[]=RESULTI3;
+ double resI4[]=RESULTI4;
+ double resI5[]=RESULTI5;
+ double resI7[]=RESULTI7;
+ double resI12[]=RESULTI12;
+ double resI13[]=RESULTI13;
+ double resI14[]=RESULTI14;
+ double resI15[]=RESULTI15;
+ double resI17[]=RESULTI17;
+ double resI31[]=RESULTI31;
+ double resI32[]=RESULTI32;
+ double resI34[]=RESULTI34;
+ double resI35[]=RESULTI35;
+ double resI37[]=RESULTI37;
+
+ doubleComplex *out2,*out3,*out4,*out5,*out7;
+ doubleComplex *out12,*out13,*out14,*out15,*out17;
+ doubleComplex *out31,*out32,*out34,*out35,*out37;
+
+ out2=(doubleComplex*)malloc((unsigned int)4*sizeof(doubleComplex));
+ out3=(doubleComplex*)malloc((unsigned int)9*sizeof(doubleComplex));
+ out4=(doubleComplex*)malloc((unsigned int)16*sizeof(doubleComplex));
+ out5=(doubleComplex*)malloc((unsigned int)25*sizeof(doubleComplex));
+ out7=(doubleComplex*)malloc((unsigned int)49*sizeof(doubleComplex));
+
+ out12=(doubleComplex*)malloc((unsigned int)2*sizeof(doubleComplex));
+ out13=(doubleComplex*)malloc((unsigned int)3*sizeof(doubleComplex));
+ out14=(doubleComplex*)malloc((unsigned int)4*sizeof(doubleComplex));
+ out15=(doubleComplex*)malloc((unsigned int)5*sizeof(doubleComplex));
+ out17=(doubleComplex*)malloc((unsigned int)7*sizeof(doubleComplex));
+
+ out31=(doubleComplex*)malloc((unsigned int)3*sizeof(doubleComplex));
+ out32=(doubleComplex*)malloc((unsigned int)6*sizeof(doubleComplex));
+ out34=(doubleComplex*)malloc((unsigned int)12*sizeof(doubleComplex));
+ out35=(doubleComplex*)malloc((unsigned int)15*sizeof(doubleComplex));
+ out37=(doubleComplex*)malloc((unsigned int)21*sizeof(doubleComplex));
+
+ dhilberta(in2, 2, 2, out2);
+ dhilberta(in3, 3, 3, out3);
+ dhilberta(in4, 4, 4, out4);
+ dhilberta(in5, 5, 5, out5);
+ dhilberta(in7, 7, 7, out7);
+
+ dhilberta(in12, 1, 2, out12);
+ dhilberta(in13, 1, 3, out13);
+ dhilberta(in14, 1, 4, out14);
+ dhilberta(in15, 1, 5, out15);
+ dhilberta(in17, 1, 7, out17);
+
+ dhilberta(in31, 3, 1, out31);
+ dhilberta(in32, 3, 2, out32);
+ dhilberta(in34, 3, 4, out34);
+ dhilberta(in35, 3, 5, out35);
+ dhilberta(in37, 3, 7, out37);
+
+
+ /* Matrice 2*2 */
+ printf(">>> Matrice 2*2 <<<\n");
+ for (i=0;i<4;i++){
+ if (zreals(out2[i])>1e-16) assert( (fabs(zreals(out2[i])-resR2[i]) / fabs(zreals(out2[i])) )<1e-16);
+ else assert(1);
+ if (zimags(out2[i])>1e-16) assert( (fabs(zimags(out2[i])-resI2[i]) / fabs(zimags(out2[i])) )<1e-16);
+ else assert(1);
+ }
+
+ /* Matrice 3*3 */
+ printf(">>> Matrice 3*3 <<<\n");
+ for (i=0;i<9;i++){
+ if (zreals(out3[i])>1e-16) assert( (fabs(zreals(out3[i])-resR3[i]) / fabs(zreals(out3[i])) )<3e-15);
+ else assert(1);
+ if (zimags(out3[i])>1e-16) assert( (fabs(zimags(out3[i])+resI3[i]) / fabs(zimags(out3[i])) )<3e-15);
+ else assert(1);
+ }
+
+ /* Matrice 4*4 */
+ printf(">>> Matrice 4*4 <<<\n");
+ for (i=0;i<16;i++){
+ if (zreals(out4[i])>1e-16) assert( (fabs(zreals(out4[i])-resR4[i]) / fabs(zreals(out4[i])) )<1e-16);
+ else assert(1);
+ if (zimags(out4[i])>1e-16) assert( (fabs(zimags(out4[i])+resI4[i]) / fabs(zimags(out4[i])) )<1e-16);
+ else assert(1);
+ }
+
+ /* Matrice 5*5 */
+ printf(">>> Matrice 5*5 <<<\n");
+ for (i=0;i<25;i++){
+ if (zreals(out5[i])>1e-16) assert( (fabs(zreals(out5[i])-resR5[i]) / fabs(zreals(out5[i])) )<3e-14);
+ else assert(1);
+ if (zimags(out5[i])>1e-16) assert( (fabs(zimags(out5[i])+resI5[i]) / fabs(zimags(out5[i])) )<3e-13);
+ else assert(1);
+ }
+
+ /* Matrice 7*7 */
+ printf(">>> Matrice 7*7 <<<\n");
+ for (i=0;i<49;i++){
+ if (zreals(out7[i])>1e-16) assert( (fabs(zreals(out7[i])-resR7[i]) / fabs(zreals(out7[i])) )<3e-14);
+ else assert(1);
+ if (zimags(out7[i])>1e-16) assert( (fabs(zimags(out7[i])+resI7[i]) / fabs(zimags(out7[i])) )<3e-14);
+ else assert(1);
+ }
+
+ /* Vecteur 1*2 */
+ printf(">>> Matrice 1*2 <<<\n");
+ for (i=0;i<2;i++){
+ if (zreals(out12[i])>1e-16) assert( (fabs(zreals(out12[i])-resR12[i]) / fabs(zreals(out12[i])) )<1e-16);
+ else assert(1);
+ if (zimags(out12[i])>1e-16) assert( (fabs(zimags(out12[i])+resI12[i]) / fabs(zimags(out12[i])) )<1e-16);
+ else assert(1);
+ }
+
+ /* Vecteur 1*3 */
+ printf(">>> Matrice 1*3 <<<\n");
+ for (i=0;i<3;i++){
+ if (zreals(out13[i])>1e-16) assert( (fabs(zreals(out13[i])-resR13[i]) / fabs(zreals(out13[i])) )<3e-16);
+ else assert(1);
+ if (zimags(out13[i])>1e-16) assert( (fabs(zimags(out13[i])+resI13[i]) / fabs(zimags(out13[i])) )<1e-16);
+ else assert(1);
+ }
+
+ /* Vecteur 1*4 */
+ printf(">>> Matrice 1*4 <<<\n");
+ for (i=0;i<4;i++){
+ if (zreals(out14[i])>1e-16) assert( (fabs(zreals(out14[i])-resR14[i]) / fabs(zreals(out14[i])) )<1e-16);
+ else assert(1);
+ if (zimags(out14[i])>1e-16) assert( (fabs(zimags(out14[i])+resI14[i]) / fabs(zimags(out14[i])) )<1e-16);
+ else assert(1);
+ }
+
+ /* Vecteur 1*5 */
+ printf(">>> Matrice 1*5 <<<\n");
+ for (i=0;i<5;i++){
+ if (zreals(out15[i])>1e-16) assert( (fabs(zreals(out15[i])-resR15[i]) / fabs(zreals(out15[i])) )<3e-15);
+ else assert(1);
+ if (zimags(out15[i])>1e-16) assert( (fabs(zimags(out15[i])+resI15[i]) / fabs(zimags(out15[i])) )<3e-15);
+ else assert(1);
+ }
+
+ /* Vecteur 1*7 */
+ printf(">>> Matrice 1*7 <<<\n");
+ for (i=0;i<7;i++){
+ if (zreals(out17[i])>1e-16) assert( (fabs(zreals(out17[i])-resR17[i]) / fabs(zreals(out17[i])) )<3e-16);
+ else assert(1);
+ if (zimags(out17[i])>1e-16) assert( (fabs(zimags(out17[i])+resI17[i]) / fabs(zimags(out17[i])) )<3e-15);
+ else assert(1);
+ }
+
+ /* Matrices 3*1 */
+ printf(">>> Matrice 3*1 <<<\n");
+ for (i=0;i<3;i++){
+ if (zreals(out31[i])>1e-16) assert( (fabs(zreals(out31[i])-resR31[i]) / fabs(zreals(out31[i])) )<3e-16);
+ else assert(1);
+ if (zimags(out31[i])>1e-16) assert( (fabs(zimags(out31[i])+resI31[i]) / fabs(zimags(out31[i])) )<1e-16);
+ else assert(1);
+ }
+
+ /* Matrices 3*2 */
+ printf(">>> Matrice 3*2 <<<\n");
+ for (i=0;i<6;i++){
+ if (zreals(out32[i])>1e-16) assert( (fabs(zreals(out32[i])-resR32[i]) / fabs(zreals(out32[i])) )<3e-15);
+ else assert(1);
+ if (zimags(out32[i])>1e-16) assert( (fabs(zimags(out32[i])+resI32[i]) / fabs(zimags(out32[i])) )<1e-16);
+ else assert(1);
+ }
+
+
+ /* Matrices 3*4 */
+ printf(">>> Matrice 3*4 <<<\n");
+ for (i=0;i<12;i++){
+ if (zreals(out34[i])>1e-16) assert( (fabs(zreals(out34[i])-resR34[i]) / fabs(zreals(out34[i])) )<1e-16);
+ else assert(1);
+ if (zimags(out34[i])>1e-16) assert( (fabs(zimags(out34[i])+resI34[i]) / fabs(zimags(out34[i])) )<3e-15);
+ else assert(1);
+ }
+
+
+ /* Matrices 3*5 */
+ printf(">>> Matrice 3*5 <<<\n");
+ for (i=0;i<15;i++){
+ if (zreals(out35[i])>1e-16) assert( (fabs(zreals(out35[i])-resR35[i]) / fabs(zreals(out35[i])) )<3e-15);
+ else assert(1);
+ if (zimags(out35[i])>1e-16) assert( (fabs(zimags(out35[i])+resI35[i]) / fabs(zimags(out35[i])) )<3e-14);
+ else assert(1);
+ }
+
+
+ /* Matrices 3*7 */
+ printf(">>> Matrice 3*7 <<<\n");
+ for (i=0;i<21;i++){
+ if (zreals(out37[i])>1e-16) assert( (fabs(zreals(out37[i])-resR37[i]) / fabs(zreals(out37[i])) )<3e-13);
+ else assert(1);
+ if (zimags(out37[i])>1e-16) assert( (fabs(zimags(out37[i])+resI37[i]) / fabs(zimags(out37[i])) )<3e-14);
+ else assert(1);
+ }
+
+ free(out2);
+ free(out3);
+ free(out4);
+ free(out5);
+ free(out7);
+
+ free(out12);
+ free(out13);
+ free(out14);
+ free(out15);
+ free(out17);
+
+ free(out31);
+ free(out32);
+ free(out34);
+ free(out35);
+ free(out37);
+}
+
+static void shilbertaTest(void){
+ int i;
+ double ind2[]=SOURCE2;float in2[4];
+ double ind3[]=SOURCE3;float in3[9];
+ double ind4[]=SOURCE4;float in4[16];
+ double ind5[]=SOURCE5;float in5[25];
+ double ind7[]=SOURCE7;float in7[49];
+ double ind12[]=SOURCE12;float in12[2];
+ double ind13[]=SOURCE13;float in13[3];
+ double ind14[]=SOURCE14;float in14[4];
+ double ind15[]=SOURCE15;float in15[5];
+ double ind17[]=SOURCE17;float in17[7];
+ double ind31[]=SOURCE31;float in31[3];
+ double ind32[]=SOURCE32;float in32[6];
+ double ind34[]=SOURCE34;float in34[12];
+ double ind35[]=SOURCE35;float in35[15];
+ double ind37[]=SOURCE37;float in37[21];
+
+ double resdR2[]=RESULTR2;float resR2[4];
+ double resdR3[]=RESULTR3;float resR3[9];
+ double resdR4[]=RESULTR4;float resR4[16];
+ double resdR5[]=RESULTR5;float resR5[25];
+ double resdR7[]=RESULTR7;float resR7[49];
+ double resdR12[]=RESULTR12;float resR12[2];
+ double resdR13[]=RESULTR13;float resR13[3];
+ double resdR14[]=RESULTR14;float resR14[4];
+ double resdR15[]=RESULTR15;float resR15[5];
+ double resdR17[]=RESULTR17;float resR17[7];
+ double resdR31[]=RESULTR31;float resR31[3];
+ double resdR32[]=RESULTR32;float resR32[6];
+ double resdR34[]=RESULTR34;float resR34[12];
+ double resdR35[]=RESULTR35;float resR35[15];
+ double resdR37[]=RESULTR37;float resR37[21];
+
+ double resdI2[]=RESULTI2;float resI2[4];
+ double resdI3[]=RESULTI3;float resI3[9];
+ double resdI4[]=RESULTI4;float resI4[16];
+ double resdI5[]=RESULTI5;float resI5[25];
+ double resdI7[]=RESULTI7;float resI7[49];
+ double resdI12[]=RESULTI12;float resI12[2];
+ double resdI13[]=RESULTI13;float resI13[3];
+ double resdI14[]=RESULTI14;float resI14[4];
+ double resdI15[]=RESULTI15;float resI15[5];
+ double resdI17[]=RESULTI17;float resI17[7];
+ double resdI31[]=RESULTI31;float resI31[3];
+ double resdI32[]=RESULTI32;float resI32[6];
+ double resdI34[]=RESULTI34;float resI34[12];
+ double resdI35[]=RESULTI35;float resI35[15];
+ double resdI37[]=RESULTI37;float resI37[21];
+
+ floatComplex *out2,*out3,*out4,*out5,*out7;
+ floatComplex *out12,*out13,*out14,*out15,*out17;
+ floatComplex *out31,*out32,*out34,*out35,*out37;
+
+ out2=(floatComplex*)malloc((unsigned int)4*sizeof(floatComplex));
+ out3=(floatComplex*)malloc((unsigned int)9*sizeof(floatComplex));
+ out4=(floatComplex*)malloc((unsigned int)16*sizeof(floatComplex));
+ out5=(floatComplex*)malloc((unsigned int)25*sizeof(floatComplex));
+ out7=(floatComplex*)malloc((unsigned int)49*sizeof(floatComplex));
+
+ out12=(floatComplex*)malloc((unsigned int)2*sizeof(floatComplex));
+ out13=(floatComplex*)malloc((unsigned int)3*sizeof(floatComplex));
+ out14=(floatComplex*)malloc((unsigned int)4*sizeof(floatComplex));
+ out15=(floatComplex*)malloc((unsigned int)5*sizeof(floatComplex));
+ out17=(floatComplex*)malloc((unsigned int)7*sizeof(floatComplex));
+
+ out31=(floatComplex*)malloc((unsigned int)3*sizeof(floatComplex));
+ out32=(floatComplex*)malloc((unsigned int)6*sizeof(floatComplex));
+ out34=(floatComplex*)malloc((unsigned int)12*sizeof(floatComplex));
+ out35=(floatComplex*)malloc((unsigned int)15*sizeof(floatComplex));
+ out37=(floatComplex*)malloc((unsigned int)21*sizeof(floatComplex));
+
+ /* Mise en float */
+ double2float(ind2,in2,4);
+ double2float(ind3,in3,9);
+ double2float(ind4,in4,16);
+ double2float(ind5,in5,25);
+ double2float(ind7,in7,49);
+ double2float(ind12,in12,2);
+ double2float(ind13,in13,3);
+ double2float(ind14,in14,4);
+ double2float(ind15,in15,5);
+ double2float(ind17,in17,7);
+ double2float(ind31,in31,3);
+ double2float(ind32,in32,6);
+ double2float(ind34,in34,12);
+ double2float(ind35,in35,15);
+ double2float(ind37,in37,21);
+
+ double2float(resdR2,resR2,4);
+ double2float(resdR3,resR3,9);
+ double2float(resdR4,resR4,16);
+ double2float(resdR5,resR5,25);
+ double2float(resdR7,resR7,49);
+ double2float(resdR12,resR12,2);
+ double2float(resdR13,resR13,3);
+ double2float(resdR14,resR14,4);
+ double2float(resdR15,resR15,5);
+ double2float(resdR17,resR17,7);
+ double2float(resdR31,resR31,3);
+ double2float(resdR32,resR32,6);
+ double2float(resdR34,resR34,12);
+ double2float(resdR35,resR35,15);
+ double2float(resdR37,resR37,21);
+
+ double2float(resdI2,resI2,4);
+ double2float(resdI3,resI3,9);
+ double2float(resdI4,resI4,16);
+ double2float(resdI5,resI5,25);
+ double2float(resdI7,resI7,49);
+ double2float(resdI12,resI12,2);
+ double2float(resdI13,resI13,3);
+ double2float(resdI14,resI14,4);
+ double2float(resdI15,resI15,5);
+ double2float(resdI17,resI17,7);
+ double2float(resdI31,resI31,3);
+ double2float(resdI32,resI32,6);
+ double2float(resdI34,resI34,12);
+ double2float(resdI35,resI35,15);
+ double2float(resdI37,resI37,21);
+
+ /* Tests and assert */
+
+ /* Matrice 2*2 */
+ printf(">>> Matrice 2*2 <<<\n");
+ shilberta(in2, 2, 2, out2);
+ for (i=0;i<4;i++){
+ if (creals(out2[i])>1e-16) assert( (fabs(creals(out2[i])-resR2[i]) / fabs(creals(out2[i])) )<1e-6);
+ else assert(1);
+ if (cimags(out2[i])>1e-16) assert( (fabs(cimags(out2[i])-resI2[i]) / fabs(cimags(out2[i])) )<1e-6);
+ else assert(1);
+ }
+
+ /* Matrice 3*3 */
+ printf(">>> Matrice 3*3 <<<\n");
+ shilberta(in3, 3, 3, out3);
+ for (i=0;i<9;i++){
+ if (creals(out3[i])>1e-16) assert( (fabs(creals(out3[i])-resR3[i]) / fabs(creals(out3[i])) )<1e-6);
+ else assert(1);
+ if (cimags(out3[i])>1e-16) assert( (fabs(cimags(out3[i])+resI3[i]) / fabs(cimags(out3[i])) )<3e-6);
+ else assert(1);
+ }
+
+ /* Matrice 4*4 */
+ printf(">>> Matrice 4*4 <<<\n");
+ shilberta(in4, 4, 4, out4);
+ for (i=0;i<16;i++){
+ if (creals(out4[i])>1e-16) assert( (fabs(creals(out4[i])-resR4[i]) / fabs(creals(out4[i])) )<1e-6);
+ else assert(1);
+ if (cimags(out4[i])>1e-16) assert( (fabs(cimags(out4[i])+resI4[i]) / fabs(cimags(out4[i])) )<1e-6);
+ else assert(1);
+ }
+
+ /* Matrice 5*5 */
+ printf(">>> Matrice 5*5 <<<\n");
+ shilberta(in5, 5, 5, out5);
+ for (i=0;i<25;i++){
+ if (creals(out5[i])>1e-16) assert( (fabs(creals(out5[i])-resR5[i]) / fabs(creals(out5[i])) )<3e-6);
+ else assert(1);
+ if (cimags(out5[i])>1e-16) assert( (fabs(cimags(out5[i])+resI5[i]) / fabs(cimags(out5[i])) )<3e-5);
+ else assert(1);
+ }
+
+ /* Matrice 7*7 */
+ printf(">>> Matrice 7*7 <<<\n");
+ shilberta(in7, 7, 7, out7);
+ for (i=0;i<49;i++){
+ if (creals(out7[i])>1e-16) assert( (fabs(creals(out7[i])-resR7[i]) / fabs(creals(out7[i])) )<1e-6);
+ else assert(1);
+ if (cimags(out7[i])>1e-16) assert( (fabs(cimags(out7[i])+resI7[i]) / fabs(cimags(out7[i])) )<3e-6);
+ else assert(1);
+ }
+
+ /* Vecteur 1*2 */
+ printf(">>> Matrice 1*2 <<<\n");
+ shilberta(in12, 1, 2, out12);
+ for (i=0;i<2;i++){
+ if (creals(out12[i])>1e-16) assert( (fabs(creals(out12[i])-resR12[i]) / fabs(creals(out12[i])) )<1e-6);
+ else assert(1);
+ if (cimags(out12[i])>1e-16) assert( (fabs(cimags(out12[i])+resI12[i]) / fabs(cimags(out12[i])) )<1e-6);
+ else assert(1);
+ }
+
+ /* Vecteur 1*3 */
+ printf(">>> Matrice 1*3 <<<\n");
+ shilberta(in13, 1, 3, out13);
+ for (i=0;i<3;i++){
+ if (creals(out13[i])>1e-16) assert( (fabs(creals(out13[i])-resR13[i]) / fabs(creals(out13[i])) )<1e-6);
+ else assert(1);
+ if (cimags(out13[i])>1e-16) assert( (fabs(cimags(out13[i])+resI13[i]) / fabs(cimags(out13[i])) )<1e-6);
+ else assert(1);
+ }
+
+ /* Vecteur 1*4 */
+ printf(">>> Matrice 1*4 <<<\n");
+ shilberta(in14, 1, 4, out14);
+ for (i=0;i<4;i++){
+ if (creals(out14[i])>1e-16) assert( (fabs(creals(out14[i])-resR14[i]) / fabs(creals(out14[i])) )<3e-6);
+ else assert(1);
+ if (cimags(out14[i])>1e-16) assert( (fabs(cimags(out14[i])+resI14[i]) / fabs(cimags(out14[i])) )<1e-6);
+ else assert(1);
+ }
+
+ /* Vecteur 1*5 */
+ printf(">>> Matrice 1*5 <<<\n");
+ shilberta(in15, 1, 5, out15);
+ for (i=0;i<5;i++){
+ if (creals(out15[i])>1e-16) assert( (fabs(creals(out15[i])-resR15[i]) / fabs(creals(out15[i])) )<1e-6);
+ else assert(1);
+ if (cimags(out15[i])>1e-16) assert( (fabs(cimags(out15[i])+resI15[i]) / fabs(cimags(out15[i])) )<1e-6);
+ else assert(1);
+ }
+
+ /* Vecteur 1*7 */
+ printf(">>> Matrice 1*7 <<<\n");
+ shilberta(in17, 1, 7, out17);
+ for (i=0;i<7;i++){
+ if (creals(out17[i])>1e-16) assert( (fabs(creals(out17[i])-resR17[i]) / fabs(creals(out17[i])) )<1e-6);
+ else assert(1);
+ if (cimags(out17[i])>1e-16) assert( (fabs(cimags(out17[i])+resI17[i]) / fabs(cimags(out17[i])) )<1e-6);
+ else assert(1);
+ }
+
+ /* Matrices 3*1 */
+ printf(">>> Matrice 3*1 <<<\n");
+ shilberta(in31, 3, 1, out31);
+ for (i=0;i<3;i++){
+ if (creals(out31[i])>1e-16) assert( (fabs(creals(out31[i])-resR31[i]) / fabs(creals(out31[i])) )<1e-6);
+ else assert(1);
+ if (cimags(out31[i])>1e-16) assert( (fabs(cimags(out31[i])+resI31[i]) / fabs(cimags(out31[i])) )<1e-6);
+ else assert(1);
+ }
+
+ /* Matrices 3*2 */
+ printf(">>> Matrice 3*2 <<<\n");
+ shilberta(in32, 3, 2, out32);
+ for (i=0;i<6;i++){
+ if (creals(out32[i])>1e-16) assert( (fabs(creals(out32[i])-resR32[i]) / fabs(creals(out32[i])) )<1e-6);
+ else assert(1);
+ if (cimags(out32[i])>1e-16) assert( (fabs(cimags(out32[i])+resI32[i]) / fabs(cimags(out32[i])) )<1e-6);
+ else assert(1);
+ }
+
+
+ /* Matrices 3*4 */
+ printf(">>> Matrice 3*4 <<<\n");
+ shilberta(in34, 3, 4, out34);
+ for (i=0;i<12;i++){
+ if (creals(out34[i])>1e-16) assert( (fabs(creals(out34[i])-resR34[i]) / fabs(creals(out34[i])) )<1e-6);
+ else assert(1);
+ if (cimags(out34[i])>1e-16) assert( (fabs(cimags(out34[i])+resI34[i]) / fabs(cimags(out34[i])) )<1e-6);
+ else assert(1);
+ }
+
+
+ /* Matrices 3*5 */
+ printf(">>> Matrice 3*5 <<<\n");
+ shilberta(in35, 3, 5, out35);
+ for (i=0;i<15;i++){
+ if (creals(out35[i])>1e-16) assert( (fabs(creals(out35[i])-resR35[i]) / fabs(creals(out35[i])) )<1e-6);
+ else assert(1);
+ if (cimags(out35[i])>1e-16) assert( (fabs(cimags(out35[i])+resI35[i]) / fabs(cimags(out35[i])) )<3e-6);
+ else assert(1);
+ }
+
+
+ /* Matrices 3*7 */
+ printf(">>> Matrice 3*7 <<<\n");
+ shilberta(in37, 3, 7, out37);
+ for (i=0;i<21;i++){
+ if (creals(out37[i])>1e-16) assert( (fabs(creals(out37[i])-resR37[i]) / fabs(creals(out37[i])) )<3e-5);
+ else assert(1);
+ if (cimags(out37[i])>1e-16) assert( (fabs(cimags(out37[i])+resI37[i]) / fabs(cimags(out37[i])) )<3e-6);
+ else assert(1);
+ }
+
+ free(out2);
+ free(out3);
+ free(out4);
+ free(out5);
+ free(out7);
+
+ free(out12);
+ free(out13);
+ free(out14);
+ free(out15);
+ free(out17);
+
+ free(out31);
+ free(out32);
+ free(out34);
+ free(out35);
+ free(out37);
+
+}
+
+
+static int hilbertTest(void){
+ printf("\n >>> Double Hilbert Tests <<<\n");
+ dhilbertaTest();
+ printf("\n >>> Float Hilbert Tests <<<\n");
+ shilbertaTest();
+ return 0;
+}
+
+
+int main (void){
+ assert(hilbertTest()==0);
+ return 0;
+}
+
+
+
+
diff --git a/src/c/signalProcessing/hilbert/test_Hilbert/testHilbert.vcxproj b/src/c/signalProcessing/hilbert/test_Hilbert/testHilbert.vcxproj
new file mode 100644
index 0000000..17dae40
--- /dev/null
+++ b/src/c/signalProcessing/hilbert/test_Hilbert/testHilbert.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{AE37524C-2EBB-4EAE-93B9-AE9C89323B1E}</ProjectGuid>
+ <RootNamespace>testHilbert</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testHilbert.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/hilbert/test_Hilbert/testHilbert.vcxproj.filters b/src/c/signalProcessing/hilbert/test_Hilbert/testHilbert.vcxproj.filters
new file mode 100644
index 0000000..0e5affa
--- /dev/null
+++ b/src/c/signalProcessing/hilbert/test_Hilbert/testHilbert.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testHilbert.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/ifft/Makefile.am b/src/c/signalProcessing/ifft/Makefile.am
new file mode 100644
index 0000000..2afc228
--- /dev/null
+++ b/src/c/signalProcessing/ifft/Makefile.am
@@ -0,0 +1,84 @@
+##
+## Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+## Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+##
+## 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
+##
+##
+
+
+
+libIfft_la_CFLAGS = -I . \
+ -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/signalProcessing/includes \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes
+
+instdir = $(top_builddir)/lib
+
+pkglib_LTLIBRARIES = libIfft.la
+
+libIfft_la_SOURCES = $(HEAD) $(SRC)
+
+HEAD = ../includes/ifft.h \
+ fft_internal.h
+
+SRC = zifftma.c \
+ cifftma.c \
+ difft2.c \
+ difftbi.c \
+ difftmx.c \
+ ifft842.c \
+ ir2tx.c \
+ ir4tx.c \
+ ir8tx.c\
+ difftma.c \
+ sifftma.c
+
+
+####
+# Checking Part
+####
+
+check_INCLUDES = -I . \
+ -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/signalProcessing/includes \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes
+
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/c/signalProcessing/ifft/libIfft.la \
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ @LIBMATH@
+
+check_PROGRAMS = testFloatIfft testDoubleIfft testMatIfft
+
+TESTS = testFloatIfft testDoubleIfft testMatIfft
+
+#
+# -*- Fftine Tests -*-
+#
+testFloatIfft_SOURCES = testFloatIfft.c
+testFloatIfft_CFLAGS = $(check_INCLUDES)
+testFloatIfft_LDADD = $(check_LDADD)
+
+testDoubleIfft_SOURCES = testDoubleIfft.c
+testDoubleIfft_CFLAGS = $(check_INCLUDES)
+testDoubleIfft_LDADD = $(check_LDADD)
+
+
+testMatIfft_SOURCES = testMatIfft.c
+testMatIfft_CFLAGS = $(check_INCLUDES)
+testMatIfft_LDADD = $(check_LDADD)
diff --git a/src/c/signalProcessing/ifft/Makefile.in b/src/c/signalProcessing/ifft/Makefile.in
new file mode 100644
index 0000000..54721c8
--- /dev/null
+++ b/src/c/signalProcessing/ifft/Makefile.in
@@ -0,0 +1,866 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+check_PROGRAMS = testFloatIfft$(EXEEXT) testDoubleIfft$(EXEEXT) \
+ testMatIfft$(EXEEXT)
+TESTS = testFloatIfft$(EXEEXT) testDoubleIfft$(EXEEXT) \
+ testMatIfft$(EXEEXT)
+subdir = src/c/signalProcessing/ifft
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/includes/machine.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkglibdir)"
+LTLIBRARIES = $(pkglib_LTLIBRARIES)
+libIfft_la_LIBADD =
+am__objects_1 =
+am__objects_2 = libIfft_la-zifftma.lo libIfft_la-cifftma.lo \
+ libIfft_la-difft2.lo libIfft_la-difftbi.lo \
+ libIfft_la-difftmx.lo libIfft_la-ifft842.lo \
+ libIfft_la-ir2tx.lo libIfft_la-ir4tx.lo libIfft_la-ir8tx.lo \
+ libIfft_la-difftma.lo libIfft_la-sifftma.lo
+am_libIfft_la_OBJECTS = $(am__objects_1) $(am__objects_2)
+libIfft_la_OBJECTS = $(am_libIfft_la_OBJECTS)
+libIfft_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libIfft_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testDoubleIfft_OBJECTS = testDoubleIfft-testDoubleIfft.$(OBJEXT)
+testDoubleIfft_OBJECTS = $(am_testDoubleIfft_OBJECTS)
+am__DEPENDENCIES_1 = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/c/signalProcessing/ifft/libIfft.la \
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la
+testDoubleIfft_DEPENDENCIES = $(am__DEPENDENCIES_1)
+testDoubleIfft_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testDoubleIfft_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testFloatIfft_OBJECTS = testFloatIfft-testFloatIfft.$(OBJEXT)
+testFloatIfft_OBJECTS = $(am_testFloatIfft_OBJECTS)
+testFloatIfft_DEPENDENCIES = $(am__DEPENDENCIES_1)
+testFloatIfft_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testFloatIfft_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testMatIfft_OBJECTS = testMatIfft-testMatIfft.$(OBJEXT)
+testMatIfft_OBJECTS = $(am_testMatIfft_OBJECTS)
+testMatIfft_DEPENDENCIES = $(am__DEPENDENCIES_1)
+testMatIfft_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testMatIfft_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libIfft_la_SOURCES) $(testDoubleIfft_SOURCES) \
+ $(testFloatIfft_SOURCES) $(testMatIfft_SOURCES)
+DIST_SOURCES = $(libIfft_la_SOURCES) $(testDoubleIfft_SOURCES) \
+ $(testFloatIfft_SOURCES) $(testMatIfft_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBMATH = @LIBMATH@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libIfft_la_CFLAGS = -I . \
+ -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/signalProcessing/includes \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes
+
+instdir = $(top_builddir)/lib
+pkglib_LTLIBRARIES = libIfft.la
+libIfft_la_SOURCES = $(HEAD) $(SRC)
+HEAD = ../includes/ifft.h \
+ fft_internal.h
+
+SRC = zifftma.c \
+ cifftma.c \
+ difft2.c \
+ difftbi.c \
+ difftmx.c \
+ ifft842.c \
+ ir2tx.c \
+ ir4tx.c \
+ ir8tx.c\
+ difftma.c \
+ sifftma.c
+
+
+####
+# Checking Part
+####
+check_INCLUDES = -I . \
+ -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/signalProcessing/includes \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/c/signalProcessing/ifft/libIfft.la \
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ @LIBMATH@
+
+
+#
+# -*- Fftine Tests -*-
+#
+testFloatIfft_SOURCES = testFloatIfft.c
+testFloatIfft_CFLAGS = $(check_INCLUDES)
+testFloatIfft_LDADD = $(check_LDADD)
+testDoubleIfft_SOURCES = testDoubleIfft.c
+testDoubleIfft_CFLAGS = $(check_INCLUDES)
+testDoubleIfft_LDADD = $(check_LDADD)
+testMatIfft_SOURCES = testMatIfft.c
+testMatIfft_CFLAGS = $(check_INCLUDES)
+testMatIfft_LDADD = $(check_LDADD)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/c/signalProcessing/ifft/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/c/signalProcessing/ifft/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ }
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libIfft.la: $(libIfft_la_OBJECTS) $(libIfft_la_DEPENDENCIES)
+ $(libIfft_la_LINK) -rpath $(pkglibdir) $(libIfft_la_OBJECTS) $(libIfft_la_LIBADD) $(LIBS)
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+testDoubleIfft$(EXEEXT): $(testDoubleIfft_OBJECTS) $(testDoubleIfft_DEPENDENCIES)
+ @rm -f testDoubleIfft$(EXEEXT)
+ $(testDoubleIfft_LINK) $(testDoubleIfft_OBJECTS) $(testDoubleIfft_LDADD) $(LIBS)
+testFloatIfft$(EXEEXT): $(testFloatIfft_OBJECTS) $(testFloatIfft_DEPENDENCIES)
+ @rm -f testFloatIfft$(EXEEXT)
+ $(testFloatIfft_LINK) $(testFloatIfft_OBJECTS) $(testFloatIfft_LDADD) $(LIBS)
+testMatIfft$(EXEEXT): $(testMatIfft_OBJECTS) $(testMatIfft_DEPENDENCIES)
+ @rm -f testMatIfft$(EXEEXT)
+ $(testMatIfft_LINK) $(testMatIfft_OBJECTS) $(testMatIfft_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIfft_la-cifftma.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIfft_la-difft2.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIfft_la-difftbi.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIfft_la-difftma.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIfft_la-difftmx.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIfft_la-ifft842.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIfft_la-ir2tx.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIfft_la-ir4tx.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIfft_la-ir8tx.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIfft_la-sifftma.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIfft_la-zifftma.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDoubleIfft-testDoubleIfft.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFloatIfft-testFloatIfft.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testMatIfft-testMatIfft.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+libIfft_la-zifftma.lo: zifftma.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -MT libIfft_la-zifftma.lo -MD -MP -MF $(DEPDIR)/libIfft_la-zifftma.Tpo -c -o libIfft_la-zifftma.lo `test -f 'zifftma.c' || echo '$(srcdir)/'`zifftma.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libIfft_la-zifftma.Tpo $(DEPDIR)/libIfft_la-zifftma.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zifftma.c' object='libIfft_la-zifftma.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -c -o libIfft_la-zifftma.lo `test -f 'zifftma.c' || echo '$(srcdir)/'`zifftma.c
+
+libIfft_la-cifftma.lo: cifftma.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -MT libIfft_la-cifftma.lo -MD -MP -MF $(DEPDIR)/libIfft_la-cifftma.Tpo -c -o libIfft_la-cifftma.lo `test -f 'cifftma.c' || echo '$(srcdir)/'`cifftma.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libIfft_la-cifftma.Tpo $(DEPDIR)/libIfft_la-cifftma.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cifftma.c' object='libIfft_la-cifftma.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -c -o libIfft_la-cifftma.lo `test -f 'cifftma.c' || echo '$(srcdir)/'`cifftma.c
+
+libIfft_la-difft2.lo: difft2.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -MT libIfft_la-difft2.lo -MD -MP -MF $(DEPDIR)/libIfft_la-difft2.Tpo -c -o libIfft_la-difft2.lo `test -f 'difft2.c' || echo '$(srcdir)/'`difft2.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libIfft_la-difft2.Tpo $(DEPDIR)/libIfft_la-difft2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='difft2.c' object='libIfft_la-difft2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -c -o libIfft_la-difft2.lo `test -f 'difft2.c' || echo '$(srcdir)/'`difft2.c
+
+libIfft_la-difftbi.lo: difftbi.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -MT libIfft_la-difftbi.lo -MD -MP -MF $(DEPDIR)/libIfft_la-difftbi.Tpo -c -o libIfft_la-difftbi.lo `test -f 'difftbi.c' || echo '$(srcdir)/'`difftbi.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libIfft_la-difftbi.Tpo $(DEPDIR)/libIfft_la-difftbi.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='difftbi.c' object='libIfft_la-difftbi.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -c -o libIfft_la-difftbi.lo `test -f 'difftbi.c' || echo '$(srcdir)/'`difftbi.c
+
+libIfft_la-difftmx.lo: difftmx.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -MT libIfft_la-difftmx.lo -MD -MP -MF $(DEPDIR)/libIfft_la-difftmx.Tpo -c -o libIfft_la-difftmx.lo `test -f 'difftmx.c' || echo '$(srcdir)/'`difftmx.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libIfft_la-difftmx.Tpo $(DEPDIR)/libIfft_la-difftmx.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='difftmx.c' object='libIfft_la-difftmx.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -c -o libIfft_la-difftmx.lo `test -f 'difftmx.c' || echo '$(srcdir)/'`difftmx.c
+
+libIfft_la-ifft842.lo: ifft842.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -MT libIfft_la-ifft842.lo -MD -MP -MF $(DEPDIR)/libIfft_la-ifft842.Tpo -c -o libIfft_la-ifft842.lo `test -f 'ifft842.c' || echo '$(srcdir)/'`ifft842.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libIfft_la-ifft842.Tpo $(DEPDIR)/libIfft_la-ifft842.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ifft842.c' object='libIfft_la-ifft842.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -c -o libIfft_la-ifft842.lo `test -f 'ifft842.c' || echo '$(srcdir)/'`ifft842.c
+
+libIfft_la-ir2tx.lo: ir2tx.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -MT libIfft_la-ir2tx.lo -MD -MP -MF $(DEPDIR)/libIfft_la-ir2tx.Tpo -c -o libIfft_la-ir2tx.lo `test -f 'ir2tx.c' || echo '$(srcdir)/'`ir2tx.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libIfft_la-ir2tx.Tpo $(DEPDIR)/libIfft_la-ir2tx.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ir2tx.c' object='libIfft_la-ir2tx.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -c -o libIfft_la-ir2tx.lo `test -f 'ir2tx.c' || echo '$(srcdir)/'`ir2tx.c
+
+libIfft_la-ir4tx.lo: ir4tx.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -MT libIfft_la-ir4tx.lo -MD -MP -MF $(DEPDIR)/libIfft_la-ir4tx.Tpo -c -o libIfft_la-ir4tx.lo `test -f 'ir4tx.c' || echo '$(srcdir)/'`ir4tx.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libIfft_la-ir4tx.Tpo $(DEPDIR)/libIfft_la-ir4tx.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ir4tx.c' object='libIfft_la-ir4tx.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -c -o libIfft_la-ir4tx.lo `test -f 'ir4tx.c' || echo '$(srcdir)/'`ir4tx.c
+
+libIfft_la-ir8tx.lo: ir8tx.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -MT libIfft_la-ir8tx.lo -MD -MP -MF $(DEPDIR)/libIfft_la-ir8tx.Tpo -c -o libIfft_la-ir8tx.lo `test -f 'ir8tx.c' || echo '$(srcdir)/'`ir8tx.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libIfft_la-ir8tx.Tpo $(DEPDIR)/libIfft_la-ir8tx.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ir8tx.c' object='libIfft_la-ir8tx.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -c -o libIfft_la-ir8tx.lo `test -f 'ir8tx.c' || echo '$(srcdir)/'`ir8tx.c
+
+libIfft_la-difftma.lo: difftma.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -MT libIfft_la-difftma.lo -MD -MP -MF $(DEPDIR)/libIfft_la-difftma.Tpo -c -o libIfft_la-difftma.lo `test -f 'difftma.c' || echo '$(srcdir)/'`difftma.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libIfft_la-difftma.Tpo $(DEPDIR)/libIfft_la-difftma.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='difftma.c' object='libIfft_la-difftma.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -c -o libIfft_la-difftma.lo `test -f 'difftma.c' || echo '$(srcdir)/'`difftma.c
+
+libIfft_la-sifftma.lo: sifftma.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -MT libIfft_la-sifftma.lo -MD -MP -MF $(DEPDIR)/libIfft_la-sifftma.Tpo -c -o libIfft_la-sifftma.lo `test -f 'sifftma.c' || echo '$(srcdir)/'`sifftma.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libIfft_la-sifftma.Tpo $(DEPDIR)/libIfft_la-sifftma.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sifftma.c' object='libIfft_la-sifftma.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIfft_la_CFLAGS) $(CFLAGS) -c -o libIfft_la-sifftma.lo `test -f 'sifftma.c' || echo '$(srcdir)/'`sifftma.c
+
+testDoubleIfft-testDoubleIfft.o: testDoubleIfft.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleIfft_CFLAGS) $(CFLAGS) -MT testDoubleIfft-testDoubleIfft.o -MD -MP -MF $(DEPDIR)/testDoubleIfft-testDoubleIfft.Tpo -c -o testDoubleIfft-testDoubleIfft.o `test -f 'testDoubleIfft.c' || echo '$(srcdir)/'`testDoubleIfft.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleIfft-testDoubleIfft.Tpo $(DEPDIR)/testDoubleIfft-testDoubleIfft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleIfft.c' object='testDoubleIfft-testDoubleIfft.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleIfft_CFLAGS) $(CFLAGS) -c -o testDoubleIfft-testDoubleIfft.o `test -f 'testDoubleIfft.c' || echo '$(srcdir)/'`testDoubleIfft.c
+
+testDoubleIfft-testDoubleIfft.obj: testDoubleIfft.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleIfft_CFLAGS) $(CFLAGS) -MT testDoubleIfft-testDoubleIfft.obj -MD -MP -MF $(DEPDIR)/testDoubleIfft-testDoubleIfft.Tpo -c -o testDoubleIfft-testDoubleIfft.obj `if test -f 'testDoubleIfft.c'; then $(CYGPATH_W) 'testDoubleIfft.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleIfft.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleIfft-testDoubleIfft.Tpo $(DEPDIR)/testDoubleIfft-testDoubleIfft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleIfft.c' object='testDoubleIfft-testDoubleIfft.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleIfft_CFLAGS) $(CFLAGS) -c -o testDoubleIfft-testDoubleIfft.obj `if test -f 'testDoubleIfft.c'; then $(CYGPATH_W) 'testDoubleIfft.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleIfft.c'; fi`
+
+testFloatIfft-testFloatIfft.o: testFloatIfft.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatIfft_CFLAGS) $(CFLAGS) -MT testFloatIfft-testFloatIfft.o -MD -MP -MF $(DEPDIR)/testFloatIfft-testFloatIfft.Tpo -c -o testFloatIfft-testFloatIfft.o `test -f 'testFloatIfft.c' || echo '$(srcdir)/'`testFloatIfft.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatIfft-testFloatIfft.Tpo $(DEPDIR)/testFloatIfft-testFloatIfft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatIfft.c' object='testFloatIfft-testFloatIfft.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatIfft_CFLAGS) $(CFLAGS) -c -o testFloatIfft-testFloatIfft.o `test -f 'testFloatIfft.c' || echo '$(srcdir)/'`testFloatIfft.c
+
+testFloatIfft-testFloatIfft.obj: testFloatIfft.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatIfft_CFLAGS) $(CFLAGS) -MT testFloatIfft-testFloatIfft.obj -MD -MP -MF $(DEPDIR)/testFloatIfft-testFloatIfft.Tpo -c -o testFloatIfft-testFloatIfft.obj `if test -f 'testFloatIfft.c'; then $(CYGPATH_W) 'testFloatIfft.c'; else $(CYGPATH_W) '$(srcdir)/testFloatIfft.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatIfft-testFloatIfft.Tpo $(DEPDIR)/testFloatIfft-testFloatIfft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatIfft.c' object='testFloatIfft-testFloatIfft.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatIfft_CFLAGS) $(CFLAGS) -c -o testFloatIfft-testFloatIfft.obj `if test -f 'testFloatIfft.c'; then $(CYGPATH_W) 'testFloatIfft.c'; else $(CYGPATH_W) '$(srcdir)/testFloatIfft.c'; fi`
+
+testMatIfft-testMatIfft.o: testMatIfft.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatIfft_CFLAGS) $(CFLAGS) -MT testMatIfft-testMatIfft.o -MD -MP -MF $(DEPDIR)/testMatIfft-testMatIfft.Tpo -c -o testMatIfft-testMatIfft.o `test -f 'testMatIfft.c' || echo '$(srcdir)/'`testMatIfft.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testMatIfft-testMatIfft.Tpo $(DEPDIR)/testMatIfft-testMatIfft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testMatIfft.c' object='testMatIfft-testMatIfft.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatIfft_CFLAGS) $(CFLAGS) -c -o testMatIfft-testMatIfft.o `test -f 'testMatIfft.c' || echo '$(srcdir)/'`testMatIfft.c
+
+testMatIfft-testMatIfft.obj: testMatIfft.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatIfft_CFLAGS) $(CFLAGS) -MT testMatIfft-testMatIfft.obj -MD -MP -MF $(DEPDIR)/testMatIfft-testMatIfft.Tpo -c -o testMatIfft-testMatIfft.obj `if test -f 'testMatIfft.c'; then $(CYGPATH_W) 'testMatIfft.c'; else $(CYGPATH_W) '$(srcdir)/testMatIfft.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testMatIfft-testMatIfft.Tpo $(DEPDIR)/testMatIfft-testMatIfft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testMatIfft.c' object='testMatIfft-testMatIfft.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatIfft_CFLAGS) $(CFLAGS) -c -o testMatIfft-testMatIfft.obj `if test -f 'testMatIfft.c'; then $(CYGPATH_W) 'testMatIfft.c'; else $(CYGPATH_W) '$(srcdir)/testMatIfft.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(pkglibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pkglibLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pkglibLTLIBRARIES
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-pkglibLTLIBRARIES install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-pkglibLTLIBRARIES
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/c/signalProcessing/ifft/cifftma.c b/src/c/signalProcessing/ifft/cifftma.c
new file mode 100644
index 0000000..209cdc9
--- /dev/null
+++ b/src/c/signalProcessing/ifft/cifftma.c
@@ -0,0 +1,51 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#include <stdlib.h>
+#include "ifft.h"
+
+void cifftma ( floatComplex* in , int rows, int cols, floatComplex* out)
+{
+ int i = 0 ;
+ /* these 3 variable are created to permit to use the value in the fortran functions
+ because they need doubleComplex matrix as arguments and we can't cast directly the pointers
+ without having problems , i know that's ugly */
+ doubleComplex *dblin = NULL;
+ doubleComplex *dblout = NULL;
+
+
+
+ /* Array allocations*/
+ dblin = (doubleComplex*)malloc(sizeof(doubleComplex) * (unsigned int)(rows * cols));
+ dblout = (doubleComplex*)malloc(sizeof(doubleComplex) * (unsigned int)(rows * cols));
+
+
+
+ /*copy and cast all the floatComplex value into doubleComplex value */
+ for ( i = 0 ; i < (rows * cols) ; i ++ )
+ {
+ dblin[i] = DoubleComplex ( (double) creals( in[i]) , (double) cimags ( in[i])) ;
+ }
+
+ zifftma ( dblin, rows , cols , dblout );
+
+
+ for ( i = 0 ; i < (rows * cols) ; i++ )
+ {
+ out[i] = FloatComplex ((float) zreals ( dblout[i]) , (float) zimags ( dblout[i])) ;
+
+ }
+
+ free ( dblin);
+ free ( dblout);
+
+}
diff --git a/src/c/signalProcessing/ifft/diffbi_lavraie.c b/src/c/signalProcessing/ifft/diffbi_lavraie.c
new file mode 100644
index 0000000..d71dc8c
--- /dev/null
+++ b/src/c/signalProcessing/ifft/diffbi_lavraie.c
@@ -0,0 +1,243 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include "max.h"
+#include "ifft_internal.h"
+
+void difftbi ( double* a , double* b , int nseg , int n , int nspn ,
+ int isn , int ierr , int lout , int lnow , int lused ,
+ int lmax , int lbook , double* rstak , int* istak )
+{
+
+ int nfac[15] ;
+ int i ;
+ int in ;
+ int j = 3 ;
+ int j2 = 3 ;
+ int j3 = 3 ;
+ int jj = 9;
+ int m = 0 ;
+ int k ;
+ int kt ;
+ int kkk ;
+ int nspan ;
+ int nitems ;
+ int ntot ;
+ int maxp = 0;
+ int maxf ;
+ int itype;
+ int istkgt ;
+ int isize[] = {1,1,1,2,2} ;
+
+ int nf = abs ( n ) ;
+
+ ierr = 0 ;
+ printf ( "debut de dfftbi \n" );
+ /*determine the factors of n */
+
+
+ if ( nf == 1)
+ return ;
+
+ k = nf ;
+
+ nspan = abs ( nf*nspn ) ;
+ ntot = abs ( nspan*nseg) ;
+
+ if ( isn*ntot == 0 )
+ {
+ ierr = 1 ;
+ return ;
+ }
+
+printf ("un petit test kplop %d\n" , k - (int)(k/16)*16 ) ;
+
+ while ( (k- (int)(k/16)*16 ) == 0 )
+ {
+ m++;
+ printf ("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 );
+ do
+ {
+ while ( k%jj == 0 )
+ {
+ m++;
+ nfac[m-1] = j ;
+ k /= jj ;
+ printf ("\nm %d ,k %d j %f jj %d\n" , m , k ,j , jj);
+ }
+
+ j+=2;
+ jj= j*j ;
+
+ }while ( jj <= k);
+
+
+printf ( "ploa\n" );
+
+
+ if ( k <= 4)
+ {
+ kt = m;
+ nfac[m+1] = k;
+ if ( k != 1 )
+ m++;
+ }
+ else
+ {
+ if ( (k & 7) != 0 )
+ {
+ m++;
+ nfac[m-1] = 2 ;
+ k = k >> 2 ;
+ }
+
+ /*all square factor out now but k >= 5 still */
+ kt = m ;
+ maxp = max ( (kt+1)*2 , k-1);
+ j=2;
+ printf ( "plob\n" );
+ do
+ {
+ if ( k%j == 0 )
+ {
+ m++;
+ nfac[m-1] = j ;
+ k /= j ;
+ }
+
+ j = (j+1) | 1 ;
+
+ }while ( j <= k );
+
+ }
+
+ if ( m <= ( kt+1) )
+ maxp = m + kt + 1 ;
+
+ if ( m + kt > 15)
+ {
+ ierr = 2 ;
+ printf ( "argh return 5 \n" );
+ return ;
+ }
+ if ( kt != 0 )
+ {
+ j = kt ;
+
+ do{
+ m++;
+ nfac[m-1] = nfac[j-1];
+ j--;
+ }while ( j != 0) ;
+ }
+
+ maxf = nfac[m-kt-1] ;
+
+ if ( kt > 0 )
+ maxf = max ( nfac[kt-1] , maxf );
+
+ for ( kkk = 1 ; kkk < m ; kkk++ )
+ maxf = max ( maxf , nfac[kkk-1]);
+
+ nitems = maxf * 4 ;
+ itype = 4 ;
+
+ istkgt = ( lnow*isize[1] -1)/isize[itype-1] + 2;
+
+ i = ( (istkgt - 1 + nitems) * isize[itype-1] -1) / isize[1] + 3 ;
+ printf ("i %d ,\n lmax %d\n istkgt %d\n lnow %d \n", i , lmax , istkgt , lnow ) ;
+
+
+
+ if ( i > lmax )
+ {
+ ierr = -i ;
+ printf ( "argh return 4 -i %d \n" , -i );
+ return ;
+ }
+
+ istak[i-2] = itype ;
+ istak[i-1] = lnow ;
+ lout ++ ;
+ lnow = i ;
+ lused = max ( lused , lnow );
+
+ j = istkgt ;
+ jj = j + maxf ;
+ j2 = jj+ maxf ;
+ j3 = j2+ maxf ;
+
+ nitems = maxp ;
+ itype = 2 ;
+
+ istkgt = ( lnow*isize[1] -1)/isize[itype-1] + 2;
+
+ i = ( (istkgt - 1 + nitems) * isize[itype-1] -1) / isize[1] + 3 ;
+
+ if ( i > lmax )
+ {
+ ierr = -i ;
+ printf ( "argh return 4 -i %d \n" , -i );
+ return ;
+ }
+
+ istak[i-2] = itype ;
+ istak[i-1] = lnow ;
+ lout ++ ;
+ lnow = i ;
+ lused = max ( lused , lnow );
+
+ k = istkgt ;
+
+/*
+c la carte suivante est a supprimer si simple precision
+c next instruction commented by FD&MG (simulog residue?)
+c ********************************************
+c k=2*k-1
+c *********************************************
+*/
+
+ printf ( "dfftmx me voilà tayoooooooo \n" );
+ difftmx( 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 ;
+
+ in = 2 ;
+
+ if (!( lbook <= lnow && lnow <= lused && lused <= lmax ))
+ {
+ ierr = 3 ;
+ printf ( "argh return 6 \n" );
+ return ;
+ }
+
+ while ( in > 0)
+ {
+ if ( lbook > istak[lnow-1] || istak[lnow-1] >= lnow-1)
+ {
+ ierr = 4 ;
+ }
+
+ lout-- ;
+ lnow = istak[lnow-1] ;
+ in-- ;
+ }
+ printf ( "fin de dfftbi \n" );
+ return ;
+}
diff --git a/src/c/signalProcessing/ifft/difft2.c b/src/c/signalProcessing/ifft/difft2.c
new file mode 100644
index 0000000..f8488d3
--- /dev/null
+++ b/src/c/signalProcessing/ifft/difft2.c
@@ -0,0 +1,24 @@
+/*
+ * 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
+ *
+ */
+
+#include "ifft_internal.h"
+
+void difft2 ( double* a , double* b , int nseg , int n , int nspn , int isn , int ierr )
+{
+
+
+ difftbi ( a , b , nseg , n , nspn , isn , ierr );
+
+
+
+ return ;
+}
diff --git a/src/c/signalProcessing/ifft/difftbi.c b/src/c/signalProcessing/ifft/difftbi.c
new file mode 100644
index 0000000..2b60ef2
--- /dev/null
+++ b/src/c/signalProcessing/ifft/difftbi.c
@@ -0,0 +1,321 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include "max.h"
+#include "ifft_internal.h"
+
+
+/*
+c arrays a and b originally hold the real and imaginary
+c components of the data, and return the real and
+c imaginary components of the resulting fourier coefficients.
+c multivariate data is indexed according to the fortran
+c array element successor function, without limit
+c on the number of implied multiple subscripts.
+c the subroutine is called once for each variate.
+c the calls for a multivariate transform may be in any order.
+c
+c n is the dimension of the current variable.
+c nspn is the spacing of consecutive data values
+c while indexing the current variable.
+c nseg*n*nspn is the total number of complex data values.
+c the sign of isn determines the sign of the complex
+c exponential, and the magnitude of isn is normally one.
+c the magnitude of isn determines the indexing increment for a&b.
+c
+c if fft is called twice, with opposite signs on isn, an
+c identity transformation is done...calls can be in either order.
+c the results are scaled by 1/n when the sign of isn is positive.
+c
+c a tri-variate transform with a(n1,n2,n3), b(n1,n2,n3)
+c is computed by
+c call fft(a,b,n2*n3,n1,1,-1)
+c call fft(a,b,n3,n2,n1,-1)
+c call fft(a,b,1,n3,n1*n2,-1)
+c
+c a single-variate transform of n complex data values is computed by
+c call fft(a,b,1,n,1,-1)
+c
+c the data may alternatively be stored in a single complex
+c array a, then the magnitude of isn changed to two to
+c give the correct indexing increment and a(2) used to
+c pass the initial address for the sequence of imaginary
+c values, e.g.
+c
+c
+c array nfac is working storage for factoring n. the smallest
+c number exceeding the 15 locations provided is 12,754,584.
+c!
+*/
+
+void difftbi ( double* a , double* b , int nseg , int n , int nspn ,
+ int isn , int ierr)
+{
+
+ double* rstak ;
+ int* istak ;
+
+ int lout = 0 ;
+ int lnow = 10;
+ int lused= 10;
+
+ int lbook = 10 ;
+
+
+ int nfac[15] ;
+ int i ;
+ int in ;
+ int j = 3 ;
+ int j2 = 3 ;
+ int j3 = 3 ;
+ int jj = 9;
+ int m = 0 ;
+ int k ;
+ int kt ;
+ int kkk ;
+ int nspan ;
+ int nitems ;
+ int ntot ;
+ int maxp = 0;
+ int maxf ;
+ int itype;
+ int istkgt ;
+ int isize[] = {1,1,1,2,2} ;
+
+ int nf = abs ( n ) ;
+
+ ierr = 0 ;
+
+ /*determine the factors of n */
+
+
+ if ( nf == 1)
+ return ;
+
+ k = nf ;
+
+ nspan = abs ( nf*nspn ) ;
+ ntot = abs ( nspan*nseg) ;
+
+
+ if ( isn*ntot == 0 )
+ {
+ ierr = 1 ;
+ return ;
+ }
+
+
+
+
+ while ( (k- (int)(k/16)*16 ) == 0 )
+ {
+ m++;
+ nfac[m-1] = 4 ;
+ k = k >> 4 ;
+ }
+
+
+
+
+ do
+ {
+ while ( k%jj == 0 )
+ {
+ m++;
+ nfac[m-1] = j ;
+ k /= jj ;
+
+ }
+
+ j+=2;
+ jj= j*j ;
+
+ }while ( jj <= k);
+
+
+
+
+
+ if ( k <= 4)
+ {
+
+ kt = m;
+ nfac[m] = k;
+ if ( k != 1 )
+ m++;
+ }
+ else
+ {
+ if ( (k & 3) == 0 )
+ {
+ m++;
+ nfac[m-1] = 2 ;
+ k = k >> 2 ;
+ }
+
+ /*all square factor out now but k >= 5 still */
+ kt = m ;
+ maxp = max ( (kt+1)*2 , k-1);
+ j=2;
+
+ do
+ {
+ if ( k%j == 0 )
+ {
+
+ m++;
+ nfac[m-1] = j ;
+ k /= j ;
+ }
+
+ j = (j+1) | 1 ;
+
+ }while ( j <= k );
+
+ }
+
+
+
+ if ( m <= ( kt+1) )
+ maxp = m + kt + 1 ;
+
+
+
+ if ( m + kt > 15)
+ {
+ ierr = 2 ;
+
+ return ;
+ }
+
+
+ if ( kt != 0 )
+ {
+ j = kt ;
+
+ do{
+ m++;
+
+ nfac[m-1] = nfac[j-1];
+ j--;
+ }while ( j != 0) ;
+ }
+
+
+ maxf = nfac[m-kt-1] ;
+
+ if ( kt > 0 )
+ maxf = max ( nfac[kt-1] , maxf );
+
+
+
+
+ for ( kkk = 1 ; kkk <= m ; kkk++ )
+ {
+ maxf = max ( maxf , nfac[kkk-1]);
+
+ }
+
+
+
+
+
+
+
+ nitems = maxf * 4 ;
+ itype = 4 ;
+
+
+ istkgt = 2 + ((lnow-1)/2) ;/*lnow = 10*/
+ istkgt = 6;
+
+ /*i = ( (istkgt - 1 + nitems) * isize[3] -1) + 3 ;*/
+ i = 12 + nitems*2;
+
+
+
+ istak = (int*) malloc ( sizeof (int) * (unsigned int) i);
+
+ istak[i-2] = itype ;
+ istak[i-1] = lnow ;
+ lout ++ ;
+ lnow = i ;
+ lused = max ( lused , lnow );
+
+ j = istkgt ;
+ jj = j + maxf ;
+ j2 = jj+ maxf ;
+ j3 = j2+ maxf ;
+
+ nitems = maxp ;
+ itype = 2 ;
+
+ /*istkgt = ( lnow*isize[1] -1)/isize[1] + 2;*/
+ istkgt = lnow + 1 ;
+ /*i = ( (istkgt - 1 + nitems) * isize[1] -1) / isize[1] + 3 ;*/
+ i = ( ( lnow + nitems) * isize[1] -1) / isize[1] + 3 ;
+ istak = (int*) realloc ( istak ,sizeof (int) * (unsigned int) i);
+ rstak = (double*) malloc ( sizeof (double) * (unsigned int) i);
+
+
+
+
+
+
+ istak[i-2] = itype ;
+ istak[i-1] = lnow ;
+ lout ++ ;
+ lnow = i ;
+ lused = max ( lused , lnow );
+
+ k = istkgt ;
+
+/*
+c la carte suivante est a supprimer si simple precision
+c next instruction commented by FD&MG (simulog residue?)
+c ********************************************
+c k=2*k-1
+c *********************************************
+*/
+
+
+
+ difftmx( 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 ;
+
+ in = 2 ;
+
+ if (!( lbook <= lnow && lnow <= lused ))
+ {
+ ierr = 3 ;
+ return ;
+ }
+
+ while ( in > 0)
+ {
+ if ( lbook > istak[lnow-1] || istak[lnow-1] >= lnow-1)
+ {
+ ierr = 4 ;
+ }
+
+ lout-- ;
+ lnow = istak[lnow-1] ;
+ in-- ;
+ }
+
+ free(istak);
+ free(rstak);
+ return ;
+}
diff --git a/src/c/signalProcessing/ifft/difftma.c b/src/c/signalProcessing/ifft/difftma.c
new file mode 100644
index 0000000..9b4bc6e
--- /dev/null
+++ b/src/c/signalProcessing/ifft/difftma.c
@@ -0,0 +1,32 @@
+/*
+ * 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 "ifft.h"
+#include "zeros.h"
+
+
+void difftma ( double* in , int rows, int cols, double* out){
+ double* ZEROS;
+ doubleComplex* inCpx;
+ doubleComplex* outCpx;
+
+ ZEROS = (double*)malloc((unsigned int)(rows*cols)*sizeof(double));
+ outCpx = (doubleComplex*)malloc((unsigned int)(rows*cols)*sizeof(doubleComplex));
+
+ dzerosa(ZEROS,rows,cols);
+ inCpx=DoubleComplexMatrix(in,ZEROS,rows*cols);
+
+ zifftma(inCpx,rows,cols,outCpx);
+
+ zreala(outCpx, rows*cols, out);
+}
diff --git a/src/c/signalProcessing/ifft/difftmx.c b/src/c/signalProcessing/ifft/difftmx.c
new file mode 100644
index 0000000..a2cce1b
--- /dev/null
+++ b/src/c/signalProcessing/ifft/difftmx.c
@@ -0,0 +1,1253 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#include <stdlib.h>
+#include <math.h>
+#include "max.h"
+#include "min.h"
+#include "ifft_internal.h"
+
+
+/*c'est moche je sais */
+
+static double* a ;
+static double* b ;
+static int ntot ;
+static int n ;
+static int nspan ;
+static int isn ;
+static int m ;
+static int kt ;
+static double* wt ;
+static double* ck ;
+static double* bt ;
+static double* sk ;
+static int* np ;
+static int* nfac ;
+static int inc ;
+static int nt ;
+static int ks ;
+
+static double rad ;
+static double c72 ;
+static double s72 ;
+static double s120 ;
+
+static double aa ;
+static double ak ;
+static double akm ;
+static double akp ;
+static double aj ;
+static double ajp ;
+static double ajm ;
+
+static double bb ;
+static double bk ;
+static double bkm ;
+static double bkp ;
+static double bj ;
+static double bjp ;
+static double bjm ;
+static double dr ;
+
+static double cd ;
+static double c1 ;
+static double c2 ;
+static double c3 ;
+
+static double sd ;
+static double s1 ;
+static double s2 ;
+static double s3 ;
+
+static int kspan ;
+static int nn ;
+static int jc ;
+static int klim ;
+static int jf ;
+static int maxf ;
+static int kk ;
+static int k ;
+static int k1 ;
+static int k2 ;
+static int k3 ;
+static int k4 ;
+static int mm ;
+static int kspnn ;
+static int i ;
+static int j ;
+static int jj;
+
+/* Prototypes */
+
+static void preliminaryWork (void);
+static void permute_stage1 (void);
+static void permute_stage2 (void);
+static void f4t_150 (void);
+static void factorOf3Transform (void) ;
+static void factorOf5Transform (void) ;
+static void preFOtherTransform (void);
+static void factorOfOtherTransform (void);
+static void pre_sqFactor2NormlOrder (void);
+static void nonSqFactor2NormOrder (void) ;
+static void detPermutCycles (void);
+static void reorderMatrix (void ) ;
+
+static int f4t_170 (void);
+static int factorTransform (void);
+static int pre_fOf2Trans (void);
+static int factorOf2Transform (void);
+static int factorOf4Transform (void);
+static int mulByRotationFactor (void );
+static int post_sqFactor2NormlOrder (void);
+static void single_sqFactor2NormlOrder (void);
+static int multi_sqFactor2NormlOrder (void);
+
+/* End Prototypes */
+
+
+
+int difftmx ( double* _pdblA , double* _pdblB , int _iNtot, int _iN, int _iNspan,
+ int _iIsn, int _iM, int _iKt, double* _pdblWt, double* _pdblCk,
+ double* _pdblBt, double* _pdblSk, int* _piNp, int* _piNfac)
+{
+
+ int retVal = 0 ;
+ int iii = 0 ;
+ a = _pdblA ;
+ b = _pdblB ;
+
+ ntot = _iNtot ;
+ n = _iN ;
+ nspan= _iNspan ;
+ isn = _iIsn;
+ m = _iM ;
+ kt = _iKt ;
+ wt = _pdblWt ;
+ ck = _pdblCk;
+ bt = _pdblBt;
+ sk = _pdblSk;
+ np = _piNp;
+ nfac = _piNfac;
+
+ inc = abs ( isn ) ;
+ nt = inc*ntot ;
+ ks = inc*nspan;
+ rad = atan (1.0);
+
+ c72 = cos (rad/0.6250);
+ s72 = sin (rad/0.6250);
+ s120= sqrt(0.750);
+
+
+
+
+
+
+
+ preliminaryWork () ;
+
+
+ while ( retVal == 0 )
+ {
+
+ retVal = factorTransform ( ) ;
+ }
+
+
+ np[0] = ks ;
+
+ if ( kt != 0)
+ {
+
+ permute_stage1 ( ) ;
+ }
+
+ if ( 2*kt + 1 < m )
+ {
+
+ permute_stage2 ( ) ;
+ }
+
+
+/* lines under are just for my own conveniance */
+ for ( iii = 0 ; iii < 3 ; iii++)
+ {
+
+
+
+ }
+
+ _pdblA = a ;
+ _pdblB = b ;
+
+ return 0 ;
+}
+
+/** **************************************
+Sous-Fonctions
+******************************************/
+
+
+
+
+static void preliminaryWork (void)
+{
+
+ int lim ;
+
+
+
+ ak =(double) 1/n ;
+
+ /*scale by 1/n for isn > 0 */
+ for ( j = 1 ; j <= nt ; j += inc )
+ {
+ a[j-1] *= ak ;
+ b[j-1] *= ak ;
+
+ }
+ kspan = ks ;
+ nn = nt -inc ;
+ jc = ks/n ;
+
+ /* sin , cos values are re-initialized each lim steps */
+
+ lim = 32 ;
+ klim = lim*jc ;
+ i = 0;
+ jf = 0 ;
+
+ maxf = m -kt ;
+ maxf = nfac[maxf-1] ;
+
+
+
+ if ( kt > 0 )
+ maxf = max ( nfac[kt-1] , maxf );
+
+
+}
+
+
+/*40*/
+/* this function is call as many time as dfftbi has determined factor for the size of the input vector
+ each time we call a transform function for each kind of factor , we begin by the smallest
+ factor are stored in nfac
+ */
+
+static int factorTransform (void)
+{
+
+ int retVal = 42;
+
+ dr = 8 * (double)jc/(double)kspan ;
+ cd = 2 * sin(0.5*dr*rad)*sin(0.5*dr*rad);
+ sd = sin(dr*rad) ;
+ kk = 1 ;
+ i++ ;
+
+
+
+
+switch ( nfac[i-1] )
+ {
+ case 2 :
+ /*transform for factor of 2 (including rotation factor)*/
+
+ retVal = pre_fOf2Trans() ;
+ if ( retVal == 0 ) factorOf2Transform () ;
+
+ break ;
+
+ case 4 :
+ /*transform for factor of 4 */
+ kspnn = kspan ;
+ kspan = kspan >> 2 ; /*kspan /= 4 */
+
+ retVal = factorOf4Transform () ;
+ break ;
+
+ case 3 :
+ /*transform for factor of 3 */
+ k = nfac[i-1] ;
+ kspnn = kspan ;
+ kspan = kspan / k ;
+
+ factorOf3Transform ( ) ;
+ break ;
+
+ case 5 :
+ /*transform for factor of 5 */
+ k = nfac[i-1] ;
+ kspnn = kspan ;
+ kspan = kspan / k ;
+
+ factorOf5Transform ( ) ;
+ break ;
+
+ default :
+
+ k = nfac[i-1] ;
+ kspnn = kspan ;
+ kspan = kspan / k ;
+
+ if ( nfac[i-1] != jf) preFOtherTransform ( ) ;
+
+ factorOfOtherTransform ( ) ;
+ break ;
+ }
+
+
+
+ if ( retVal == 42 )
+ {
+ if ( i != m) retVal = mulByRotationFactor ( ) ;
+ else retVal = 1 ;
+ }
+
+ if ( retVal == 1 ) return 1 ; /*goto permute */
+ else return 0 ; /*goto factor_transform => once again*/
+
+}
+
+/* permutation for square factor of n */
+static void permute_stage1 (void)
+{
+
+ int retVal = 1 ;
+
+ pre_sqFactor2NormlOrder () ;
+
+ if ( n == ntot )
+ /*permutation for single-variate transform (optional code)*/
+ while ( retVal == 1)
+ {
+ single_sqFactor2NormlOrder () ;
+ retVal = post_sqFactor2NormlOrder () ;
+ }
+ else
+ /*permutation for multivariate transform*/
+ while ( retVal == 1) retVal = multi_sqFactor2NormlOrder ();
+
+}
+
+static void permute_stage2 (void)
+{
+ kspnn = np[kt] ;
+
+ /*permutation for square-free facotrs of n */
+ nonSqFactor2NormOrder () ;
+
+ /*determine the permutation cycles of length greater than 1*/
+ detPermutCycles ();
+
+ j = k3 + 1;
+ nt -= kspnn ;
+ i = nt - inc + 1 ;
+ while ( nt >= 0 )
+ {
+ reorderMatrix ( ) ;
+
+ j = k3 + 1 ;
+ nt -= kspnn ;
+ i = nt - inc + 1 ;
+ }
+}
+
+/*****************************************
+Sous-Sous-Fonctions
+******************************************/
+
+
+
+
+
+static int pre_fOf2Trans (void)
+{
+ kspan /= 2;
+ k1 = kspan + 2 ;
+ /*50*/
+ do{
+ do{
+ k2 = kk + kspan ;
+ ak = a[k2-1] ;
+ bk = b[k2-1] ;
+
+ a[k2-1] = a[kk-1] - ak;
+ b[k2-1] = b[kk-1] - bk;
+
+ a[kk-1] = a[kk-1] + ak;
+ b[kk-1] = b[kk-1] + bk;
+
+ kk = k2 + kspan ;
+ }while (kk <= nn);
+
+ kk -= nn ;
+ }while (kk <= jc);
+
+
+ if ( kk > kspan ) return 1 ; /*goto350*/
+ else return 0 ; /*goto60*/
+
+
+}
+
+
+
+static int factorOf2Transform (void)
+{
+ do /*60*/ {/*while ( kk <= jc*2 )*/
+ c1 = 1 - cd ;
+ s1 = sd ;
+ mm = min( k1/2 , klim);
+
+ do/* do 80 */ {/*while ( kk <= mm || ( kk > mm && kk < k2 ))*/
+ do {/*while(kk > k2) */
+ do { /*while ( kk < nt )*/
+ k2 = kk + kspan;
+
+ ak = a[kk-1] - a[k2-1];
+ bk = b[kk-1] - b[k2-1];
+
+ a[kk-1] = a[kk-1] + a[k2-1];
+ b[kk-1] = b[kk-1] + b[k2-1];
+
+ a[k2-1] = c1*ak - s1*bk;
+ b[k2-1] = s1*ak + c1*bk;
+
+ kk = k2 + kspan;
+ }while ( kk < nt );
+
+ k2 = kk - nt;
+ c1 = -c1;
+ kk = k1 - k2;
+
+
+ }while (kk > k2);
+
+ kk += jc;
+
+ if ( kk <= mm ) /* 70 */
+ {
+ ak = c1 - ( cd*c1+sd*s1) ;
+ s1 += (sd*c1-cd*s1) ;
+ /*c the following three statements compensate for truncation
+ c error. if rounded arithmetic is used, substitute
+ c c1=ak*/
+ c1 = 0.5/(ak*ak+s1*s1) + 0.5 ;
+ s1 *= c1 ;
+ c1 *= ak ;
+ }
+ else {
+ if ( kk < k2 ) /*90*/ {
+ s1 = dr*rad*((double)(kk-1)/(double)jc);
+ c1 = cos(s1) ;
+ s1 = sin(s1) ;
+ mm = min(k1/2,mm+klim);
+ }
+ }
+
+ } while ( kk <= mm || ( kk > mm && kk < k2 ));
+
+ k1 += (inc+inc) ;
+ kk = (k1-kspan)/2 + jc;
+
+ } while ( kk <= jc*2 );
+
+
+ return 0 ; /*goto40*/
+}
+
+
+/* this one is just an optimisation of the factor of 2 transform , we compute more things each turn */
+
+static int factorOf4Transform (void)
+{
+ int return_value = 0 ;
+
+ /*120*/
+ do
+ {
+ c1 = 1 ;
+ s1 = 0 ;
+
+ mm = min ( kspan , klim ) ;
+
+ do
+ {
+ f4t_150 () ;
+ return_value = f4t_170 () ;
+ } while ( return_value == 0 );
+
+ kk += ( inc - kspan ) ;
+ } while ( kk <= jc ) ;
+
+
+
+ if ( kspan == jc )
+ return 1 ; /*goto350*/
+ else
+ return 0 ;/*goto40*/
+
+
+}
+
+/*this function and the following are just here for conveniance , they just do fourier transformation for factor of 4
+ but as the code was a bit long in factorof4transform , we've created two sub-functions */
+
+static void f4t_150 (void)
+{
+
+ do{
+ k1 = kk + kspan ;
+ k2 = k1 + kspan ;
+ k3 = k2 + kspan ;
+
+ akp = a[kk-1] + a[k2-1] ;
+ akm = a[kk-1] - a[k2-1] ;
+
+ ajp = a[k1-1] + a[k3-1] ;
+ ajm = a[k1-1] - a[k3-1] ;
+
+ a[kk-1] = akp + ajp ;
+ ajp = akp - ajp ;
+
+ bkp = b[kk-1] + b[k2-1] ;
+ bkm = b[kk-1] - b[k2-1] ;
+
+ bjp = b[k1-1] + b[k3-1] ;
+ bjm = b[k1-1] - b[k3-1] ;
+
+ b[kk-1] = bkp + bjp ;
+ bjp = bkp - bjp ;
+
+ akp = akm - bjm ;
+ akm = akm + bjm ;
+
+ bkp = bkm + ajm ;
+ bkm = bkm - ajm ;
+
+ if ( s1 == 0 )/*190*/
+ {
+ a[k1-1] = akp ;
+ a[k2-1] = ajp ;
+ a[k3-1] = akm ;
+
+ b[k1-1] = bkp ;
+ b[k2-1] = bjp ;
+ b[k3-1] = bkm ;
+
+
+ }
+ else /*160*/
+ {
+
+ a[k1-1] = akp*c1 - bkp*s1 ;
+ a[k2-1] = ajp*c2 - bjp*s2 ;
+ a[k3-1] = akm*c3 - bkm*s3 ;
+
+ a[k1-1] = bkp*c1 + akp*s1 ;
+ a[k2-1] = bjp*c2 + ajp*s2 ;
+ a[k3-1] = bkm*c3 + akm*s3 ;
+ }
+ kk=k3+kspan;
+ }while ( kk <= nt ) ;
+
+
+}
+
+static int f4t_170 (void)
+{
+ kk += ( jc - nt ) ;
+
+ if ( kk <= mm )
+ {
+ c2 = c1 - (cd*c1 + sd*s1);
+ s1 = s1 + (sd*c1 - cd*s1);
+
+ /*
+ the following three statements compensate for truncation
+ error. if rounded arithmetic is used, substitute
+ c1=c2
+ */
+
+ c1 = 0.5/(c2*c2+s1*s1) + 0.5 ;
+ s1 *= c1 ;
+ c1 *= c2 ;
+
+ /*140*/
+
+ c2 = c1*c1 - s1*s1 ;
+ s2 = c1*s1*2 ;
+ c3 = c2*c1 - s2*s1 ;
+ s3 = c2*s1 + s2*c1 ;
+
+
+ return 0 ;
+
+ }
+ else
+ {
+ if ( kk <= kspan )
+ {
+ s1 = dr*rad * (kk-1)/jc ;
+ c1 = cos (s1) ;
+ s1 = sin (s1) ;
+ mm = min ( kspan , mm + klim );
+
+ /*140*/
+
+ c2 = c1*c1 - s1*s1 ;
+ s2 = c1*s1*2 ;
+ c3 = c2*c1 - s2*s1 ;
+ s3 = c2*s1 + s2*c1 ;
+
+ return 0 ;
+ }
+ }
+
+ return 1 ;
+}
+
+
+
+
+static void factorOf3Transform (void)
+{
+ do{
+ do{
+ k1 = kk + kspan ;
+ k2 = k1 + kspan ;
+
+ ak = a[kk-1] ;
+ bk = b[kk-1] ;
+
+ aj = a[k1-1] + a[k2-1] ;
+ bj = b[k1-1] + b[k2-1] ;
+
+ a[kk-1] = ak + aj ;
+ b[kk-1] = bk + bj ;
+
+ ak = -0.5*aj + ak ;
+ bk = -0.5*bj + bk ;
+
+ aj = (a[k1-1] - a[k2-1])*s120 ;
+ bj = (b[k1-1] - b[k2-1])*s120 ;
+
+ a[k1-1] = ak - bj ;
+ b[k1-1] = bk + aj ;
+ a[k2-1] = ak + bj ;
+ b[k2-1] = bk - aj ;
+
+ kk = k2 + kspan ;
+ } while (kk < nn);
+
+ kk -= nn ;
+ }while (kk <= kspan);
+
+}
+
+static void factorOf5Transform (void)
+{
+ c2 = c72*c72 - s72 *s72 ;
+ s2 = 2 * c72*s72;
+
+ do{
+ do{
+ k1 = kk + kspan ;
+ k2 = k1 + kspan ;
+ k3 = k2 + kspan ;
+ k4 = k3 + kspan ;
+
+
+
+ akp = a[k1-1] + a[k4-1] ;
+ akm = a[k1-1] - a[k4-1] ;
+
+ bkp = b[k1-1] + b[k4-1] ;
+ bkm = b[k1-1] - b[k4-1] ;
+
+ ajp = a[k2-1] + a[k3-1] ;
+ ajm = a[k2-1] - a[k3-1] ;
+
+ bjp = b[k2-1] + b[k3-1] ;
+ bjm = b[k2-1] - b[k3-1] ;
+
+ aa = a[kk-1] ;
+ bb = b[kk-1] ;
+
+ a[kk-1] = aa + akp + ajp;
+ b[kk-1] = bb + bkp + bjp;
+
+ ak = akp*c72 + ajp*c2 + aa ;
+ bk = bkp*c72 + bjp*c2 + bb ;
+
+ aj = akm*s72 + ajm*s2 ;
+ bj = bkm*s72 + bjm*s2 ;
+
+ a[k1-1] = ak - bj ;
+ a[k4-1] = ak + bj ;
+ b[k1-1] = bk + aj ;
+ b[k4-1] = bk - aj ;
+
+ ak = akp*c2 + ajp*c72 + aa ;
+ bk = bkp*c2 + bjp*c72 + bb ;
+
+ aj = akm*s2 - ajm*s72 ;
+
+ bj = bkm*s2 - bjm*s72 ;
+
+ a[k2-1] = ak - bj ;
+ a[k3-1] = ak + bj ;
+ b[k2-1] = bk + aj ;
+ b[k3-1] = bk - aj ;
+
+ kk = k4 + kspan;
+ }while (kk < nn);
+
+ kk -= nn ;
+ }while (kk <= kspan);
+}
+
+/* this function is the general case of non factor of 2 factor , the factorof3transform and factorof5trandform are just
+special case of this one */
+
+
+static void preFOtherTransform (void)
+{
+ jf = k ;
+ s1 = (rad*8)/k ;
+ c1 = cos (s1) ;
+ s1 = sin (s1) ;
+ ck[jf-1] = 1 ;
+ sk[jf-1] = 0 ;
+ j = 1 ;
+
+ do
+ {
+ ck[j-1] = ck[k-1] * c1 + sk[k-1]*s1 ;
+ sk[j-1] = ck[k-1] * s1 - sk[k-1]*c1 ;
+
+ k -- ;
+
+ ck[k-1] = ck[j-1] ;
+ sk[k-1] = - sk[j-1] ;
+
+ j++ ;
+
+ }while ( j < k );
+
+}
+
+static void factorOfOtherTransform (void)
+{
+int ktemp = 0 ;
+
+do
+ {
+ k1 = kk ;
+ k2 = kk + kspnn ;
+
+ aa = a[kk-1] ;
+ bb = b[kk-1] ;
+
+ ak = aa ;
+ bk = bb ;
+ j = 1 ;
+ k1 += kspan ;
+
+ do
+ {
+ k2 -= kspan ;
+ j++ ;
+
+ wt[j-1] = a[k1-1] + a[k2-1] ;
+ ak = wt[j-1] + ak ;
+
+ bt[j-1] = b[k1-1] + b[k2-1] ;
+ bk = bt[j-1] + bk ;
+ j++ ;
+
+ wt[j-1] = a[k1-1] - a[k2-1] ;
+ bt[j-1] = b[k1-1] - b[k2-1] ;
+
+ k1 += kspan;
+ }while ( k1 < k2 ) ;
+
+ a[kk-1] = ak ;
+ b[kk-1] = bk ;
+
+ k1 = kk ;
+ k2 = kk + kspnn ;
+ j = 1 ;
+
+ do
+ {
+ k1 += kspan ;
+ k2 -= kspan ;
+ jj = j ;
+ ak = aa ;
+ bk = bb ;
+ aj = 0 ;
+ bj = 0 ;
+ k = 1 ;
+
+ do
+ {
+ k++ ;
+ ak += ( wt[k-1] * ck[jj-1] ) ;
+ bk += ( bt[k-1] * ck[jj-1] ) ;
+
+ k++ ;
+ aj += (wt[k-1] * sk[jj-1]) ;
+ bj += (bt[k-1] * sk[jj-1]) ;
+ jj += j ;
+
+ if ( jj > jf )
+ jj -= jf ;
+ } while ( k < jf ) ;
+
+ k = jf - j ;
+ a[k1-1] = ak - bj ;
+ b[k1-1] = bk + aj ;
+ a[k2-1] = ak + bj ;
+ b[k2-1] = bk - aj ;
+
+ j++ ;
+
+ }while ( j < k ) ;
+
+
+
+
+
+ kk += kspnn ;
+ ktemp = kk ;
+
+ if ( kk > nn )
+ {
+ kk -= nn;
+ }
+
+}while ( ktemp <= nn || (kk <= kspan && ( ktemp > nn)) );
+}
+
+
+
+
+static int mulByRotationFactor (void )
+{
+ int ktemp = 0 ;
+
+ if ( i != m )
+ {
+ kk = jc + 1 ;
+
+ /*300*/
+ do
+ {
+ c2 = 1 - cd ;
+ s1 = sd ;
+
+ mm = min ( kspan , klim ) ;
+
+ /*320 */
+ do
+ {
+
+ c1 = c2 ;
+ s2 = s1 ;
+ kk += kspan ;
+
+ do
+ {
+
+ ak = a[kk-1] ;
+ a[kk-1] = c2*ak - s2*b[kk-1] ;
+ b[kk-1] = s2*ak + c2*b[kk-1] ;
+
+ kk += kspnn ;
+ ktemp = kk ;
+
+
+ if ( kk > nt )
+ {
+ ak = s1*s2 ;
+ s2 = s1*c2 + s2*c1 ;
+ c2 = c1*c2 - ak ;
+ kk += (kspan - nt ) ;
+
+
+
+ }
+
+ }while (ktemp <= nt || ( kk <= kspnn && ktemp > nt )) ;
+
+ kk += ( jc - kspnn );
+
+
+ if ( kk <= mm )
+ {
+
+ /* 310*/
+ c2 = c1 - ( cd*c1 + sd*s1 ) ;
+ s1 += (sd*c1 - cd*s1 ) ;
+
+ /*
+ the following three statements compensate for truncation
+ error. if rounded arithmetic is used, substitute
+ c1=c2
+ */
+
+ c1 = 0.5/(c2*c2+s1*s1) + 0.5 ;
+ s1 *= c1 ;
+ c2 *= c1 ;
+ }
+ else
+ {
+ if ( kk <= kspan )
+ {
+
+ s1 = dr*rad * (kk-1)/jc ;
+ c2 = cos (s1) ;
+ s1 = sin (s1) ;
+ mm = min ( kspan , mm + klim );
+ }
+ }
+
+ }while ( kk <= mm ||( kk <= kspan && kk > mm ) ) ;
+
+ kk += (jc + inc -kspan );
+
+
+ }while ( kk <= jc+jc);
+
+
+ return 0 ; /* goto40 */
+ }
+
+ return 1 ; /* goto350*/
+}
+
+
+
+
+static void pre_sqFactor2NormlOrder (void)
+{
+
+ k = kt + kt + 1 ;
+
+ if ( m < k )
+ k -- ;
+
+ j = 1 ;
+ np[k] = jc ;
+
+ do
+ {
+ np[j] = np[j-1]/nfac[j-1] ;
+ np[k-1] = np[k]*nfac[j-1] ;
+
+ j++ ;
+ k-- ;
+ }while ( j < k ) ;
+
+ k3 = np[k] ;
+ kspan = np[1] ;
+ kk = jc + 1 ;
+ k2 = kspan + 1 ;
+ j = 1;
+
+
+}
+
+static int post_sqFactor2NormlOrder (void)
+{
+
+ do
+ {
+ do
+ {
+ k2 -= np[j-1] ;
+ j++ ;
+ k2 += np[j] ;
+
+ } while ( k2 > np[j-1]);
+
+ j = 1 ;
+
+/* 390 */
+ do
+ {
+ if ( kk < k2 )
+ {
+
+
+ return 1 ;
+ }
+ else
+ {
+ kk += inc ;
+ k2 += kspan ;
+ }
+ }while( k2 < ks );
+
+ }while ( kk < ks ) ;
+
+ jc = k3 ;
+
+ return 0;
+}
+
+
+/* appeler cetter fonction dans un do while valeur_retour != 1)*/
+static void single_sqFactor2NormlOrder (void)
+{
+
+
+ do
+ {
+
+ ak = a[kk-1] ;
+ a[kk-1] = a[k2-1] ;
+ a[k2-1] = ak ;
+
+ bk = b[kk-1] ;
+ b[kk-1] = b[k2-1] ;
+ b[k2-1] = bk ;
+
+ kk += inc ;
+ k2 += kspan ;
+ } while ( k2 < ks );
+
+ /*380*/
+}
+
+/*idem que single_ */
+static int multi_sqFactor2NormlOrder (void)
+{
+
+
+
+ k = kk + jc ;
+
+ do /*410*/
+ {
+ ak = a[kk-1] ;
+ a[kk-1] = a[k2-1] ;
+ a[k2-1] = ak ;
+ bk = b[kk-1] ;
+ b[kk-1] = b[k2-1] ;
+ b[k2-1] = bk ;
+ kk += inc ;
+ k2 += kspan ;
+ } while ( kk < k );
+
+ kk += (ks - jc ) ;
+ k2 += (ks - jc ) ;
+
+ if ( kk < nt )
+ return 1 ;
+
+ k2 += ( kspan - nt );
+ kk += ( jc - nt );
+
+ if ( k2 < ks )
+ {
+
+ return 1 ;
+ }
+ if( post_sqFactor2NormlOrder ( ) == 1 )
+ {
+
+ return 1 ;
+ }
+ jc = k3 ;
+
+ return 0;
+
+}
+
+
+
+static void nonSqFactor2NormOrder (void)
+{
+
+ j = m - kt ;
+ nfac[j] = 1 ;
+
+
+
+ do
+ {
+ nfac[j-1] *= nfac[j] ;
+
+ j-- ;
+
+
+ }while ( j != kt ) ;
+
+ kt ++ ;
+ nn = nfac[kt-1] - 1;
+
+ jj = 0 ;
+ j = 0;
+
+ /*480*/
+
+ k2 = nfac[kt-1] ;
+ k = kt + 1 ;
+ kk = nfac[k-1] ;
+ j ++ ;
+
+ while ( j <= nn )
+ {
+ jj += kk ;
+
+
+ while ( jj >= k2 )
+ {
+ jj -= k2 ;
+ k2 = kk ;
+ k++ ;
+ kk = nfac[k-1] ;
+
+ jj += kk ;
+
+
+ }
+
+ np[j-1] = jj ;
+ k2 = nfac[kt-1] ;
+ k = kt + 1 ;
+ kk = nfac[k-1] ;
+ j ++ ;
+
+ }
+
+ j = 0 ;
+
+ return ;
+}
+
+/* here we determine how many permutation cycles we need to do */
+static void detPermutCycles (void)
+{
+
+ do
+ {
+ do
+ {
+ j++ ;
+
+ kk = np[j-1] ;
+ }while ( kk < 0 ) ;
+
+
+ if ( kk != j )
+ {
+ do
+ {
+
+ k = kk ;
+ kk = np[k-1] ;
+ np[k-1] = -kk ;
+ }while ( kk != j ) ;
+ k3 = kk ;
+ }
+ else
+ np[j-1] = -j ;
+ }while ( j != nn );
+
+ maxf *= inc ;
+
+ return ;
+}
+
+static void reorderMatrix (void)
+{
+do
+ {
+ do
+ {
+ j-- ;
+
+ }while (np[j-1] < 0 ) ;
+
+ jj = jc ;
+
+ /*520*/
+ do
+ {
+ kspan = jj ;
+
+ if ( jj > maxf )
+ kspan = maxf ;
+
+ jj -= kspan ;
+ k = np [j-1];
+ kk = jc*k + i + jj ;
+ k1 = kk + kspan ;
+ k2 = 0 ;
+
+ do /*530*/
+ {
+ k2 ++ ;
+ wt[k2-1] = a[k1-1] ;
+ bt[k2-1] = b[k1-1] ;
+ k1 -= inc ;
+
+ }while ( k1 != kk );
+
+ do
+ {
+ k1 = kk + kspan ;
+ k2 = k1 - jc * (k + np[k-1]);
+ k = -np[k-1];
+
+
+ do
+ {
+ a[k1-1] = a[k2-1] ;
+ b[k1-1] = b[k2-1] ;
+
+ k1 -= inc ;
+ k2 -= inc ;
+
+ }while ( k1 != kk ) ;
+
+ kk = k2 ;
+
+ }while ( k != j );
+
+ k1 = kk +kspan ;
+ k2 = 0 ;
+ /*560*/
+
+ do
+ {
+ k2 ++ ;
+ a[k1-1] = wt[k2-1] ;
+ b[k1-1] = bt[k2-1] ;
+ k1 -= inc ;
+
+
+ }while ( k1 != kk ) ;
+
+ } while ( jj != 0 ) ;
+}while ( j != 1 ) ;
+
+ return ;
+}
+
+
diff --git a/src/c/signalProcessing/ifft/ifft842.c b/src/c/signalProcessing/ifft/ifft842.c
new file mode 100644
index 0000000..75f6e1c
--- /dev/null
+++ b/src/c/signalProcessing/ifft/ifft842.c
@@ -0,0 +1,163 @@
+/*
+ * 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
+ *
+ */
+
+#include "ifft_internal.h"
+
+
+
+/* get binary log of integer argument; exact if n a power of 2 */
+static int fastlog2( int n)
+{
+ int log = -1;
+ while(n) {
+ log++;
+ n >>= 1;
+ }
+ return(log);
+}
+
+/*
+ int in; FORWARD or INVERSE
+ int n; length of vector
+ DPCOMPLEX *b; input vector
+*/
+void ifft842 (doubleComplex* b, int size , int in)
+{
+ double fn;
+ doubleComplex temp ;
+
+ int L[16],L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15;
+ int j1,j2,j3,j4,j5,j6,j7,j8,j9,j10,j11,j12,j13,j14;
+ int i = 0, j, ij, ji, ij1, ji1;
+ int n2pow, n8pow, nthpo, ipass, nxtlt, lengt;
+
+ n2pow = fastlog2( size );
+ nthpo = size ;
+ fn = nthpo;
+
+
+ if(in==INVERSE)
+ /*scramble inputs*/
+
+ for(i=0,j=size/2;j<size;i++,j++)
+ {
+ temp = DoubleComplex ( zreals ( b[j] ) , zimags( b[j] ));
+ b[j] = DoubleComplex ( zreals ( b[i] ) , zimags( b[i] ));
+ b[i] = DoubleComplex ( zreals ( temp ) , zimags( temp ));
+
+ /*
+ r = b[j].re; fi = b[j].im;
+ b[j].re = b[i].re; b[j].im = b[i].im;
+ b[i].re = r; b[i].im = fi;
+ */
+ }
+
+ n8pow = n2pow/3;
+
+ if(n8pow)
+ {
+ /* radix 8 iterations */
+ for(ipass=1;ipass<=n8pow;ipass++)
+ {
+ nxtlt = 0x1 << (n2pow - 3*ipass);
+ lengt = 8*nxtlt;
+
+
+
+ ir8tx(nxtlt,nthpo,lengt,
+ b,b+nxtlt,b+2*nxtlt,
+ b+3*nxtlt,b+4*nxtlt,b+5*nxtlt,
+ b+6*nxtlt,b+7*nxtlt);
+
+
+ }
+ }
+
+ if(n2pow%3 == 1)
+ {
+ /* radix 2 iteration needed */
+ ir2tx(nthpo,b,b+1);
+
+
+ }
+
+
+ if(n2pow%3 == 2)
+ {
+ /* radix 4 iteration needed */
+
+ ir4tx(nthpo,b,b+1,b+2,b+3);
+ }
+
+
+
+ for(j=1;j<=15;j++)
+ {
+ L[j] = 1;
+ if(j-n2pow <= 0) L[j] = 0x1 << (n2pow + 1 - j);
+ }
+ L15=L[1];L14=L[2];L13=L[3];L12=L[4];L11=L[5];L10=L[6];L9=L[7];
+ L8=L[8];L7=L[9];L6=L[10];L5=L[11];L4=L[12];L3=L[13];L2=L[14];L1=L[15];
+
+ ij = 1;
+
+
+ for(j1=1;j1<=L1;j1++)
+ for(j2=j1;j2<=L2;j2+=L1)
+ for(j3=j2;j3<=L3;j3+=L2)
+ for(j4=j3;j4<=L4;j4+=L3)
+ for(j5=j4;j5<=L5;j5+=L4)
+ for(j6=j5;j6<=L6;j6+=L5)
+ for(j7=j6;j7<=L7;j7+=L6)
+ for(j8=j7;j8<=L8;j8+=L7)
+ for(j9=j8;j9<=L9;j9+=L8)
+ for(j10=j9;j10<=L10;j10+=L9)
+ for(j11=j10;j11<=L11;j11+=L10)
+ for(j12=j11;j12<=L12;j12+=L11)
+ for(j13=j12;j13<=L13;j13+=L12)
+ for(j14=j13;j14<=L14;j14+=L13)
+ for(ji=j14;ji<=L15;ji+=L14)
+
+ {
+ ij1 = ij-1;
+ ji1 = ji-1;
+
+ if(ij-ji<0)
+ {
+ temp = b[ij1];
+ b[ij1] = b[ji1];
+ b[ji1] = temp;
+
+ /*
+ r = b[ij1].re;
+ b[ij1].re = b[ji1].re;
+ b[ji1].re = r;
+ fi = b[ij1].im;
+ b[ij1].im = b[ji1].im;
+ b[ji1].im = fi;
+ */
+ }
+ ij++;
+ }
+
+
+
+ if(in==INVERSE) /* scale outputs */
+ {
+ for(i=0;i<nthpo;i++)
+ {
+ b[i] = DoubleComplex ( zreals( b[i] )/fn , zimags(b[i])/fn);
+ fn *= -1 ;
+ }
+ }
+
+}
diff --git a/src/c/signalProcessing/ifft/ifft_internal.h b/src/c/signalProcessing/ifft/ifft_internal.h
new file mode 100644
index 0000000..7b920aa
--- /dev/null
+++ b/src/c/signalProcessing/ifft/ifft_internal.h
@@ -0,0 +1,44 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#ifndef __IFFT_INTERNAL_H__
+#define __IFFT_INTERNAL_H__
+
+
+#include "addition.h"
+#include "subtraction.h"
+
+#define FORWARD 0
+#define INVERSE 1
+void difft2 ( double* a , double* b , int nseg , int n , int nspn ,
+ int isn , int ierr);
+
+
+
+void difftbi ( double* a , double* b , int nseg , int n , int nspn ,
+ int isn , int ierr );
+
+void ifft842 (doubleComplex* b, int size , int in);
+
+void ir2tx(int nthpo, doubleComplex* c0, doubleComplex* c1);
+void ir4tx( int nthpo, doubleComplex* c0, doubleComplex* c1, doubleComplex* c2, doubleComplex* c3);
+void ir8tx ( int nxtlt,int nthpo,int lengt,
+ doubleComplex* cc0,doubleComplex* cc1,doubleComplex* cc2,doubleComplex* cc3,
+ doubleComplex* cc4,doubleComplex* cc5,doubleComplex* cc6,doubleComplex* cc7);
+
+int difftmx ( double* _pdblA , double* _pdblB , int _iNtot, int _iN, int _iNspan,
+ int _iIsn, int _iM, int _iKt, double* _pdblWt, double* _pdblCk,
+ double* _pdblBt, double* _pdblSk, int* _piNp, int* _piNfac);
+
+
+
+#endif /* !__IFFT_INTERNAL_H__ */
diff --git a/src/c/signalProcessing/ifft/ir2tx.c b/src/c/signalProcessing/ifft/ir2tx.c
new file mode 100644
index 0000000..6602f77
--- /dev/null
+++ b/src/c/signalProcessing/ifft/ir2tx.c
@@ -0,0 +1,46 @@
+/*
+ * 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
+ *
+ */
+
+#include "ifft_internal.h"
+/*
+** radix 2 iteration subroutine
+*/
+void ir2tx(int nthpo, doubleComplex* c0, doubleComplex* c1)
+{
+ int kk;
+ /* double *cr0, *ci0, *cr1, *ci1, r1, fi1;*/
+ doubleComplex temp ;
+
+/* cr0 = &(c0[0].re);
+ ci0 = &(c0[0].im);
+ cr1 = &(c1[0].re);
+ ci1 = &(c1[0].im);*/
+
+ for(kk=0;kk<nthpo;kk+=2)
+ {
+
+
+ temp = zadds ( c0[kk] , c1[kk] );
+ c1[kk] = zdiffs( c0[kk] , c1[kk] );
+ c0[kk] = DoubleComplex ( zreals ( temp ) , zimags( temp ));
+/*
+ r1 = cr0[kk] + cr1[kk];
+ cr1[kk] = cr0[kk] - cr1[kk];
+ cr0[kk] = r1;
+
+
+ fi1 = ci0[kk] + ci1[kk];
+ ci1[kk] = ci0[kk] - ci1[kk];
+ ci0[kk] = fi1;
+*/
+ }
+}
diff --git a/src/c/signalProcessing/ifft/ir4tx.c b/src/c/signalProcessing/ifft/ir4tx.c
new file mode 100644
index 0000000..facfe98
--- /dev/null
+++ b/src/c/signalProcessing/ifft/ir4tx.c
@@ -0,0 +1,49 @@
+/*
+ * 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
+ *
+ */
+
+#include "ifft_internal.h"
+
+
+
+/*
+** radix 4 iteration subroutine
+*/
+/* this function do in one turn the same computation that do radix 2 in two turns */
+void ir4tx( int nthpo, doubleComplex* c0, doubleComplex* c1, doubleComplex* c2, doubleComplex* c3)
+{
+ int kk;
+ doubleComplex temp1 , temp2 , temp3 , temp4 ;
+
+ for(kk=0;kk<nthpo;kk+=4)
+ {
+ /* real and imag parts alternate */
+
+ /* this first step is strictly equivalent than calling radix 2
+ except that radix would have needed 2 turns to compute what radix4 do in one */
+ temp1 = zadds ( c0[kk] , c2[kk] ) ;
+ temp2 = zdiffs( c0[kk] , c2[kk] ) ;
+ temp3 = zadds ( c1[kk] , c3[kk] ) ;
+ temp4 = zdiffs( c1[kk] , c3[kk] ) ;
+
+
+ /* strictly equivalent than calling radix2 with the temporary vector , but here also , radix4 do it in one turn
+ instead of two */
+ c0[kk] = zadds ( temp1 , temp3 );
+ c1[kk] = zdiffs( temp1 , temp3 );
+
+
+ c2[kk] = DoubleComplex ( zreals ( temp2 ) - zimags( temp4 ) , zimags ( temp2 ) + zreals( temp4 ) );
+ c3[kk] = DoubleComplex ( zreals ( temp2 ) + zimags( temp4 ) , zimags ( temp2 ) - zreals( temp4 ) );
+
+
+ }
+}
diff --git a/src/c/signalProcessing/ifft/ir8tx.c b/src/c/signalProcessing/ifft/ir8tx.c
new file mode 100644
index 0000000..aa770bf
--- /dev/null
+++ b/src/c/signalProcessing/ifft/ir8tx.c
@@ -0,0 +1,169 @@
+
+/*
+ * 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
+ *
+ */
+
+#include "ifft_internal.h"
+#include <math.h>
+
+
+
+/*
+** radix 8 iteration subroutine
+*/
+
+/* this function do in one turn the same computation that do radix 2 in three turns */
+
+void ir8tx ( int nxtlt,int nthpo,int lengt,
+ doubleComplex* cc0,doubleComplex* cc1,doubleComplex* cc2,doubleComplex* cc3,
+ doubleComplex* cc4,doubleComplex* cc5,doubleComplex* cc6,doubleComplex* cc7)
+
+{
+
+
+ int j , kk;
+ double dblP7 = 1 / sqrt(2.0) ;
+ double dblPi2 = 8 * atan(1.0);
+
+ double scale, arg;
+ double c1,c2,c3,c4,c5,c6,c7;
+ double s1,s2,s3,s4,s5,s6,s7;
+
+ doubleComplex Atemp0,Atemp1,Atemp2,Atemp3,Atemp4,Atemp5,Atemp6,Atemp7;
+ doubleComplex Btemp0,Btemp1,Btemp2,Btemp3,Btemp4,Btemp5,Btemp6,Btemp7;
+
+ doubleComplex temp ;
+
+
+ scale = dblPi2/lengt;
+
+
+ for(j=0;j<nxtlt;j++)
+ {
+
+ arg = j*scale;
+ c1 = cos(arg);
+ s1 = sin(arg);
+ c2 = c1*c1 - s1*s1;
+ s2 = c1*s1 + c1*s1;
+ c3 = c1*c2 - s1*s2;
+ s3 = c2*s1 + s2*c1;
+ c4 = c2*c2 - s2*s2;
+ s4 = c2*s2 + c2*s2;
+ c5 = c2*c3 - s2*s3;
+ s5 = c3*s2 + s3*c2;
+ c6 = c3*c3 - s3*s3;
+ s6 = c3*s3 + c3*s3;
+ c7 = c3*c4 - s3*s4;
+ s7 = c4*s3 + s4*c3;
+
+ for(kk=j;kk<nthpo;kk+=lengt)
+ {
+ /* (k-1)*2*/ /* index by twos; re & im alternate */
+
+
+ /* first turn the same as calling radix 2 with the input vector */
+ /* but radix2 will have do it in three turn , radix8 do it in one */
+ Atemp0 = zadds ( cc0[kk] , cc4[kk] ) ;
+ Atemp1 = zadds ( cc1[kk] , cc5[kk] ) ;
+ Atemp2 = zadds ( cc2[kk] , cc6[kk] ) ;
+ Atemp3 = zadds ( cc3[kk] , cc7[kk] ) ;
+
+
+ Atemp4 = zdiffs ( cc0[kk] , cc4[kk] ) ;
+ Atemp5 = zdiffs ( cc1[kk] , cc5[kk] ) ;
+ Atemp6 = zdiffs ( cc2[kk] , cc6[kk] ) ;
+ Atemp7 = zdiffs ( cc3[kk] , cc7[kk] ) ;
+
+ /* second turn the same as calling radix 2 with the vector transformed by a previous call of radix2 */
+ /* the same here , three turns in one */
+ Btemp0 = zadds ( Atemp0 , Atemp2 ) ;
+ Btemp1 = zadds ( Atemp1 , Atemp3 ) ;
+ Btemp2 = zdiffs ( Atemp0 , Atemp2 ) ;
+ Btemp3 = zdiffs ( Atemp1 , Atemp3 ) ;
+
+ Btemp4 = DoubleComplex ( zreals ( Atemp4 ) - zimags( Atemp6 ) , zimags ( Atemp4 ) + zreals( Atemp6 ) );
+ Btemp5 = DoubleComplex ( zreals ( Atemp5 ) - zimags( Atemp7 ) , zimags ( Atemp5 ) + zreals( Atemp7 ) );
+ Btemp6 = DoubleComplex ( zreals ( Atemp4 ) + zimags( Atemp6 ) , zimags ( Atemp4 ) - zreals( Atemp6 ) );
+ Btemp7 = DoubleComplex ( zreals ( Atemp5 ) + zimags( Atemp7 ) , zimags ( Atemp5 ) - zreals( Atemp7 ) );
+
+ /*third turn the same as calling radix 2 with the vector transformed by two previous call of radix2 */
+ cc0[kk] = zadds ( Btemp0 , Btemp1 );
+
+
+
+ /* if we are not in the first turn */
+
+ if(j>0)
+ {
+ cc1[kk] = DoubleComplex ( (c4 * (zreals(Btemp0) - zreals(Btemp1))) - (s4 * (zimags(Btemp0) - zimags(Btemp1))),
+ c4 * (zimags(Btemp0) - zimags(Btemp1)) + s4 * (zreals(Btemp0) - zreals(Btemp1)));
+
+ cc2[kk] = DoubleComplex ( c2 * (zreals(Btemp2) - zimags(Btemp3)) - s2 * (zimags(Btemp2) + zreals(Btemp3)) ,
+ c2 * (zimags(Btemp2) + zreals(Btemp3)) + s2 * (zreals(Btemp2) - zimags(Btemp3)));
+
+ cc3[kk] = DoubleComplex ( c6 * (zreals(Btemp2) + zimags(Btemp3)) - s6 * (zimags(Btemp2) - zreals(Btemp3)) ,
+ c6 * (zimags(Btemp2) - zreals(Btemp3)) + s6 * (zreals(Btemp2) + zimags(Btemp3)));
+
+
+ temp = DoubleComplex ( dblP7*(zreals ( Btemp5 ) - zimags( Btemp5 )) ,
+ dblP7*(zreals ( Btemp5 ) + zimags( Btemp5 )) );
+
+ cc4[kk] = DoubleComplex ( c1 * (zreals (Btemp4) + zreals(temp)) - s1 * (zimags (Btemp4) + zimags(temp)) ,
+ c1 * (zimags (Btemp4) + zimags(temp)) + s1 * (zreals (Btemp4) + zreals(temp)));
+ cc5[kk] = DoubleComplex ( c5 * (zreals (Btemp4) - zreals(temp)) - s5 * (zimags (Btemp4) - zimags(temp)) ,
+ c5 * (zimags (Btemp4) - zimags(temp)) + s5 * (zreals (Btemp4) - zreals(temp)));
+
+
+ temp = DoubleComplex ( - dblP7*(zreals ( Btemp7 ) + zimags( Btemp7 )) ,
+ dblP7*(zreals ( Btemp7 ) - zimags( Btemp7 )) );
+
+ cc6[kk] = DoubleComplex ( c3 * (zreals (Btemp6) + zreals(temp)) - s3 * (zimags (Btemp6) + zimags(temp)) ,
+ c3 * (zimags (Btemp6) + zimags(temp)) + s3 * (zreals (Btemp6) + zreals(temp)));
+ cc7[kk] = DoubleComplex ( c7 * (zreals (Btemp6) - zreals(temp)) - s7 * (zimags (Btemp6) - zimags(temp)) ,
+ c7 * (zimags (Btemp6) - zimags(temp)) + s7 * (zreals (Btemp6) - zreals(temp)));
+
+
+
+
+ }
+ else
+ {
+ cc1[kk] = zdiffs ( Btemp0 , Btemp1 );
+
+ cc2[kk] = DoubleComplex ( zreals ( Btemp2 ) - zimags( Btemp3 ) ,
+ zimags ( Btemp2 ) + zreals( Btemp3 ) );
+
+
+ cc3[kk] = DoubleComplex ( zreals ( Btemp2 ) + zimags( Btemp3 ) ,
+ zimags ( Btemp2 ) - zreals( Btemp3 ) );
+
+
+ temp = DoubleComplex ( dblP7*(zreals ( Btemp5 ) - zimags( Btemp5 )) ,
+ dblP7*(zreals ( Btemp5 ) + zimags( Btemp5 )) );
+
+ cc4[kk] = zadds ( Btemp4 , temp );
+ cc5[kk] = zdiffs ( Btemp4 , temp );
+
+ temp = DoubleComplex ( - dblP7*(zreals ( Btemp7 ) + zimags( Btemp7 )) ,
+ dblP7*(zreals ( Btemp7 ) - zimags( Btemp7 )) );
+
+ cc6[kk] = zadds ( Btemp6 , temp );
+ cc7[kk] = zdiffs ( Btemp6 , temp );
+
+
+ }
+
+ }
+ }
+
+
+}
diff --git a/src/c/signalProcessing/ifft/sifftma.c b/src/c/signalProcessing/ifft/sifftma.c
new file mode 100644
index 0000000..63661ba
--- /dev/null
+++ b/src/c/signalProcessing/ifft/sifftma.c
@@ -0,0 +1,34 @@
+/*
+ * 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 "ifft.h"
+#include "zeros.h"
+
+void sifftma ( float* in , int rows, int cols, float* out){
+ float* ZEROS;
+ floatComplex* inCpx;
+ floatComplex* outCpx;
+
+ ZEROS = (float*)malloc((unsigned int)(rows*cols)*sizeof(float));
+ outCpx = (floatComplex*)malloc((unsigned int)(rows*cols)*sizeof(floatComplex));
+
+ szerosa(ZEROS,rows,cols);
+ inCpx=FloatComplexMatrix(in,ZEROS,rows*cols);
+
+ cifftma(inCpx,rows,cols,outCpx);
+
+ creala(outCpx, rows*cols, out);
+
+ free(ZEROS);
+ free(outCpx);
+}
diff --git a/src/c/signalProcessing/ifft/testDoubleIfft.c b/src/c/signalProcessing/ifft/testDoubleIfft.c
new file mode 100644
index 0000000..9c09d1b
--- /dev/null
+++ b/src/c/signalProcessing/ifft/testDoubleIfft.c
@@ -0,0 +1,1301 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+#include <stdlib.h>
+#include <assert.h>
+#include <stdio.h>
+#include <math.h>
+#include "ifft.h"
+
+
+#define ROW 1
+#define COLS2 2
+#define COLS3 3
+#define COLS4 4
+#define COLS5 5
+#define COLS6 6
+#define COLS7 7
+#define COLS8 8
+#define COLS9 9
+#define COLS10 10
+#define COLS11 11
+#define COLS12 12
+#define COLS13 13
+#define COLS14 14
+#define COLS15 15
+#define COLS16 16
+#define COLS32 32
+
+#define ZREAL_IN2 { 0.00022113462910056 , 0.33032709173858166 }
+#define ZIMAG_IN2 { 0.66538110421970487 , 0.62839178834110498 }
+
+#define ZREAL_IN3 { 2.48206677380949259, 0.43537130765616894, 0.97385666053742170}
+#define ZIMAG_IN3 { 2.14807060454040766,- 0.78285905346274376, 0.42632796149700880}
+
+
+#define ZREAL_IN4 { 0.84974523587152362, 0.68573101982474327, 0.87821648130193353, 0.06837403681129217}
+#define ZIMAG_IN4 { 0.56084860628470778, 0.66235693730413914, 0.72635067673400044, 0.19851438421756029}
+
+#define ZREAL_IN5 { 0.84974523587152362, 0.68573101982474327, 0.87821648130193353, 0.06837403681129217,\
+ 0.65251349471509457}
+#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_IN7 { 0.54425731627270579, 0.23207478970289230, 0.23122371966019273, 0.21646326314657927,\
+ 0.65251349471509457, 0.88338878145441413, 0.30760907428339124 }
+#define ZIMAG_IN7 { 0.21460078610107303, 0.31264199689030647, 0.36163610080257058, 0.2922266637906432,\
+ 0.40948254754766822, 0.56642488157376647, 0.59350947011262178 }
+
+
+
+#define ZREAL_IN8 { 0.54425731627270579, 0.23207478970289230, 0.23122371966019273, 0.21646326314657927,\
+ 0.88338878145441413, 0.65251349471509457, 0.30760907428339124, 0.93296162132173777 }
+#define ZIMAG_IN8 { 0.21460078610107303, 0.31264199689030647, 0.36163610080257058, 0.2922266637906432,\
+ 0.56642488157376647, 0.48264719732105732, 0.33217189135029912, 0.59350947011262178}
+
+
+#define ZREAL_IN9 { 0.23122371966019273, 0.21646326314657927, 0.88338878145441413, 0.65251349471509457,\
+ 0.30760907428339124, 0.93296162132173777, 0.21460078610107303, 0.31264199689030647,\
+ 0.43685875833034515}
+#define ZIMAG_IN9 { 0.26931248093023896, 0.63257448654621840, 0.40519540151581168, 0.91847078315913677,\
+ 0.28064980218186975, 0.12800584640353918, 0.77831285959109664, 0.21190304495394230,\
+ 0.68568959552794695}
+
+
+#define ZREAL_IN10 { 0.21646326314657927, 0.65251349471509457, 0.63257448654621840, 0.31264199689030647,\
+ 0.93296162132173777, 0.31264199689030647, 0.48185089323669672, 0.48264719732105732,\
+ 0.2922266637906432 , 0.48264719732105732 }
+#define ZIMAG_IN10 { 0.23122371966019273, 0.21646326314657927, 0.88338878145441413, 0.65251349471509457,\
+ 0.11383596854284406, 0.19983377400785685, 0.56186607433483005, 0.58961773291230202,\
+ 0.23122371966019273, 0.21646326314657927}
+/*
+#define ZREAL_IN10 { 1,2,3,4,5,6,7,8,9,10 }
+
+
+#define ZIMAG_IN10 { 1,2,3,4,5,6,7,8,9,10 }
+*/
+
+
+
+
+#define ZREAL_IN11 {0.49934938363730907,0.26385784195736051,0.52535630855709314,0.53762298030778766,\
+ 0.11999255046248436,0.2256303490139544 ,0.62740930821746588,0.76084325974807143,\
+ 0.04855662025511265,0.67239497276023030,0.20171726960688829 }
+
+#define ZIMAG_IN11 {0.39115739194676280,0.83003165572881699,0.58787201577797532,0.48291792999953032,\
+ 0.22328650346025825,0.84008856676518917,0.12059959070757031,0.28553641680628061,\
+ 0.86075146449729800,0.84941016510128975,0.52570608118548989}
+
+
+#define ZREAL_IN12 {0.75604385416954756,0.00022113462910056,0.33032709173858166,0.66538110421970487,\
+ 0.62839178834110498,0.84974523587152362,0.68573101982474327,0.87821648130193353,\
+ 0.06837403681129217,0.56084860628470778,0.66235693730413914,0.72635067673400044}
+
+#define ZIMAG_IN12 {0.19851438421756029,0.54425731627270579,0.23207478970289230,0.23122371966019273,\
+ 0.21646326314657927,0.88338878145441413,0.65251349471509457,0.30760907428339124,\
+ 0.93296162132173777,0.21460078610107303,0.31264199689030647,0.36163610080257058}
+
+
+#define ZREAL_IN13 {0.2922266637906432 ,0.56642488157376647,0.48264719732105732,0.33217189135029912,\
+ 0.59350947011262178,0.50153415976092219,0.43685875833034515,0.26931248093023896,\
+ 0.63257448654621840,0.40519540151581168,0.91847078315913677,0.04373343335464597,\
+ 0.48185089323669672}
+
+
+
+#define ZIMAG_IN13 {0.26395560009405017,0.41481037065386772,0.28064980218186975,0.12800584640353918,\
+ 0.77831285959109664,0.21190304495394230,0.11213546665385365,0.68568959552794695,\
+ 0.15312166837975383,0.69708506017923355,0.84155184263363481,0.40620247554033995,\
+ 0.40948254754766822}
+
+
+
+#define ZREAL_IN14 {0.87841258011758327,0.11383596854284406,0.19983377400785685,0.56186607433483005,\
+ 0.58961773291230202,0.68539796629920602,0.89062247332185507,0.50422128057107329,\
+ 0.34936154074966908,0.38737787725403905,0.92228986788541079,0.94881842611357570,\
+ 0.34353372454643250,0.37601187312975526}
+
+#define ZIMAG_IN14 {0.73409405630081892,0.26157614728435874,0.49934938363730907,0.26385784195736051,\
+ 0.52535630855709314,0.53762298030778766,0.11999255046248436,0.2256303490139544 ,\
+ 0.62740930821746588,0.76084325974807143,0.04855662025511265,0.67239497276023030,\
+ 0.20171726960688829,0.39115739194676280}
+
+#define ZREAL_IN15 {0.83003165572881699,0.58787201577797532,0.48291792999953032,0.22328650346025825,\
+ 0.84008856676518917,0.12059959070757031,0.28553641680628061,0.86075146449729800,\
+ 0.84941016510128975,0.52570608118548989,0.99312098976224661,0.64885628735646605,\
+ 0.99231909401714802,0.05004197778180242,0.74855065811425447}
+
+#define ZIMAG_IN15 {0.41040589986369014,0.60845263302326202,0.85442108893766999,0.06426467280834913,\
+ 0.82790829380974174,0.92623437754809856,0.56672112690284848,0.57116389367729425,\
+ 0.81601104838773608,0.05689279362559319,0.55959366867318749,0.12493403162807226,\
+ 0.72792222863063216,0.26777664758265018,0.54653349192813039}
+
+
+
+#define ZREAL_IN16 {0.23122371966019273, 0.21646326314657927, 0.88338878145441413, 0.65251349471509457,\
+ 0.30760907428339124, 0.93296162132173777, 0.21460078610107303, 0.31264199689030647,\
+ 0.36163610080257058, 0.2922266637906432 , 0.56642488157376647, 0.48264719732105732,\
+ 0.33217189135029912, 0.59350947011262178, 0.50153415976092219, 0.43685875833034515}
+#define ZIMAG_IN16 {0.26931248093023896, 0.63257448654621840, 0.40519540151581168, 0.91847078315913677,\
+ 0.04373343335464597, 0.48185089323669672, 0.26395560009405017, 0.41481037065386772,\
+ 0.28064980218186975, 0.12800584640353918, 0.77831285959109664, 0.21190304495394230,\
+ 0.11213546665385365, 0.68568959552794695, 0.15312166837975383, 0.69708506017923355}
+
+
+#define ZREAL_IN32 { 0.21132486546412110, 0.75604385416954756, 0.00022113462910056, 0.33032709173858166,\
+ 0.66538110421970487, 0.62839178834110498, 0.84974523587152362, 0.68573101982474327,\
+ 0.87821648130193353, 0.06837403681129217, 0.56084860628470778, 0.66235693730413914,\
+ 0.72635067673400044, 0.19851438421756029, 0.54425731627270579, 0.23207478970289230,\
+ 0.23122371966019273, 0.21646326314657927, 0.88338878145441413, 0.65251349471509457,\
+ 0.30760907428339124, 0.93296162132173777, 0.21460078610107303, 0.31264199689030647,\
+ 0.36163610080257058, 0.2922266637906432 , 0.56642488157376647, 0.48264719732105732,\
+ 0.33217189135029912, 0.59350947011262178, 0.50153415976092219, 0.43685875833034515}
+
+#define ZIMAG_IN32 { 0.26931248093023896, 0.63257448654621840, 0.40519540151581168, 0.91847078315913677,\
+ 0.04373343335464597, 0.48185089323669672, 0.26395560009405017, 0.41481037065386772,\
+ 0.28064980218186975, 0.12800584640353918, 0.77831285959109664, 0.21190304495394230,\
+ 0.11213546665385365, 0.68568959552794695, 0.15312166837975383, 0.69708506017923355,\
+ 0.84155184263363481, 0.40620247554033995, 0.40948254754766822, 0.87841258011758327,\
+ 0.11383596854284406, 0.19983377400785685, 0.56186607433483005, 0.58961773291230202,\
+ 0.68539796629920602, 0.89062247332185507, 0.50422128057107329, 0.34936154074966908,\
+ 0.38737787725403905, 0.92228986788541079, 0.94881842611357570, 0.34353372454643250}
+
+
+
+
+#define ZREAL_RESULT2 { 0.16527411318384111 , - 0.16505297855474055 }
+
+
+#define ZIMAG_RESULT2 {+ 0.64688644628040493, + 0.01849465793929994}
+
+
+
+#define ZREAL_RESULT3 { 1.29709824733436108, 0.94154648753137238, 0.2434220389437592}
+
+#define ZIMAG_RESULT3 { +0.59717983752489090,+0.61999805178742728,+0.93089271522808925}
+
+
+
+
+
+#define ZREAL_RESULT4 { 0.62051669345237315,-0.12307844962924719, 0.24346416513435543, 0.10884282691404223}
+
+#define ZIMAG_RESULT4 { +0.53701765113510191,+0.11296372814103961,+0.10658199037425220,-0.19571476336568594}
+
+
+
+#define ZREAL_RESULT5 { 0.62691605370491743, 0.01919730450714778, 0.10104198714906780,-0.07720389203270116,\
+ 0.17979378254309186}
+
+#define ZIMAG_RESULT5 { +0.54289909722283480,+0.13998734162926388,-0.17962778177138733,+0.12064468327985833,\
+-0.06305473407586182}
+
+
+
+#define ZREAL_RESULT6 { 0.36402360963014263, 0.09605967189946550, 0.01914935343131208, 0.11197456725252172,\
+-0.00281267335181221,-0.04413721258892397}
+
+#define ZIMAG_RESULT6 { +0.39017331654516357,-0.08647381537197443,-0.01847428942485585,-0.00928606038602692,\
+-0.11828530217444963,+0.05694693691321624}
+
+
+
+
+
+#define ZREAL_RESULT7 { 0.43821863417646711, 0.04570283341490348, 0.00786143114706625, 0.09081035877037001,\
+ 0.06907620238256847,-0.01879476197071369,-0.08861738164795580}
+
+#define ZIMAG_RESULT7 { +0.39293177811694990,-0.13474546775513907,+0.02350839028687007,-0.01818990984988529,\
+-0.03304492053033681,-0.13370336175502612,+0.11784427758764042}
+
+
+
+
+#define ZREAL_RESULT8 { 0.50006150756962597, 0.02175013240250377, 0.12240753043442965,-0.02322026233124427,\
+-0.00844178465195000,-0.11389905106099872, 0.09979579551145434,-0.05419655160111495}
+
+#define ZIMAG_RESULT8 { +0.39448237349279225,-0.14241475898929634,-0.02220236556604505,-0.14652524166940226,\
+-0.02577395853586495,+0.03536239646532335,+0.04400678444653749,+0.07766555645702852}
+
+
+
+
+#define ZREAL_RESULT9 { 0.4653623884336816 ,-0.10996977634919125,-0.00630644375731721,-0.04060246287025721,\
+ 0.05408191850705556, 0.01600258566680582,-0.05864725873797094,-0.05201672319102815,\
+-0.03668050804158550}
+
+#define ZIMAG_RESULT9 { +0.47890158897886670,+0.08218728720967677,-0.06845717881236174,-0.04807038546781070,\
+-0.08014536882440566,-0.2030002369914648,+0.22453417104910142,-0.06865385510029860, \
+-0.04798354111106445}
+
+
+
+
+#define ZREAL_RESULT10 { 0.47991688111796976,-0.06991181823164128,-0.08469577602979275, 0.07318652166556244,\
+-0.07052463321312863, 0.03129850449040533,-0.12994121698152189,-0.09609430997689952,\
+ 0.06979737512491652, 0.01343173518070941}
+
+#define ZIMAG_RESULT10 { +0.38964297915808854,+0.03225815718776807,-0.11005045339360417,+0.07000358882571070,\
+-0.03882538926347270,+0.01466467357240619,+0.09131179012889759,-0.02808828423670948,\
+-0.11655017979588442,-0.07314316252300754}
+
+
+
+
+
+#define ZREAL_RESULT11 { 0.40752098586579621, 0.01832270994676578, 0.00727102452352803,-0.13808643998727593,\
+ 0.03761367031409660, 0.01913753006534984, 0.14829738766302858,-0.03282455871021355,\
+ 0.08531354288243319,-0.01850240581569137,-0.03471406311050802}
+
+#define ZIMAG_RESULT11 { +0.54521434381604206,+0.04263232089408980,+0.01080182331995891,-0.16507135273435664,\
++0.08926061372379648,+0.01327764965004020,-0.10524284127370778,-0.02743692407216465,\
++0.01530157234736101,-0.10904555975048559,+0.08146574602618931}
+
+
+
+#define ZREAL_RESULT12 { 0.56766566393586493,-0.02954179400241778, 0.03231997586448970,-0.08061527988562983,\
+ 0.12393588887272257,-0.00005011576253769,-0.04579487590429687, 0.18096695473171109,\
+-0.02460040668391173, 0.04301438496137660, 0.06736119091227670,-0.07861773287010031}
+
+#define ZIMAG_RESULT12 { +0.42399044404737651,-0.08988211863004507,-0.06417895954194777,-0.05903535817439356,\
+-0.03585983457125090,-0.08163805724791348,+0.00020448095165193,-0.00326952155569338,\
+-0.06391751330264545,+0.08415352273732421,+0.16527532188314309,-0.07732802237804590}
+
+#define ZREAL_RESULT13 { 0.45819311546018493, 0.04715640399909302,-0.02841189190012001, 0.01471405402274759,\
+-0.06955117696838889, 0.08520673650173283,-0.08379007722081511,-0.06164570839841994,\
+-0.07511713555210725, 0.07790018146444697, 0.05666948441941852,-0.04832646187709128,\
+-0.08077086016003779}
+
+#define ZIMAG_RESULT13 { +0.41406970618006128,-0.00941536236456233,-0.04150925434362464,+0.07093289809698045,\
++0.05642954059283156,-0.13856574403878158,-0.06657177623345527,+0.08978984633083976,\
+-0.03246486275259956,+0.03475196544714984,-0.02951956674329188,-0.08259093889333179,\
+-0.00138085118416531}
+
+
+
+
+#define ZREAL_RESULT14 { 0.55365722569903086,-0.03431117289603670,-0.07434176530056802, 0.09479458498406634,\
+ 0.04225809799112697, 0.10711066217766220, 0.09039926979534348, 0.04258158766398475,\
+-0.06766097168605688, 0.02983162597647674, 0.16148055537460848, 0.00306446154680962,\
+-0.01447548152915653,-0.05597609967970790}
+
+#define ZIMAG_RESULT14 { +0.41925417428969269,-0.02346521727072965,-0.07537174377902310,+0.12152793513158673,\
+-0.05435563225189670,+0.05588517124820697,+0.03948028804374615,-0.02547196042723954,\
++0.04750412291672844,+0.09081187301248270,+0.02410149252380316,-0.00728204510680848,\
++0.07924950091433607,+0.04222609705593354}
+
+
+
+
+#define ZREAL_RESULT15 { 0.60260595980410780,-0.09025313009309296, 0.07296362400098141,-0.01312199542974801,\
+ 0.05196795946996628, 0.00939805486763355, 0.07359039581140392, 0.07244754050834930,\
+-0.13409874398389474,-0.06419327756841406,-0.04062806443214259, 0.19283708306652805,\
+ 0.04903632944886174,-0.00831723960417976, 0.05579715986245712}
+
+#define ZIMAG_RESULT15 { +0.52861572646846366,-0.09479760020968324,+0.06725385149296267,+0.01462043430946725,\
+-0.00503137552191604,-0.05388544405841567,-0.05301311586381348,-0.11414862867731596,\
++0.0617906214666224 ,+0.14723827146724461,-0.10948893804382542,+0.00343655851962967,\
+-0.00538333435303664,-0.03924473093854008,+0.06244360380584638}
+
+
+
+
+#define ZREAL_RESULT16 { 0.45740074128843844,-0.00119937109332679,-0.09568979823192530,-0.01738371075123765,\
+-0.03869746159762144,-0.05391866381953740, 0.12416191581397301,-0.03041585422893309,\
+-0.03257706691510975, 0.07000836728092155,-0.00597921899357861,-0.03766276570110767,\
+-0.07796601625159383,-0.03039291932884991,-0.03422318488120085, 0.03575872707088203}
+
+#define ZIMAG_RESULT16 { +0.40480042458511889,+0.06953094033520663,+0.02374777548578576,-0.03393710545080092,\
+-0.04651592345908284,+0.02783744013794178,-0.03035825342604098,-0.06447129475682091,\
+-0.11649833549745381,-0.11413977271896644,+0.11722373704793855,+0.08102030470498481,\
+-0.06532836984843016,+0.00779635766618338,-0.01208991333178105,+0.02069446945645629}
+
+
+
+
+
+#define ZREAL_RESULT32 { 0.47864284948445857, 0.05482834035731039,-0.01530773095660632,-0.01750083123738436,\
+ -0.05071297103611097, 0.08766815171372286, 0.02106608347521239,-0.05109320958418949,\
+ -0.01096817385405302, 0.02416709596518544,-0.05098444057349576,-0.01448958336761648,\
+ 0.02532074256370129,-0.09984237842467819,-0.06358972398280244,-0.04611519259707146,\
+ 0.01104057650081813,-0.03475148917606731, 0.00813855773340646,-0.00568704237169753,\
+ 0.01830285230723486, 0.02749700538425181,-0.04780122330152622, 0.06632936566012661,\
+ -0.01447601290419698, 0.03116875276343186, 0.00123360692547217, 0.01833898177168673,\
+ -0.03654957125464739, 0.00547684889715929,-0.05208112856470785,-0.05594424285220599}
+
+
+
+#define ZIMAG_RESULT32 {+0.48466352955438197,+0.04862008402656083,+0.04890918577469192,-0.07661834259188156,\
+ +0.01684868035424048,-0.06277273594077343,-0.03536555772325747,-0.04086803002308132,\
+ -0.04373891325667500,+0.03378928555068783,+0.09272389885362962,-0.01252633931303314,\
+ +0.04715379187194862,+0.04212975779784539,+0.00924226411866865,-0.06146319342441199,\
+ -0.06222798605449498,+0.03846733709242996,-0.06362612522976926,+0.02110331414670667,\
+ +0.06568727290671772,-0.09854847704278780,+0.04828755172931871,-0.06711471562709365,\
+ -0.03694727551192045,-0.04323841461679329,-0.07059643871085296,-0.01972938456264230,\
+ +0.04778892314703904,+0.02763841783182228,+0.00662935995827029,-0.01498824415525237}
+
+static void zifftmaTest2 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN2;
+ double tImagIn [] = ZIMAG_IN2 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT2 ;
+ double tImagResult [] = ZIMAG_RESULT2 ;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS2));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS2 );
+ doubleComplex* Result = DoubleComplexMatrix ( tRealResult , tImagResult ,ROW*COLS2) ;
+
+
+
+ zifftma ( in , ROW , COLS2 , 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*COLS2 ) ; 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])) < 3e-16 );
+
+
+ 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])) < 3e-16 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+static void zifftmaTest3 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN3;
+ double tImagIn [] = ZIMAG_IN3 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT3;
+ double tImagResult [] = ZIMAG_RESULT3 ;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS3));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS3 );
+ doubleComplex* Result = DoubleComplexMatrix ( tRealResult , tImagResult ,ROW*COLS3) ;
+
+
+
+ zifftma ( in , ROW , COLS3 , 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*COLS3 ) ; 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])) < 3e-16 );
+
+
+ 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])) < 3e-15 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+
+}
+
+
+static void zifftmaTest4 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN4;
+ double tImagIn [] = ZIMAG_IN4 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT4 ;
+ double tImagResult [] = ZIMAG_RESULT4 ;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS4));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS4 );
+ doubleComplex* Result = DoubleComplexMatrix ( tRealResult , tImagResult ,ROW*COLS4) ;
+
+
+ zifftma ( in , ROW , COLS4 , 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*COLS4 ) ; 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])) < 3e-16 );
+
+
+ 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])) < 3e-16 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+
+}
+
+
+static void zifftmaTest5 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN5;
+ double tImagIn [] = ZIMAG_IN5 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT5;
+ double tImagResult [] = ZIMAG_RESULT5 ;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS5));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS5 );
+ doubleComplex* Result = DoubleComplexMatrix ( tRealResult , tImagResult ,ROW*COLS5) ;
+
+
+
+ zifftma ( in , ROW , COLS5 , 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*COLS5 ) ; 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])) < 3e-15 );
+
+
+ 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])) < 3e-15 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+
+}
+
+
+static void zifftmaTest6 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN6;
+ double tImagIn [] = ZIMAG_IN6 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT6;
+ double tImagResult [] = ZIMAG_RESULT6;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS6));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS6 );
+ doubleComplex* Result = DoubleComplexMatrix ( tRealResult , tImagResult ,ROW*COLS6) ;
+
+
+
+ zifftma ( 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])) < 3e-15 );
+
+
+ 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])) < 3e-15 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+
+}
+
+
+static void zifftmaTest7 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN7;
+ double tImagIn [] = ZIMAG_IN7 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT7;
+ double tImagResult [] = ZIMAG_RESULT7;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS7));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS7 );
+ doubleComplex* Result = DoubleComplexMatrix ( tRealResult , tImagResult ,ROW*COLS7) ;
+
+
+
+ zifftma ( in , ROW , COLS7 , 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*COLS7 ) ; 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])) < 3e-15 );
+
+
+ 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])) < 3e-15 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+
+}
+
+static void zifftmaTest8 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN8;
+ double tImagIn [] = ZIMAG_IN8 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT8 ;
+ double tImagResult [] = ZIMAG_RESULT8 ;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS8));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS8 );
+ doubleComplex* Result = DoubleComplexMatrix ( tRealResult , tImagResult ,ROW*COLS8) ;
+
+
+ zifftma ( in , ROW , COLS8 , 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*COLS8 ) ; 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])) < 3e-16 );
+
+
+ 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])) < 3e-16 ) ;
+*/
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+
+}
+
+
+static void zifftmaTest9 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN9;
+ double tImagIn [] = ZIMAG_IN9 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT9 ;
+ double tImagResult [] = ZIMAG_RESULT9 ;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS9));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS9 );
+ doubleComplex* Result = DoubleComplexMatrix ( tRealResult , tImagResult ,ROW*COLS9) ;
+
+
+ zifftma ( in , ROW , COLS9 , 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*COLS9 ) ; 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])) < 3e-15 );
+
+
+ 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])) < 3e-15 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+
+}
+
+static void zifftmaTest10 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN10;
+ double tImagIn [] = ZIMAG_IN10 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT10 ;
+ double tImagResult [] = ZIMAG_RESULT10 ;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS10));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS10 );
+
+
+
+ zifftma ( in , ROW , COLS10 , 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*COLS10 ) ; 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]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) ,
+ fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])));
+
+
+ if ( zreals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) < 3e-15 );
+
+
+ if ( zimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])) < 3e-15 ) ;
+
+ }
+
+ free(out);
+ free(in);
+
+}
+
+static void zifftmaTest11 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN11;
+ double tImagIn [] = ZIMAG_IN11 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT11 ;
+ double tImagResult [] = ZIMAG_RESULT11 ;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS11));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS11 );
+
+
+
+ zifftma ( in , ROW , COLS11 , 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*COLS11 ) ; 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]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) ,
+ fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])));
+
+
+ if ( zreals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) < 3e-15 );
+
+
+ if ( zimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])) < 3e-15 ) ;
+
+ }
+
+ free(out);
+ free(in);
+
+}
+
+
+static void zifftmaTest12 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN12;
+ double tImagIn [] = ZIMAG_IN12 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT12 ;
+ double tImagResult [] = ZIMAG_RESULT12 ;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS12));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS12 );
+
+
+
+ zifftma ( in , ROW , COLS12 , 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*COLS12 ) ; 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]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) ,
+ fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])));
+
+
+ if ( zreals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) < 3e-15 );
+
+
+ if ( zimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])) < 3e-14 ) ;
+
+ }
+
+ free(out);
+ free(in);
+
+}
+
+
+static void zifftmaTest13 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN13;
+ double tImagIn [] = ZIMAG_IN13 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT13 ;
+ double tImagResult [] = ZIMAG_RESULT13 ;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS13));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS13 );
+
+
+
+ zifftma ( in , ROW , COLS13 , 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*COLS13 ) ; 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]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) ,
+ fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])));
+
+
+ if ( zreals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) < 3e-15 );
+
+
+ if ( zimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])) < 3e-15 ) ;
+
+ }
+
+ free(out);
+ free(in);
+
+}
+
+
+static void zifftmaTest14 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN14;
+ double tImagIn [] = ZIMAG_IN14 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT14 ;
+ double tImagResult [] = ZIMAG_RESULT14 ;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS14));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS14 );
+
+
+
+ zifftma ( in , ROW , COLS14 , 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*COLS14 ) ; 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]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) ,
+ fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])));
+
+
+ if ( zreals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) < 3e-14 );
+
+
+ if ( zimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])) < 3e-15 ) ;
+
+ }
+
+ free(out);
+ free(in);
+
+}
+
+
+
+static void zifftmaTest15 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN15;
+ double tImagIn [] = ZIMAG_IN15 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT15 ;
+ double tImagResult [] = ZIMAG_RESULT15 ;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS15));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS15 );
+
+
+
+ zifftma ( in , ROW , COLS15 , 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*COLS15 ) ; 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]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) ,
+ fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])));
+
+
+ if ( zreals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) < 3e-15 );
+
+
+ if ( zimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])) < 3e-14 ) ;
+
+ }
+
+ free(out);
+ free(in);
+
+}
+
+
+
+static void zifftmaTest16 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN16;
+ double tImagIn [] = ZIMAG_IN16 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT16 ;
+ double tImagResult [] = ZIMAG_RESULT16 ;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS16));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS16 );
+
+
+
+ zifftma ( in , ROW , COLS16 , 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*COLS16 ) ; 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]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) ,
+ fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])));
+
+
+ if ( zreals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) < 3e-15);
+
+
+ if ( zimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])) < 3e-15 ) ;
+
+ }
+
+ free(out);
+ free(in);
+
+}
+
+
+
+static void zifftmaTest32 (void )
+{
+ int i = 0 ;
+
+ double tRealIn [] = ZREAL_IN32;
+ double tImagIn [] = ZIMAG_IN32 ;
+
+
+
+ double tRealResult [] = ZREAL_RESULT32 ;
+ double tImagResult [] = ZIMAG_RESULT32 ;
+
+
+
+ doubleComplex* out = (doubleComplex*) malloc ( sizeof(doubleComplex) * (unsigned int) (ROW*COLS32));
+ doubleComplex* in = DoubleComplexMatrix ( tRealIn , tImagIn , ROW*COLS32 );
+
+
+
+ zifftma ( in , ROW , COLS32 , 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*COLS32 ) ; 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]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) ,
+ fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])));
+
+
+ if ( zreals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zreals(out[i]) - tRealResult[i] ) / fabs (zreals (out[i])) < 3e-14 );
+
+
+ if ( zimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( zimags(out[i]) - tImagResult[i] ) / fabs (zimags (out[i])) < 3e-15 ) ;
+
+ }
+
+ free(out);
+ free(in);
+
+
+}
+
+static int testFft(void) {
+
+ printf("\n>>>> FFT Tests\n");
+ printf("\t>>>> Matrix Double Realt Tests\n");
+ /*dfftmaTest();*/
+
+ printf("\n\n\n");
+
+ printf("\n\t>>>> Vector 2 Double Complex Tests\n");
+ zifftmaTest2();
+ printf("\n\t>>>> Vector 3 Double Complex Tests\n");
+ zifftmaTest3();
+
+ printf("\n\t>>>> Vector 4 Double Complex Tests\n");
+ zifftmaTest4();
+
+
+ printf("\n\t>>>> Vector 5 Double Complex Tests\n");
+ zifftmaTest5();
+ printf("\n\t>>>> Vector 6 Double Complex Tests\n");
+ zifftmaTest6();
+ printf("\n\t>>>> Vector 7 Double Complex Tests\n");
+ zifftmaTest7();
+
+ printf("\n\t>>>> Vector 8 Double Complex Tests\n");
+ zifftmaTest8();
+
+ printf("\n\t>>>> Vector 9 Double Complex Tests\n");
+ zifftmaTest9();
+ printf("\n\t>>>> Vector 10 Double Complex Tests\n");
+ zifftmaTest10();
+ printf("\n\t>>>> Vector 11 Double Complex Tests\n");
+ zifftmaTest11();
+ printf("\n\t>>>> Vector 12 Double Complex Tests\n");
+ zifftmaTest12();
+ printf("\n\t>>>> Vector 13 Double Complex Tests\n");
+ zifftmaTest13();
+ printf("\n\t>>>> Vector 14 Double Complex Tests\n");
+ zifftmaTest14();
+ printf("\n\t>>>> Vector 14 Double Complex Tests\n");
+ zifftmaTest15();
+ printf("\n\t>>>> Vector 16 Double Complex Tests\n");
+ zifftmaTest16();
+ printf("\n\t>>>> Vector 32 Double Complex Tests\n");
+ zifftmaTest32();
+
+ return 0;
+}
+
+
+
+int main(void) {
+ assert(testFft() == 0);
+ return 0;
+}
diff --git a/src/c/signalProcessing/ifft/testFloatIfft.c b/src/c/signalProcessing/ifft/testFloatIfft.c
new file mode 100644
index 0000000..5c2fec4
--- /dev/null
+++ b/src/c/signalProcessing/ifft/testFloatIfft.c
@@ -0,0 +1,1269 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#include <stdlib.h>
+#include <assert.h>
+#include <stdio.h>
+#include <math.h>
+#include "ifft.h"
+
+#define ROW 1
+#define COLS2 2
+#define COLS3 3
+#define COLS4 4
+#define COLS5 5
+#define COLS6 6
+#define COLS7 7
+#define COLS8 8
+#define COLS9 9
+#define COLS10 10
+#define COLS11 11
+#define COLS12 12
+#define COLS13 13
+#define COLS14 14
+#define COLS15 15
+#define COLS16 16
+#define COLS32 32
+
+#define CREAL_IN2 { 0.00022113462910056f , 0.33032709173858166f }
+#define CIMAG_IN2 { 0.66538110421970487f , 0.62839178834110498f }
+
+#define CREAL_IN3 { 2.48206677380949259f, 0.43537130765616894f, 0.97385666053742170f}
+#define CIMAG_IN3 { 2.14807060454040766f,- 0.78285905346274376f, 0.42632796149700880f}
+
+
+#define CREAL_IN4 { 0.84974523587152362f, 0.68573101982474327f, 0.87821648130193353f, 0.06837403681129217f}
+#define CIMAG_IN4 { 0.56084860628470778f, 0.66235693730413914f, 0.72635067673400044f, 0.19851438421756029f}
+
+#define CREAL_IN5 { 0.84974523587152362f, 0.68573101982474327f, 0.87821648130193353f, 0.06837403681129217f,\
+ 0.65251349471509457f}
+#define CIMAG_IN5 { 0.56084860628470778f, 0.66235693730413914f, 0.72635067673400044f, 0.19851438421756029f,\
+ 0.56642488157376647f}
+
+#define CREAL_IN6 { 0.54425731627270579f, 0.23207478970289230f, 0.23122371966019273f, 0.21646326314657927f,\
+ 0.65251349471509457f, 0.30760907428339124f }
+#define CIMAG_IN6 { 0.21460078610107303f, 0.31264199689030647f, 0.36163610080257058f, 0.2922266637906432f,\
+ 0.56642488157376647f, 0.59350947011262178f }
+
+#define CREAL_IN7 { 0.54425731627270579f, 0.23207478970289230f, 0.23122371966019273f, 0.21646326314657927f,\
+ 0.65251349471509457f, 0.88338878145441413f, 0.30760907428339124f }
+#define CIMAG_IN7 { 0.21460078610107303f, 0.31264199689030647f, 0.36163610080257058f, 0.2922266637906432f,\
+ 0.40948254754766822f, 0.56642488157376647f, 0.59350947011262178f }
+
+
+
+#define CREAL_IN8 { 0.54425731627270579f, 0.23207478970289230f, 0.23122371966019273f, 0.21646326314657927f,\
+ 0.88338878145441413f, 0.65251349471509457f, 0.30760907428339124f, 0.93296162132173777f }
+#define CIMAG_IN8 { 0.21460078610107303f, 0.31264199689030647f, 0.36163610080257058f, 0.2922266637906432f,\
+ 0.56642488157376647f, 0.48264719732105732f, 0.33217189135029912f, 0.59350947011262178f}
+
+
+#define CREAL_IN9 { 0.23122371966019273f, 0.21646326314657927f, 0.88338878145441413f, 0.65251349471509457f,\
+ 0.30760907428339124f, 0.93296162132173777f, 0.21460078610107303f, 0.31264199689030647f,\
+ 0.43685875833034515f}
+#define CIMAG_IN9 { 0.26931248093023896f, 0.63257448654621840f, 0.40519540151581168f, 0.91847078315913677f,\
+ 0.28064980218186975f, 0.12800584640353918f, 0.77831285959109664f, 0.21190304495394230f,\
+ 0.68568959552794695f}
+
+
+#define CREAL_IN10 { 0.21646326314657927f, 0.65251349471509457f, 0.63257448654621840f, 0.31264199689030647f,\
+ 0.93296162132173777f, 0.31264199689030647f, 0.48185089323669672f, 0.48264719732105732f,\
+ 0.2922266637906432f , 0.48264719732105732f }
+#define CIMAG_IN10 { 0.23122371966019273f, 0.21646326314657927f, 0.88338878145441413f, 0.65251349471509457f,\
+ 0.11383596854284406f, 0.19983377400785685f, 0.56186607433483005f, 0.58961773291230202f,\
+ 0.23122371966019273f, 0.21646326314657927f}
+/*
+#define CREAL_IN10 { 1,2,3,4,5,6,7,8,9,10 }
+
+
+#define CIMAG_IN10 { 1,2,3,4,5,6,7,8,9,10 }
+*/
+
+
+
+
+#define CREAL_IN11 {0.49934938363730907f, 0.26385784195736051f, 0.52535630855709314f ,0.53762298030778766f,\
+ 0.11999255046248436f, 0.2256303490139544f , 0.62740930821746588f ,0.76084325974807143f,\
+ 0.04855662025511265f, 0.67239497276023030f, 0.20171726960688829f }
+
+#define CIMAG_IN11 {0.39115739194676280f, 0.83003165572881699f,0.58787201577797532f ,0.48291792999953032f,\
+ 0.22328650346025825f, 0.84008856676518917f,0.12059959070757031f ,0.28553641680628061f,\
+ 0.86075146449729800f, 0.84941016510128975f,0.52570608118548989f }
+
+
+#define CREAL_IN12 {0.75604385416954756f, 0.00022113462910056f,0.33032709173858166f ,0.66538110421970487f,\
+ 0.62839178834110498f,0.84974523587152362f ,0.68573101982474327f ,0.87821648130193353f,\
+ 0.06837403681129217f,0.56084860628470778f ,0.66235693730413914f ,0.72635067673400044f}
+
+#define CIMAG_IN12 {0.19851438421756029f, 0.54425731627270579f, 0.23207478970289230f, 0.23122371966019273f,\
+ 0.21646326314657927f, 0.88338878145441413f, 0.65251349471509457f, 0.30760907428339124f,\
+ 0.93296162132173777f, 0.21460078610107303f, 0.31264199689030647f, 0.36163610080257058f}
+
+#define CREAL_IN13 {0.2922266637906432f , 0.56642488157376647f,0.48264719732105732f,0.33217189135029912f,\
+ 0.59350947011262178f, 0.50153415976092219f,0.43685875833034515f,0.26931248093023896f,\
+ 0.63257448654621840f, 0.40519540151581168f,0.91847078315913677f,0.04373343335464597f,\
+ 0.48185089323669672f}
+
+
+
+#define CIMAG_IN13 {0.26395560009405017f,0.41481037065386772f,0.28064980218186975f,0.12800584640353918f,\
+ 0.77831285959109664f,0.21190304495394230f,0.11213546665385365f,0.68568959552794695f,\
+ 0.15312166837975383f,0.69708506017923355f,0.84155184263363481f,0.40620247554033995f,\
+ 0.40948254754766822f}
+
+
+
+#define CREAL_IN14 {0.87841258011758327f,0.11383596854284406f,0.19983377400785685f,0.56186607433483005f,\
+ 0.58961773291230202f,0.68539796629920602f,0.89062247332185507f,0.50422128057107329f,\
+ 0.34936154074966908f,0.38737787725403905f,0.92228986788541079f,0.94881842611357570f,\
+ 0.34353372454643250f,0.37601187312975526f}
+
+#define CIMAG_IN14 {0.73409405630081892f,0.26157614728435874f,0.49934938363730907f,0.26385784195736051f,\
+ 0.52535630855709314f,0.53762298030778766f,0.11999255046248436f,0.2256303490139544f ,\
+ 0.62740930821746588f,0.76084325974807143f,0.04855662025511265f,0.67239497276023030f,\
+ 0.20171726960688829f,0.39115739194676280f}
+
+#define CREAL_IN15 {0.83003165572881699f,0.58787201577797532f,0.48291792999953032f,0.22328650346025825f,\
+ 0.84008856676518917f,0.12059959070757031f,0.28553641680628061f,0.86075146449729800f,\
+ 0.84941016510128975f,0.52570608118548989f,0.99312098976224661f,0.64885628735646605f,\
+ 0.99231909401714802f,0.05004197778180242f,0.74855065811425447f}
+
+#define CIMAG_IN15 {0.41040589986369014f,0.60845263302326202f,0.85442108893766999f,0.06426467280834913f,\
+ 0.82790829380974174f,0.92623437754809856f,0.56672112690284848f,0.57116389367729425f,\
+ 0.81601104838773608f,0.05689279362559319f,0.55959366867318749f,0.12493403162807226f,\
+ 0.72792222863063216f,0.26777664758265018f,0.54653349192813039f}
+
+
+#define CREAL_IN16 {0.23122371966019273f, 0.21646326314657927f, 0.88338878145441413f, 0.65251349471509457f,\
+ 0.30760907428339124f, 0.93296162132173777f, 0.21460078610107303f, 0.31264199689030647f,\
+ 0.36163610080257058f, 0.2922266637906432f , 0.56642488157376647f, 0.48264719732105732f,\
+ 0.33217189135029912f, 0.59350947011262178f, 0.50153415976092219f, 0.43685875833034515f}
+#define CIMAG_IN16 {0.26931248093023896f, 0.63257448654621840f, 0.40519540151581168f, 0.91847078315913677f,\
+ 0.04373343335464597f, 0.48185089323669672f, 0.26395560009405017f, 0.41481037065386772f,\
+ 0.28064980218186975f, 0.12800584640353918f, 0.77831285959109664f, 0.21190304495394230f,\
+ 0.11213546665385365f, 0.68568959552794695f, 0.15312166837975383f, 0.69708506017923355f}
+
+
+#define CREAL_IN32 { 0.21132486546412110f, 0.75604385416954756f, 0.00022113462910056f, 0.33032709173858166f,\
+ 0.66538110421970487f, 0.62839178834110498f, 0.84974523587152362f, 0.68573101982474327f,\
+ 0.87821648130193353f, 0.06837403681129217f, 0.56084860628470778f, 0.66235693730413914f,\
+ 0.72635067673400044f, 0.19851438421756029f, 0.54425731627270579f, 0.23207478970289230f,\
+ 0.23122371966019273f, 0.21646326314657927f, 0.88338878145441413f, 0.65251349471509457f,\
+ 0.30760907428339124f, 0.93296162132173777f, 0.21460078610107303f, 0.31264199689030647f,\
+ 0.36163610080257058f, 0.2922266637906432f , 0.56642488157376647f, 0.48264719732105732f,\
+ 0.33217189135029912f, 0.59350947011262178f, 0.50153415976092219f, 0.43685875833034515f}
+
+#define CIMAG_IN32 { 0.26931248093023896f, 0.63257448654621840f, 0.40519540151581168f, 0.91847078315913677f,\
+ 0.04373343335464597f, 0.48185089323669672f, 0.26395560009405017f, 0.41481037065386772f,\
+ 0.28064980218186975f, 0.12800584640353918f, 0.77831285959109664f, 0.21190304495394230f,\
+ 0.11213546665385365f, 0.68568959552794695f, 0.15312166837975383f, 0.69708506017923355f,\
+ 0.84155184263363481f, 0.40620247554033995f, 0.40948254754766822f, 0.87841258011758327f,\
+ 0.11383596854284406f, 0.19983377400785685f, 0.56186607433483005f, 0.58961773291230202f,\
+ 0.68539796629920602f, 0.89062247332185507f, 0.50422128057107329f, 0.34936154074966908f,\
+ 0.38737787725403905f, 0.92228986788541079f, 0.94881842611357570f, 0.34353372454643250f}
+
+
+
+
+#define CREAL_RESULT2 { 0.16527411318384111f , - 0.16505297855474055f }
+
+
+#define CIMAG_RESULT2 {+ 0.64688644628040493f, + 0.01849465793929994f}
+
+
+
+#define CREAL_RESULT3 { 1.29709824733436108f, 0.94154648753137238f, 0.2434220389437592f}
+
+#define CIMAG_RESULT3 { +0.59717983752489090f,+0.61999805178742728f,+0.93089271522808925f}
+
+
+
+
+
+#define CREAL_RESULT4 { 0.62051669345237315f,-0.12307844962924719f, 0.24346416513435543f, 0.10884282691404223f}
+
+#define CIMAG_RESULT4 { +0.53701765113510191f,+0.11296372814103961f,+0.10658199037425220f,-0.19571476336568594f}
+
+
+
+#define CREAL_RESULT5 { 0.62691605370491743f, 0.01919730450714778f, 0.10104198714906780f,-0.07720389203270116f,\
+ 0.17979378254309186f}
+
+#define CIMAG_RESULT5 { +0.54289909722283480f,+0.13998734162926388f,-0.17962778177138733f,+0.12064468327985833f,\
+-0.06305473407586182f}
+
+
+
+#define CREAL_RESULT6 { 0.36402360963014263f, 0.09605967189946550f, 0.01914935343131208f, 0.11197456725252172f,\
+-0.00281267335181221f,-0.04413721258892397f}
+
+#define CIMAG_RESULT6 { +0.39017331654516357f,-0.08647381537197443f,-0.01847428942485585f,-0.00928606038602692f,\
+-0.11828530217444963f,+0.05694693691321624f}
+
+
+
+
+
+#define CREAL_RESULT7 { 0.43821863417646711f, 0.04570283341490348f, 0.00786143114706625f, 0.09081035877037001f,\
+ 0.06907620238256847f,-0.01879476197071369f,-0.08861738164795580f}
+
+#define CIMAG_RESULT7 { +0.39293177811694990f,-0.13474546775513907f,+0.02350839028687007f,-0.01818990984988529f,\
+ -0.03304492053033681f,-0.13370336175502612f,+0.11784427758764042f}
+
+
+
+
+#define CREAL_RESULT8 { 0.50006150756962597f, 0.02175013240250377f, 0.12240753043442965f,-0.02322026233124427f,\
+-0.00844178465195000f,-0.11389905106099872f, 0.09979579551145434f,-0.05419655160111495f}
+
+#define CIMAG_RESULT8 { +0.39448237349279225f,-0.14241475898929634f,-0.02220236556604505f,-0.14652524166940226f,\
+-0.02577395853586495f,+0.03536239646532335f,+0.04400678444653749f,+0.07766555645702852f}
+
+
+
+
+#define CREAL_RESULT9 { 0.4653623884336816f ,-0.10996977634919125f,-0.00630644375731721f,-0.04060246287025721f,\
+ 0.05408191850705556f, 0.01600258566680582f,-0.05864725873797094f,-0.05201672319102815f,\
+-0.03668050804158550f}
+
+#define CIMAG_RESULT9 { +0.47890158897886670f,+0.08218728720967677f,-0.06845717881236174f,-0.04807038546781070f,\
+-0.08014536882440566f,-0.2030002369914648f,+0.22453417104910142f,-0.06865385510029860f, \
+-0.04798354111106445f}
+
+
+
+
+#define CREAL_RESULT10 { 0.47991688111796976f,-0.06991181823164128f,-0.08469577602979275f, 0.07318652166556244f,\
+-0.07052463321312863f, 0.03129850449040533f,-0.12994121698152189f,-0.09609430997689952f,\
+ 0.06979737512491652f, 0.01343173518070941f}
+
+#define CIMAG_RESULT10 { +0.38964297915808854f,+0.03225815718776807f,-0.11005045339360417f,+0.07000358882571070f,\
+-0.03882538926347270f,+0.01466467357240619f,+0.09131179012889759f,-0.02808828423670948f,\
+-0.11655017979588442f,-0.07314316252300754f}
+
+
+
+
+
+#define CREAL_RESULT11 { 0.40752098586579621f, 0.01832270994676578f, 0.00727102452352803f,-0.13808643998727593f,\
+ 0.03761367031409660f, 0.01913753006534984f, 0.14829738766302858f,-0.03282455871021355f,\
+ 0.08531354288243319f,-0.01850240581569137f,-0.03471406311050802f}
+
+#define CIMAG_RESULT11 { +0.54521434381604206f,+0.04263232089408980f,+0.01080182331995891f,-0.16507135273435664f,\
++0.08926061372379648f,+0.01327764965004020f,-0.10524284127370778f,-0.02743692407216465f,\
++0.01530157234736101f,-0.10904555975048559f,+0.08146574602618931f}
+
+
+
+#define CREAL_RESULT12 { 0.56766566393586493f,-0.02954179400241778f, 0.03231997586448970f,-0.08061527988562983f,\
+ 0.12393588887272257f,-0.00005011576253769f,-0.04579487590429687f, 0.18096695473171109f,\
+-0.02460040668391173f, 0.04301438496137660f, 0.06736119091227670f,-0.07861773287010031f}
+
+#define CIMAG_RESULT12 { +0.42399044404737651f,-0.08988211863004507f,-0.06417895954194777f,-0.05903535817439356f,\
+-0.03585983457125090f,-0.08163805724791348f,+0.00020448095165193f,-0.00326952155569338f,\
+-0.06391751330264545f,+0.08415352273732421f,+0.16527532188314309f,-0.07732802237804590f}
+
+#define CREAL_RESULT13 { 0.45819311546018493f, 0.04715640399909302f,-0.02841189190012001f, 0.01471405402274759f,\
+-0.06955117696838889f, 0.08520673650173283f,-0.08379007722081511f,-0.06164570839841994f,\
+-0.07511713555210725f, 0.07790018146444697f, 0.05666948441941852f,-0.04832646187709128f,\
+-0.08077086016003779f}
+
+#define CIMAG_RESULT13 { +0.41406970618006128f,-0.00941536236456233f,-0.04150925434362464f,+0.07093289809698045f,\
++0.05642954059283156f,-0.13856574403878158f,-0.06657177623345527f,+0.08978984633083976f,\
+-0.03246486275259956f,+0.03475196544714984f,-0.02951956674329188f,-0.08259093889333179f,\
+-0.00138085118416531f}
+
+
+
+
+#define CREAL_RESULT14 { 0.55365722569903086f,-0.03431117289603670f,-0.07434176530056802f, 0.09479458498406634f,\
+ 0.04225809799112697f, 0.10711066217766220f, 0.09039926979534348f, 0.04258158766398475f,\
+-0.06766097168605688f, 0.02983162597647674f, 0.16148055537460848f, 0.00306446154680962f,\
+-0.01447548152915653f,-0.05597609967970790f}
+
+#define CIMAG_RESULT14 { +0.41925417428969269f,-0.02346521727072965f,-0.07537174377902310f,+0.12152793513158673f,\
+-0.05435563225189670f,+0.05588517124820697f,+0.03948028804374615f,-0.02547196042723954f,\
++0.04750412291672844f,+0.09081187301248270f,+0.02410149252380316f,-0.00728204510680848f,\
++0.07924950091433607f,+0.04222609705593354f}
+
+
+
+
+#define CREAL_RESULT15 { 0.60260595980410780f,-0.09025313009309296f, 0.07296362400098141f,-0.01312199542974801f,\
+ 0.05196795946996628f, 0.00939805486763355f, 0.07359039581140392f, 0.07244754050834930f,\
+-0.13409874398389474f,-0.06419327756841406f,-0.04062806443214259f, 0.19283708306652805f,\
+ 0.04903632944886174f,-0.00831723960417976f, 0.05579715986245712f}
+
+#define CIMAG_RESULT15 { +0.52861572646846366f,-0.09479760020968324f,+0.06725385149296267f,+0.01462043430946725f,\
+-0.00503137552191604f,-0.05388544405841567f,-0.05301311586381348f,-0.11414862867731596f,\
++0.0617906214666224f ,+0.14723827146724461f,-0.10948893804382542f,+0.00343655851962967f,\
+-0.00538333435303664f,-0.03924473093854008f,+0.06244360380584638f}
+
+
+
+
+#define CREAL_RESULT16 { 0.45740074128843844f,-0.00119937109332679f,-0.09568979823192530f,-0.01738371075123765f,\
+-0.03869746159762144f,-0.05391866381953740f, 0.12416191581397301f,-0.03041585422893309f,\
+-0.03257706691510975f, 0.07000836728092155f,-0.00597921899357861f,-0.03766276570110767f,\
+-0.07796601625159383f,-0.03039291932884991f,-0.03422318488120085f, 0.03575872707088203f}
+
+#define CIMAG_RESULT16 { +0.40480042458511889f,+0.06953094033520663f,+0.02374777548578576f,-0.03393710545080092f,\
+-0.04651592345908284f,+0.02783744013794178f,-0.03035825342604098f,-0.06447129475682091f,\
+-0.11649833549745381f,-0.11413977271896644f,+0.11722373704793855f,+0.08102030470498481f,\
+-0.06532836984843016f,+0.00779635766618338f,-0.01208991333178105f,+0.02069446945645629f}
+
+
+
+
+
+#define CREAL_RESULT32 { 0.47864284948445857f, 0.05482834035731039f,-0.01530773095660632f,-0.01750083123738436f,\
+ -0.05071297103611097f, 0.08766815171372286f, 0.02106608347521239f,-0.05109320958418949f,\
+ -0.01096817385405302f, 0.02416709596518544f,-0.05098444057349576f,-0.01448958336761648f,\
+ 0.02532074256370129f,-0.09984237842467819f,-0.06358972398280244f,-0.04611519259707146f,\
+ 0.01104057650081813f,-0.03475148917606731f, 0.00813855773340646f,-0.00568704237169753f,\
+ 0.01830285230723486f, 0.02749700538425181f,-0.04780122330152622f, 0.06632936566012661f,\
+ -0.01447601290419698f, 0.03116875276343186f, 0.00123360692547217f, 0.01833898177168673f,\
+ -0.03654957125464739f, 0.00547684889715929f,-0.05208112856470785f,-0.05594424285220599f}
+
+
+
+#define CIMAG_RESULT32 {+0.48466352955438197f,+0.04862008402656083f,+0.04890918577469192f,-0.07661834259188156f,\
+ +0.01684868035424048f,-0.06277273594077343f,-0.03536555772325747f,-0.04086803002308132f,\
+ -0.04373891325667500f,+0.03378928555068783f,+0.09272389885362962f,-0.01252633931303314f,\
+ +0.04715379187194862f,+0.04212975779784539f,+0.00924226411866865f,-0.06146319342441199f,\
+ -0.06222798605449498f,+0.03846733709242996f,-0.06362612522976926f,+0.02110331414670667f,\
+ +0.06568727290671772f,-0.09854847704278780f,+0.04828755172931871f,-0.06711471562709365f,\
+ -0.03694727551192045f,-0.04323841461679329f,-0.07059643871085296f,-0.01972938456264230f,\
+ +0.04778892314703904f,+0.02763841783182228f,+0.00662935995827029f,-0.01498824415525237f}
+static void cifftmaTest2 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN2;
+ float tImagIn [] = CIMAG_IN2 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT2 ;
+ float tImagResult [] = CIMAG_RESULT2 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS2));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS2 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS2) ;
+
+
+
+ cifftma ( in , ROW , COLS2 , 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*COLS2 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ creals (Result[i]) ,
+ cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])));
+
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+static void cifftmaTest3 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN3;
+ float tImagIn [] = CIMAG_IN3 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT3;
+ float tImagResult [] = CIMAG_RESULT3 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS3));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS3 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS3) ;
+
+
+
+ cifftma ( in , ROW , COLS3 , 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*COLS3 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ creals (Result[i]) ,
+ cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i]))
+ );
+/*
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+*/
+ }
+
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+
+static void cifftmaTest4 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN4;
+ float tImagIn [] = CIMAG_IN4 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT4 ;
+ float tImagResult [] = CIMAG_RESULT4 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS4));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS4 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS4) ;
+
+
+ cifftma ( in , ROW , COLS4 , 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*COLS4 ) ; 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 ,creals(out[i]) , cimags(out[i]), creals (Result[i]) , cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])));
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+ }
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+
+static void cifftmaTest5 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN5;
+ float tImagIn [] = CIMAG_IN5 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT5;
+ float tImagResult [] = CIMAG_RESULT5 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS5));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS5 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS5) ;
+
+
+
+ cifftma ( in , ROW , COLS5 , 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*COLS5 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ creals (Result[i]) ,
+ cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])));
+/*
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+*/
+ }
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+
+static void cifftmaTest6 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN6;
+ float tImagIn [] = CIMAG_IN6 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT6;
+ float tImagResult [] = CIMAG_RESULT6;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS6));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS6 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS6) ;
+
+
+
+ cifftma ( 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ creals (Result[i]) ,
+ cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])));
+/*
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+*/
+ }
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+
+static void cifftmaTest7 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN7;
+ float tImagIn [] = CIMAG_IN7 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT7;
+ float tImagResult [] = CIMAG_RESULT7;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS7));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS7 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS7) ;
+
+
+
+ cifftma ( in , ROW , COLS7 , 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*COLS7 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ creals (Result[i]) ,
+ cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])));
+/*
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+*/
+ }
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+static void cifftmaTest8 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN8;
+ float tImagIn [] = CIMAG_IN8 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT8 ;
+ float tImagResult [] = CIMAG_RESULT8 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS8));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS8 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS8) ;
+
+
+ cifftma ( in , ROW , COLS8 , 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*COLS8 ) ; 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 ,creals(out[i]) , cimags(out[i]), creals (Result[i]) , cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])));
+
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+
+static void cifftmaTest9 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN9;
+ float tImagIn [] = CIMAG_IN9 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT9 ;
+ float tImagResult [] = CIMAG_RESULT9 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS9));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS9 );
+ floatComplex* Result = FloatComplexMatrix ( tRealResult , tImagResult ,ROW*COLS9) ;
+
+
+ cifftma ( in , ROW , COLS9 , 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*COLS9 ) ; 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 ,creals(out[i]) , cimags(out[i]), creals (Result[i]) , cimags (Result[i]),
+ fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])));
+/*
+ if ( creals(out[i]) < 1e-14 && creals (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - creals (Result[i]) ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && cimags (Result[i]) < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - cimags (Result[i]) ) / fabs (cimags (out[i])) < 3e-6 ) ;
+*/
+ }
+ free(out);
+ free(in);
+ free(Result);
+
+}
+
+static void cifftmaTest10 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN10;
+ float tImagIn [] = CIMAG_IN10 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT10 ;
+ float tImagResult [] = CIMAG_RESULT10 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS10));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS10 );
+
+
+
+ cifftma ( in , ROW , COLS10 , 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*COLS10 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+/*
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-6 ) ;
+*/
+ }
+ free(out);
+ free(in);
+}
+
+static void cifftmaTest11 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN11;
+ float tImagIn [] = CIMAG_IN11 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT11 ;
+ float tImagResult [] = CIMAG_RESULT11 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS11));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS11 );
+
+
+
+ cifftma ( in , ROW , COLS11 , 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*COLS11 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+ free(out);
+ free(in);
+
+}
+
+
+static void cifftmaTest12 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN12;
+ float tImagIn [] = CIMAG_IN12 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT12 ;
+ float tImagResult [] = CIMAG_RESULT12 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS12));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS12 );
+
+
+
+ cifftma ( in , ROW , COLS12 , 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*COLS12 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-5 ) ;
+
+ }
+ free(out);
+ free(in);
+
+}
+
+
+static void cifftmaTest13 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN13;
+ float tImagIn [] = CIMAG_IN13 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT13 ;
+ float tImagResult [] = CIMAG_RESULT13 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS13));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS13 );
+
+
+
+ cifftma ( in , ROW , COLS13 , 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*COLS13 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+ free(out);
+ free(in);
+
+}
+
+
+static void cifftmaTest14 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN14;
+ float tImagIn [] = CIMAG_IN14 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT14 ;
+ float tImagResult [] = CIMAG_RESULT14 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS14));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS14 );
+
+
+
+ cifftma ( in , ROW , COLS14 , 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*COLS14 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+ free(out);
+ free(in);
+
+}
+
+
+
+static void cifftmaTest15 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN15;
+ float tImagIn [] = CIMAG_IN15 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT15 ;
+ float tImagResult [] = CIMAG_RESULT15 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS15));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS15 );
+
+
+
+ cifftma ( in , ROW , COLS15 , 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*COLS15 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+ free(out);
+ free(in);
+
+}
+
+
+
+static void cifftmaTest16 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN16;
+ float tImagIn [] = CIMAG_IN16 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT16 ;
+ float tImagResult [] = CIMAG_RESULT16 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS16));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS16 );
+
+
+
+ cifftma ( in , ROW , COLS16 , 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*COLS16 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-6 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+ free(out);
+ free(in);
+
+}
+
+
+
+static void cifftmaTest32 (void )
+{
+ int i = 0 ;
+
+ float tRealIn [] = CREAL_IN32;
+ float tImagIn [] = CIMAG_IN32 ;
+
+
+
+ float tRealResult [] = CREAL_RESULT32 ;
+ float tImagResult [] = CIMAG_RESULT32 ;
+
+
+
+ floatComplex* out = (floatComplex*) malloc ( sizeof(floatComplex) * (unsigned int) (ROW*COLS32));
+ floatComplex* in = FloatComplexMatrix ( tRealIn , tImagIn , ROW*COLS32 );
+
+
+
+ cifftma ( in , ROW , COLS32 , 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*COLS32 ) ; 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 ,
+ creals(out[i]) ,
+ cimags(out[i]),
+ tRealResult[i] ,
+ tImagResult[i],
+ fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) ,
+ fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])));
+
+
+ if ( creals(out[i]) < 1e-14 && tRealResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( creals(out[i]) - tRealResult[i] ) / fabs (creals (out[i])) < 3e-5 );
+
+
+ if ( cimags(out[i]) < 1e-14 && tImagResult[i] < 1e-18 )
+ assert ( 1 ) ;
+ else
+ assert ( fabs( cimags(out[i]) - tImagResult[i] ) / fabs (cimags (out[i])) < 3e-6 ) ;
+
+ }
+ free(out);
+ free(in);
+
+}
+
+static int testFft(void) {
+
+ printf("\n>>>> FFT Tests\n");
+ printf("\t>>>> Matrix Float Realt Tests\n");
+ /*dfftmaTest();*/
+
+ printf("\n\n\n");
+
+ printf("\n\t>>>> Vector 2 Float Complex Tests\n");
+ cifftmaTest2();
+ printf("\n\t>>>> Vector 3 Float Complex Tests\n");
+ cifftmaTest3();
+ printf("\n\t>>>> Vector 4 Float Complex Tests\n");
+ cifftmaTest4();
+ printf("\n\t>>>> Vector 5 Float Complex Tests\n");
+ cifftmaTest5();
+ printf("\n\t>>>> Vector 6 Float Complex Tests\n");
+ cifftmaTest6();
+ printf("\n\t>>>> Vector 7 Float Complex Tests\n");
+ cifftmaTest7();
+ printf("\n\t>>>> Vector 8 Float Complex Tests\n");
+ cifftmaTest8();
+ printf("\n\t>>>> Vector 9 Float Complex Tests\n");
+ cifftmaTest9();
+ printf("\n\t>>>> Vector 10 Float Complex Tests\n");
+ cifftmaTest10();
+ printf("\n\t>>>> Vector 11 Float Complex Tests\n");
+ cifftmaTest11();
+ printf("\n\t>>>> Vector 12 Float Complex Tests\n");
+ cifftmaTest12();
+ printf("\n\t>>>> Vector 13 Float Complex Tests\n");
+ cifftmaTest13();
+ printf("\n\t>>>> Vector 14 Float Complex Tests\n");
+ cifftmaTest14();
+ printf("\n\t>>>> Vector 14 Float Complex Tests\n");
+ cifftmaTest15();
+ printf("\n\t>>>> Vector 16 Float Complex Tests\n");
+ cifftmaTest16();
+ printf("\n\t>>>> Vector 32 Float Complex Tests\n");
+ cifftmaTest32();
+ return 0;
+}
+
+
+
+int main(void) {
+ assert(testFft() == 0);
+ return 0;
+}
diff --git a/src/c/signalProcessing/ifft/testMatIfft.c b/src/c/signalProcessing/ifft/testMatIfft.c
new file mode 100644
index 0000000..6acb749
--- /dev/null
+++ b/src/c/signalProcessing/ifft/testMatIfft.c
@@ -0,0 +1,289 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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 <assert.h>
+#include <stdio.h>
+#include <math.h>
+#include "ifft.h"
+
+#define test1 {0.2113249000000000099586,0.3303270999999999846253,0.8497451999999999783242,0.0683740000000000042180,\
+ 0.7560438999999999909463,0.6653810999999999475918,0.6857309999999999794440,0.5608486000000000304411,\
+ 0.0002211000000000000075,0.6283917999999999448590,0.8782164999999999555058,0.6623569000000000261963}
+
+#define test2 {0.2113249000000000099586,0.6857309999999999794440,\
+ 0.3303270999999999846253,0.5608486000000000304411,\
+ 0.8497451999999999783242,0.0002211000000000000075,\
+ 0.0683740000000000042180,0.6283917999999999448590,\
+ 0.7560438999999999909463,0.8782164999999999555058,\
+ 0.6653810999999999475918,0.6623569000000000261963}
+
+#define test3 {0.2113249000000000099586,0.7560438999999999909463,0.0002211000000000000075,\
+ 0.3303270999999999846253,0.6653810999999999475918,0.6283917999999999448590,\
+ 0.8497451999999999783242,0.6857309999999999794440,0.8782164999999999555058,\
+ 0.0683740000000000042180,0.5608486000000000304411,0.6623569000000000261963}
+
+#define test4 {0.2113249000000000099586,0.0683740000000000042180,0.6857309999999999794440,0.6283917999999999448590,\
+ 0.3303270999999999846253,0.7560438999999999909463,0.5608486000000000304411,0.8782164999999999555058,\
+ 0.8497451999999999783242,0.6653810999999999475918,0.0002211000000000000075,0.6623569000000000261963}
+
+#define test6 {0.2113249000000000099586,0.8497451999999999783242,0.7560438999999999909463,0.6857309999999999794440,0.0002211000000000000075,0.8782164999999999555058,\
+ 0.3303270999999999846253,0.0683740000000000042180,0.6653810999999999475918,0.5608486000000000304411,0.6283917999999999448590,0.6623569000000000261963}
+
+#define test9 {1,2,3,4,5,6,7,8,9}
+
+#define RRESULT1 {0.5247468416666665191883,-0.0159011882620516131759,0.0056361333333333485385,\
+-0.1205085666666666222024,-0.0631457083333333279995,0.0178082299287182777014,\
+0.0388002583333332817794,0.0178082299287182777014,-0.0631457083333333279995,\
+-0.1205085666666666222024,0.0056361333333333485385,-0.0159011882620516131759}
+
+#define IRESULT1 {0,0.0036551311266069114181,0.0881077213977346646034,-0.0277100416666666432564,\
+-0.0250953810419741324411,0.1086392772067264061997,0,-0.1086392772067264061997,\
+0.0250953810419741324411,0.0277100416666666432564,-0.0881077213977346646034,\
+-0.0036551311266069114181}
+
+#define RRESULT2 {0.5247468416666666302106,-0.0445474749999999961037,\
+0.0056361333333333554774,-0.0326510583333333367917,\
+-0.0631457083333333279995,-0.1070292499999999646931,\
+0.0388002583333333234128,0.0867050416666666767807,\
+-0.0631457083333333279995,-0.1070292499999999646931,\
+0.0056361333333333554774,-0.0326510583333333367917}
+
+#define IRESULT2 {0,0,\
+0.0881077213977346646034,-0.0532714598190739199723,\
+-0.0250953810419741081550,0.0869808780098438039108,\
+0,0,\
+0.0250953810419741081550,-0.0869808780098438039108,\
+-0.0881077213977346646034,0.0532714598190739199723}
+
+#define RRESULT3 {0.5247468416666665191883,-0.0799020208333333092909,-0.0799020208333333092909,\
+-0.1205085666666666222024,-0.0295434574969313107351,-0.0095530508364020244594,\
+0.0388002583333332817794,0.0633959958333333295499,0.0633959958333333295499,\
+-0.1205085666666666222024,-0.0095530508364020244594,-0.0295434574969313107351}
+
+#define IRESULT3 {0,-0.0359991099727139385323,0.0359991099727139385323,\
+-0.0277100416666666432564,-0.0873273732016361936559,0.0495491398683028591576,\
+0,-0.0453116254771752935415,0.0453116254771752935415,\
+0.0277100416666666432564,-0.0495491398683028591576,0.0873273732016361936559}
+
+#define RRESULT4 {0.5247468416666666302106,0.0120497083333333254718,-0.0850471916666666466478,\
+ 0.0120497083333333254718,\
+-0.0631457083333333279995,-0.0562903158939566938823,0.0675598583333333335688,\
+ -0.0743609174393766170219,\
+-0.0631457083333333279995,-0.0743609174393766170219,0.0675598583333333335688,\
+ -0.0562903158939566938823}
+
+#define IRESULT4 {0,0.0565971833333333285143,0,-0.0565971833333333285143,\
+-0.0250953810419741081550,0.1196492105704671793376,0.0191473164961883796087,\
+ 0.0362419439038005331000,\
+0.0250953810419741081550,-0.0362419439038005331000,-0.0191473164961883796087,\
+ -0.1196492105704671793376}
+
+#define RRESULT6 {0.5247468416666666302106,-0.0417166874999999950924,-0.0388444708333333249550,\
+ -0.0927985249999999928239,-0.0388444708333333249550,-0.0417166874999999950924,\
+0.0388002583333333372906,0.0436237291666666596179,-0.0186651041666666545060,\
+ -0.1482186083333333070922,-0.0186651041666666545060,0.0436237291666666596179}
+
+#define IRESULT6 {0,-0.0122945224279474088491,0.1021380474100006957583,0,-0.1021380474100006957583,\
+ 0.0122945224279474088491,\
+0,-0.0926896236521720928714,0.0110650550297080874085,0,-0.0110650550297080874085,\
+ 0.0926896236521720928714}
+
+#define RRESULT9 {5,-0.5000000000000002220446,-0.5000000000000002220446,\
+ -1.4999999999999997779554,- 0.0000000000000000286185, 0.0000000000000001396408,\
+ -1.4999999999999997779554,0.0000000000000001396408,- 0.0000000000000000286185}
+
+#define IRESULT9 {0,- 0.2886751345948128100183,0.2886751345948128100183,\
+ - 0.8660254037844383745437,- 0.0000000000000000138778,0.0000000000000000138778,\
+ + 0.8660254037844383745437,- 0.0000000000000000138778,+ 0.0000000000000000138778}
+
+
+static void difftmaTest(void){
+ int i;
+
+ double in1[]=test1;
+ double in2[]=test2;
+ double in3[]=test3;
+ double in4[]=test4;
+ double in6[]=test6;
+ double in9[]=test9;
+
+ double resR1[]=RRESULT1;
+ double resR2[]=RRESULT2;
+ double resR3[]=RRESULT3;
+ double resR4[]=RRESULT4;
+ double resR6[]=RRESULT6;
+ double resR9[]=RRESULT9;
+
+ double out1[12], out2[12], out3[12], out4[12], out6[12], out9[9];
+
+
+ printf(" >>> Matrice 1*12 <<< \n");
+ difftma(in1, 1, 12, out1);
+ for (i=0;i<12;i++){
+ if (out1[i]>1e-16) assert( (fabs(out1[i]-resR1[i]) / fabs(out1[i])) < 3e-14 );
+ else assert(1);
+ }
+
+ printf(" >>> Matrice 2*6 <<< \n");
+ difftma(in2, 2, 6, out2);
+ for (i=0;i<12;i++){
+ if (out2[i]>1e-16) assert( (fabs(out2[i]-resR2[i]) / fabs(out2[i])) < 3e-15 );
+ else assert(1);
+ }
+
+
+ printf(" >>> Matrice 3*4 <<< \n");
+ difftma(in3, 3, 4, out3);
+ for (i=0;i<12;i++){
+ if (out3[i]>1e-16) assert( (fabs(out3[i]-resR3[i]) / fabs(out3[i])) < 3e-15 );
+ else assert(1);
+ }
+
+ printf(" >>> Matrice 4*3 <<< \n");
+ difftma(in4, 4, 3, out4);
+ for (i=0;i<12;i++){
+ if (out4[i]>1e-16) assert( (fabs(out4[i]-resR4[i]) / fabs(out4[i])) < 3e-15 );
+ else assert(1);
+ }
+
+ printf(" >>> Matrice 6*2 <<< \n");
+ difftma(in6, 6, 2, out6);
+ for (i=0;i<12;i++){
+ if (out6[i]>1e-16) assert( (fabs(out6[i]-resR6[i]) / fabs(out6[i])) < 3e-15 );
+ else assert(1);
+ }
+
+ printf(" >>> Matrice 3*3 <<< \n");
+ difftma(in9, 3, 3, out9);
+ for (i=0;i<9;i++){
+ if (out9[i]>1e-16) assert( (fabs(out9[i]-resR9[i]) / fabs(out9[i])) < 3e-15 );
+ else assert(1);
+ }
+
+
+}
+
+static void zifftmaTest(void){
+ int i;
+
+ double inR1[]=test1;
+ double inR2[]=test2;
+ double inR3[]=test3;
+ double inR4[]=test4;
+ double inR6[]=test6;
+ double inR9[]=test9;
+
+ double resR1[]=RRESULT1;
+ double resI1[]=IRESULT1;
+ double resR2[]=RRESULT2;
+ double resI2[]=IRESULT2;
+ double resR3[]=RRESULT3;
+ double resI3[]=IRESULT3;
+ double resR4[]=RRESULT4;
+ double resI4[]=IRESULT4;
+ double resR6[]=RRESULT6;
+ double resI6[]=IRESULT6;
+
+
+ doubleComplex *in1, *in2, *in3, *in4, *in6, *in9, out1[12], out2[12], out3[12], out4[12], out6[12];
+
+ in1=(doubleComplex *)malloc((unsigned int)12*sizeof(doubleComplex));
+ in2=(doubleComplex *)malloc((unsigned int)12*sizeof(doubleComplex));
+ in3=(doubleComplex *)malloc((unsigned int)12*sizeof(doubleComplex));
+ in4=(doubleComplex *)malloc((unsigned int)12*sizeof(doubleComplex));
+ in6=(doubleComplex *)malloc((unsigned int)12*sizeof(doubleComplex));
+ in9=(doubleComplex *)malloc((unsigned int)9*sizeof(doubleComplex));
+
+
+
+ for (i=0;i<12;i++){
+ in1[i]=DoubleComplex(inR1[i],0);
+ in2[i]=DoubleComplex(inR2[i],0);
+ in3[i]=DoubleComplex(inR3[i],0);
+ in4[i]=DoubleComplex(inR4[i],0);
+ in6[i]=DoubleComplex(inR6[i],0);
+ }
+ for (i=0;i<9;i++){
+ in9[i]=DoubleComplex(inR9[i],0);
+
+ }
+
+ /* !!!!!!!!!!!!!!!!!!!!!!!
+ for the imaginary part, the assert is out + res instead of out - res
+ cause I export the transposate of the result matrix and the transposate change the sign
+ of the imaginary part.
+ And instead of change all the define, I only change the sign of the assert.*/
+ printf(" >>> Matrice 1*12 <<< \n");
+ zifftma(in1, 1, 12, out1);
+ for (i=0;i<12;i++){
+ if (zreals(out1[i])>1e-16) assert( (fabs(zreals(out1[i])-resR1[i]) / fabs(zreals(out1[i]))) < 3e-14 );
+ else assert(1);
+ if (zimags(out1[i])>1e-16) assert( (fabs(zimags(out1[i])+resI1[i]) / fabs(zimags(out1[i]))) < 3e-15 );
+ else assert(1);
+ }
+
+ printf(" >>> Matrice 2*6 <<< \n");
+ zifftma(in2, 2, 6, out2);
+ for (i=0;i<12;i++){
+ if (zreals(out2[i])>1e-16) assert( (fabs(zreals(out2[i])-resR2[i]) / fabs(zreals(out2[i]))) < 3e-15 );
+ else assert(1);
+ if (zimags(out2[i])>1e-16) assert( (fabs(zimags(out2[i])+resI2[i]) / fabs(zimags(out2[i]))) < 3e-13 );
+ else assert(1);
+ }
+
+
+ printf(" >>> Matrice 3*4 <<< \n");
+ zifftma(in3, 3, 4, out3);
+ for (i=0;i<12;i++){
+ if (zreals(out3[i])>1e-16) assert( (fabs(zreals(out3[i])-resR3[i]) / fabs(zreals(out3[i]))) < 3e-15 );
+ else assert(1);
+ if (zimags(out3[i])>1e-16) assert( (fabs(zimags(out3[i])+resI3[i]) / fabs(zimags(out3[i]))) < 3e-15 );
+ else assert(1);
+ }
+
+ printf(" >>> Matrice 4*3 <<< \n");
+ zifftma(in4, 4, 3, out4);
+ for (i=0;i<12;i++){
+ if (zreals(out4[i])>1e-16) assert( (fabs(zreals(out4[i])-resR4[i]) / fabs(zreals(out4[i]))) < 3e-15 );
+ else assert(1);
+ if (zimags(out4[i])>1e-16) assert( (fabs(zimags(out4[i])+resI4[i]) / fabs(zimags(out4[i]))) < 3e-15 );
+ else assert(1);
+ }
+
+ printf(" >>> Matrice 6*2 <<< \n");
+ zifftma(in6, 6, 2, out6);
+ for (i=0;i<12;i++){
+ if (zreals(out6[i])>1e-16) assert( (fabs(zreals(out6[i])-resR6[i]) / fabs(zreals(out6[i]))) < 3e-15 );
+ else assert(1);
+ if (zimags(out6[i])>1e-16) assert( (fabs(zimags(out6[i])+resI6[i]) / fabs(zimags(out6[i]))) < 3e-15 );
+ else assert(1);
+ }
+
+
+}
+
+
+
+static int testiFft(void){
+ difftmaTest();
+ zifftmaTest();
+ return 0;
+}
+
+
+int main(void) {
+ printf(">>> Fft Matrices Double Tests <<<\n");
+ assert(testiFft() == 0);
+ return 0;
+}
+
diff --git a/src/c/signalProcessing/ifft/test_DoubleIfft/testDoubleIfft.vcxproj b/src/c/signalProcessing/ifft/test_DoubleIfft/testDoubleIfft.vcxproj
new file mode 100644
index 0000000..29ba389
--- /dev/null
+++ b/src/c/signalProcessing/ifft/test_DoubleIfft/testDoubleIfft.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{633B36B2-AF28-4EF8-A236-021AA1ECF18A}</ProjectGuid>
+ <RootNamespace>testDoubleIfft</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleIfft.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/ifft/test_DoubleIfft/testDoubleIfft.vcxproj.filters b/src/c/signalProcessing/ifft/test_DoubleIfft/testDoubleIfft.vcxproj.filters
new file mode 100644
index 0000000..44b3141
--- /dev/null
+++ b/src/c/signalProcessing/ifft/test_DoubleIfft/testDoubleIfft.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleIfft.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/ifft/test_FloatIfft/testFloatIfft.vcxproj b/src/c/signalProcessing/ifft/test_FloatIfft/testFloatIfft.vcxproj
new file mode 100644
index 0000000..26fee50
--- /dev/null
+++ b/src/c/signalProcessing/ifft/test_FloatIfft/testFloatIfft.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{3545DD4A-7DE1-4DB8-A28F-BBCA0278BA57}</ProjectGuid>
+ <RootNamespace>testFloatIfft</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatIfft.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/ifft/test_FloatIfft/testFloatIfft.vcxproj.filters b/src/c/signalProcessing/ifft/test_FloatIfft/testFloatIfft.vcxproj.filters
new file mode 100644
index 0000000..c2fa6b7
--- /dev/null
+++ b/src/c/signalProcessing/ifft/test_FloatIfft/testFloatIfft.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatIfft.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/ifft/test_MatIfft/testMatIfft.vcxproj b/src/c/signalProcessing/ifft/test_MatIfft/testMatIfft.vcxproj
new file mode 100644
index 0000000..2cf6185
--- /dev/null
+++ b/src/c/signalProcessing/ifft/test_MatIfft/testMatIfft.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{2F903F45-A053-47F8-BEA7-2490DEA6C9C5}</ProjectGuid>
+ <RootNamespace>testMatIfft</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testMatIfft.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/ifft/test_MatIfft/testMatIfft.vcxproj.filters b/src/c/signalProcessing/ifft/test_MatIfft/testMatIfft.vcxproj.filters
new file mode 100644
index 0000000..8ea762e
--- /dev/null
+++ b/src/c/signalProcessing/ifft/test_MatIfft/testMatIfft.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testMatIfft.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/ifft/zifftma.c b/src/c/signalProcessing/ifft/zifftma.c
new file mode 100644
index 0000000..b5a00dd
--- /dev/null
+++ b/src/c/signalProcessing/ifft/zifftma.c
@@ -0,0 +1,160 @@
+/*
+ * 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 <stdlib.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*2 );
+
+ doubleComplex* inTemp = (doubleComplex*) malloc ( sizeof (doubleComplex) * (unsigned int) size*2 );
+
+
+
+ zimaga ( in , size , imagIn) ;
+ zreala ( in , size , realIn) ;
+ for (i=0;i<size;i++) inCopy[i]=in[i];
+
+ if ( rows == 1 || cols == 1 )
+ {
+ /*test if size is a power of 2*/
+ sizeTemp = (int) pow(2.0, (int) (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
+ {
+ /*test if rows and/or cols is a power of 2*/
+ rowsTemp = (int) pow(2.0, (int)(log(rows + 0.5) / log(2.0))) ;
+ colsTemp = (int) pow(2.0 ,(int)(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);
+
+
+}
diff --git a/src/c/signalProcessing/includes/buttmag.h b/src/c/signalProcessing/includes/buttmag.h
new file mode 100644
index 0000000..ef17b7e
--- /dev/null
+++ b/src/c/signalProcessing/includes/buttmag.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __BUTTMAG_H__
+#define __BUTTMAG_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dbuttmags(double order, double omegac, double* sample, int size,double* out);
+void u8buttmags(int order, int omegac, double* sample, int size,double* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __BUTTMAG_H__ */
+
diff --git a/src/c/signalProcessing/includes/cheb1mag.h b/src/c/signalProcessing/includes/cheb1mag.h
new file mode 100644
index 0000000..369ee4c
--- /dev/null
+++ b/src/c/signalProcessing/includes/cheb1mag.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __CHEB1MAG_H__
+#define __CHEB1MAG_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dcheb1mags(double n, double omegac, double epsilon, double* sample,int size,double* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __CHEB1MAG_H__ */
diff --git a/src/c/signalProcessing/includes/cheb2mag.h b/src/c/signalProcessing/includes/cheb2mag.h
new file mode 100644
index 0000000..0516ca5
--- /dev/null
+++ b/src/c/signalProcessing/includes/cheb2mag.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __CHEB2MAG_H__
+#define __CHEB2MAG_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dcheb2mags(double n,double omegar, double A, double* sample,int size,double* oup);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __CHEB2MAG_H__ */
diff --git a/src/c/signalProcessing/includes/conv.h b/src/c/signalProcessing/includes/conv.h
new file mode 100644
index 0000000..9dd43a5
--- /dev/null
+++ b/src/c/signalProcessing/includes/conv.h
@@ -0,0 +1,41 @@
+/*
+ * 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
+ *
+ */
+
+#ifndef __CONV_H__
+#define __CONV_H__
+
+#include <math.h>
+#include <stdlib.h>
+#include "dynlib_signalprocessing.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "multiplication.h"
+#include "ifft.h"
+#include "fft.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/* Computes the convolution between VECTORS */
+
+EXTERN_SIGPROC void sconva(float *in1, int size1, float *in2,int size2, float *out);
+
+EXTERN_SIGPROC void dconva(double *in1, int size1, double *in2,int size2, double *out);
+
+EXTERN_SIGPROC void cconva(floatComplex *in1, int size1, floatComplex *in2,int size2, floatComplex *out);
+
+EXTERN_SIGPROC void zconva(doubleComplex *in1, int size1, doubleComplex *in2,int size2, doubleComplex *out);
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* !__CONV_H__ */
diff --git a/src/c/signalProcessing/includes/conv2d.h b/src/c/signalProcessing/includes/conv2d.h
new file mode 100644
index 0000000..ed71d92
--- /dev/null
+++ b/src/c/signalProcessing/includes/conv2d.h
@@ -0,0 +1,38 @@
+/*
+ * 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
+ *
+ */
+
+#ifndef __CONV2D_H__
+#define __CONV2D_H__
+
+#include "dynlib_signalprocessing.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Computes the convolution between MATRICES */
+
+EXTERN_SIGPROC void sconv2da(float *in1, int lines1, int columns1, float *in2, int lines2, int columns2, float *out);
+
+EXTERN_SIGPROC void dconv2da(double *in1, int lines1, int columns1, double *in2, int lines2, int columns2, double *out);
+
+EXTERN_SIGPROC void cconv2da(floatComplex *in1, int lines1, int columns1, floatComplex *in2, int lines2, int columns2, floatComplex *out);
+
+EXTERN_SIGPROC void zconv2da(doubleComplex *in1, int lines1, int columns1, doubleComplex *in2, int lines2, int columns2, doubleComplex *out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* !__CONV2D_H__ */
diff --git a/src/c/signalProcessing/includes/crossCorr.h b/src/c/signalProcessing/includes/crossCorr.h
new file mode 100644
index 0000000..c44d666
--- /dev/null
+++ b/src/c/signalProcessing/includes/crossCorr.h
@@ -0,0 +1,37 @@
+
+/*
+ * 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
+ *
+ */
+
+#ifndef __CROSSCORR_H__
+#define __CROSSCORR_H__
+
+#include "dynlib_signalprocessing.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_SIGPROC void scrossCorra(float* in1, int rows1, int cols1, float* in2, int rows2, int cols2, float* out);
+
+EXTERN_SIGPROC void dcrossCorra(double* in1, int rows1, int cols1, double* in2, int rows2, int cols2, double* out);
+
+EXTERN_SIGPROC void ccrossCorra(floatComplex* in1, int rows1, int cols1, floatComplex* in2, int rows2, int cols2, floatComplex* out);
+
+EXTERN_SIGPROC void zcrossCorra(doubleComplex* in1, int rows1, int cols1, doubleComplex* in2, int rows2, int cols2, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __CROSSCORR_H__ */
diff --git a/src/c/signalProcessing/includes/dynlib_signalprocessing.h b/src/c/signalProcessing/includes/dynlib_signalprocessing.h
new file mode 100644
index 0000000..fcbe580
--- /dev/null
+++ b/src/c/signalProcessing/includes/dynlib_signalprocessing.h
@@ -0,0 +1,26 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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
+*
+*/
+
+#ifndef __DYNLIB_SIGNALPROCESSING_H__
+#define __DYNLIB_SIGNALPROCESSING_H__
+
+#if defined(_MSC_VER) && defined(_USRDLL)
+ #if SIGNALPROCESSING_EXPORTS
+ #define EXTERN_SIGPROC __declspec (dllexport)
+ #else
+ #define EXTERN_SIGPROC __declspec (dllimport)
+ #endif
+#else
+ #define EXTERN_SIGPROC
+#endif
+
+#endif /* __DYNLIB_SIGNALPROCESSING_H__ */
diff --git a/src/c/signalProcessing/includes/ffilt.h b/src/c/signalProcessing/includes/ffilt.h
new file mode 100644
index 0000000..f38df6e
--- /dev/null
+++ b/src/c/signalProcessing/includes/ffilt.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __FFILT_H__
+#define __FFILT_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void gffilts(char* ft,int size,double N,double fc,double fh,double* oup);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __FFILT_H__ */
diff --git a/src/c/signalProcessing/includes/fft.h b/src/c/signalProcessing/includes/fft.h
new file mode 100644
index 0000000..efc85c0
--- /dev/null
+++ b/src/c/signalProcessing/includes/fft.h
@@ -0,0 +1,57 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#ifndef __FFT_H__
+#define __FFT_H__
+
+#include "dynlib_signalprocessing.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+
+#define sffts(in) in
+#define dffts(in) in
+#define cffts(in) in
+#define zffts(in) in
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_SIGPROC void sfftma(float* in,int rows,int columns,float* out);
+
+EXTERN_SIGPROC void dfftma(double* in,int rows,int columns,double* out);
+
+/*
+** compute the fast fourier transform of a vector
+** param in : the input matrix in complex float precision
+** param rows: number of rows of the input matrix
+** param cols: number of cols of the input matrix
+** param out : the transformed matrix in complex float precision
+*/
+
+EXTERN_SIGPROC void cfftma ( floatComplex* in , int rows, int cols, floatComplex* out);
+/*
+** compute the fast fourier transform of a vector
+** param in : the input matrix in complex double precision
+** param rows: number of rows of the input matrix
+** param cols: number of cols of the input matrix
+** param out : the transformed matrix in complex double precision
+*/
+EXTERN_SIGPROC void zfftma ( doubleComplex* in , int rows, int cols, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* !__FFT_H__ */
+
diff --git a/src/c/signalProcessing/includes/fftshift.h b/src/c/signalProcessing/includes/fftshift.h
new file mode 100644
index 0000000..242e7ff
--- /dev/null
+++ b/src/c/signalProcessing/includes/fftshift.h
@@ -0,0 +1,76 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#ifndef __FFTSHIFT_H__
+#define __FFTSHIFT_H__
+
+
+#include "dynlib_signalprocessing.h"
+
+/*
+ fftshift rearrange the result of fft(x)
+ it's call like that : fftshift(y), y=ff(x)
+*/
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+
+#define sfftshifts(in) in
+#define dfftshifts(in) in
+#define cfftshifts(in) in
+#define zfftshifts(in) in
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_SIGPROC void sfftshifta(float* in,int rows,int columns,float* out);
+
+EXTERN_SIGPROC void dfftshifta(double* in,int rows,int columns,double* out);
+
+EXTERN_SIGPROC void cfftshifta ( floatComplex* in , int rows, int cols, floatComplex* out);
+
+EXTERN_SIGPROC void zfftshifta ( doubleComplex* in , int rows, int cols, doubleComplex* out);
+
+
+#define srowfftshifts(in) in
+#define drowfftshifts(in) in
+#define crowfftshifts(in) in
+#define zrowfftshifts(in) in
+
+EXTERN_SIGPROC void srowfftshifta(float* in,int rows,int columns,float* out);
+
+EXTERN_SIGPROC void drowfftshifta(double* in,int rows,int columns,double* out);
+
+EXTERN_SIGPROC void crowfftshifta ( floatComplex* in , int rows, int cols, floatComplex* out);
+
+EXTERN_SIGPROC void zrowfftshifta ( doubleComplex* in , int rows, int cols, doubleComplex* out);
+
+#define scolumnfftshifts(in) in
+#define dcolumnfftshifts(in) in
+#define ccolumnfftshifts(in) in
+#define zcolumnfftshifts(in) in
+
+EXTERN_SIGPROC void scolumnfftshifta(float* in,int rows,int columns,float* out);
+
+EXTERN_SIGPROC void dcolumnfftshifta(double* in,int rows,int columns,double* out);
+
+EXTERN_SIGPROC void ccolumnfftshifta ( floatComplex* in , int rows, int cols, floatComplex* out);
+
+EXTERN_SIGPROC void zcolumnfftshifta ( doubleComplex* in , int rows, int cols, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* !__FFTSHIFT_H__ */
+
diff --git a/src/c/signalProcessing/includes/filt_sinc.h b/src/c/signalProcessing/includes/filt_sinc.h
new file mode 100644
index 0000000..095ca91
--- /dev/null
+++ b/src/c/signalProcessing/includes/filt_sinc.h
@@ -0,0 +1,28 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __FILT_SINC_H__
+#define __FILT_SINC_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dfilt_sincs(double N,double fc,double* oup);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __FILT_SINC_H */
+
diff --git a/src/c/signalProcessing/includes/fsfirlin.h b/src/c/signalProcessing/includes/fsfirlin.h
new file mode 100644
index 0000000..cf5fbbd
--- /dev/null
+++ b/src/c/signalProcessing/includes/fsfirlin.h
@@ -0,0 +1,28 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __FSFIRLIN_H__
+#define __FSFIRLIN_H__
+#include "types.h"
+#include "sincd.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dfsfirlina(double* hd,int size,double flag,double* hst);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__FSFIRLIN_H__*/
diff --git a/src/c/signalProcessing/includes/hilbert.h b/src/c/signalProcessing/includes/hilbert.h
new file mode 100644
index 0000000..38264e3
--- /dev/null
+++ b/src/c/signalProcessing/includes/hilbert.h
@@ -0,0 +1,43 @@
+/*
+ * 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
+ *
+ */
+
+
+#ifndef __HILBERT_H__
+#define __HILBERT_H__
+
+#include "dynlib_signalprocessing.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* FIXME : input : real
+ output : complex
+ Is this true all time?
+ Or must we do input : real, output :real?
+*/
+
+EXTERN_SIGPROC float shilberts(float in);
+
+EXTERN_SIGPROC void shilberta (float* in, int rows, int cols, floatComplex *out);
+
+EXTERN_SIGPROC double dhilberts(double in);
+
+EXTERN_SIGPROC void dhilberta (double* in, int rows, int cols, doubleComplex *out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __HILBERT_H__ */
diff --git a/src/c/signalProcessing/includes/ifft.h b/src/c/signalProcessing/includes/ifft.h
new file mode 100644
index 0000000..6954c7f
--- /dev/null
+++ b/src/c/signalProcessing/includes/ifft.h
@@ -0,0 +1,59 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#ifndef __IFFT_H__
+#define __IFFT_H__
+
+#include "dynlib_signalprocessing.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#define siffts(in) in
+#define diffts(in) in
+#define ciffts(in) in
+#define ziffts(in) in
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_SIGPROC void sifftma ( float* in , int rows, int cols, float* out);
+
+EXTERN_SIGPROC void difftma ( double* in , int rows, int cols, double* out);
+
+/*
+** compute the inverse fast fourier transform of a vector
+** param in : the input matrix in complex double precision
+** param rows: number of rows of the input matrix
+** param cols: number of cols of the input matrix
+** param out : the transformed matrix in complex double precision
+*/
+
+
+EXTERN_SIGPROC void zifftma ( doubleComplex* in , int rows, int cols, doubleComplex* out);
+/*
+** compute the inverse fast fourier transform of a vector
+** param in : the input matrix in complex float precision
+** param rows: number of rows of the input matrix
+** param cols: number of cols of the input matrix
+** param out : the transformed matrix in complex float precision
+*/
+
+EXTERN_SIGPROC void cifftma ( floatComplex* in , int rows, int cols, floatComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* !__IFFT_H__ */
+
diff --git a/src/c/signalProcessing/includes/lev.h b/src/c/signalProcessing/includes/lev.h
new file mode 100644
index 0000000..32a8178
--- /dev/null
+++ b/src/c/signalProcessing/includes/lev.h
@@ -0,0 +1,50 @@
+/*
+ * 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
+ *
+ */
+
+#ifndef __LEV_H__
+#define __LEV_H__
+
+#include "dynlib_signalprocessing.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ function Scilab :
+ [out1,y,out3]=lev(in)
+ y : result of the function
+*/
+EXTERN_SIGPROC float sleva (float* in,int size, float* out1, float* out3);
+EXTERN_SIGPROC double dleva (double* in, int size, double* out1, double* out3);
+EXTERN_SIGPROC floatComplex cleva (floatComplex* in,int size, floatComplex* out1, floatComplex* out3);
+EXTERN_SIGPROC doubleComplex zleva (doubleComplex* in,int size, doubleComplex* out1, doubleComplex* out3);
+
+
+/*
+ function Scilab :
+ [out1,y]=lev(in)
+ y : result of the function
+*/
+EXTERN_SIGPROC float sleva2 (float* in,int size, float* out1);
+EXTERN_SIGPROC double dleva2 (double* in, int size, double* out1);
+EXTERN_SIGPROC floatComplex cleva2 (floatComplex* in,int size, floatComplex* out1);
+EXTERN_SIGPROC doubleComplex zleva2 (doubleComplex* in,int size, doubleComplex* out1);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__LEV_H__*/
+
diff --git a/src/c/signalProcessing/includes/levin.h b/src/c/signalProcessing/includes/levin.h
new file mode 100644
index 0000000..864fb07
--- /dev/null
+++ b/src/c/signalProcessing/includes/levin.h
@@ -0,0 +1,31 @@
+/*
+ * 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
+ *
+ */
+
+#ifndef __LEVIN_H__
+#define __LEVIN_H__
+
+#include "dynlib_signalprocessing.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_SIGPROC void dlevina (int n, double* cov, int lCov, int cCov, double* la, double* sig, double* lb);
+
+EXTERN_SIGPROC void slevina (int n, float* cov, int lCov, int cCov, float* la, float* sig, float* lb);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__LEVIN_H__*/
+
diff --git a/src/c/signalProcessing/includes/lpc2cep.h b/src/c/signalProcessing/includes/lpc2cep.h
new file mode 100644
index 0000000..bfb3a35
--- /dev/null
+++ b/src/c/signalProcessing/includes/lpc2cep.h
@@ -0,0 +1,44 @@
+/*
+ * 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
+ *
+ */
+
+#ifndef __LPC2CEP_H__
+#define __LPC2CEP_H__
+
+#include "dynlib_signalprocessing.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/* Matrices on input are squared because matricial logarithm
+ works only with squared matrices (and logm is used in lcp2cep)
+ So we just have to pass one parametre on input for the size of
+ the input matrix, this parametre is size and it's the numbers of
+ rows(or columns)
+*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_SIGPROC void slpc2cepa(float* in, int size, float* out);
+
+EXTERN_SIGPROC void dlpc2cepa(double* in, int size, double* out);
+
+EXTERN_SIGPROC void clpc2cepa(floatComplex* in, int size, floatComplex* out);
+
+EXTERN_SIGPROC void zlpc2cepa(doubleComplex* in, int size, doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__LPC2CEP_H__*/
+
diff --git a/src/c/signalProcessing/includes/modk.h b/src/c/signalProcessing/includes/modk.h
new file mode 100644
index 0000000..5040eb7
--- /dev/null
+++ b/src/c/signalProcessing/includes/modk.h
@@ -0,0 +1,28 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __MODK_H__
+#define __MODK_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dmodka(double* inp,int size,double* oup);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __MODK_H__ */
+
diff --git a/src/c/signalProcessing/includes/modsn.h b/src/c/signalProcessing/includes/modsn.h
new file mode 100644
index 0000000..d91dd9d
--- /dev/null
+++ b/src/c/signalProcessing/includes/modsn.h
@@ -0,0 +1,31 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __MODSN_H__
+#define __MODSN_H__
+#include "types.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dmodsns(double uu, double emmc);
+doubleComplex zmodsns(doubleComplex uu,double emmc);
+void dmodsna(double* uu,int size,double emmc,double* sn);
+void zmodsna(doubleComplex* uu,int size,double emmc,doubleComplex* sn);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __MODSN_H__ */
diff --git a/src/c/signalProcessing/includes/sincd.h b/src/c/signalProcessing/includes/sincd.h
new file mode 100644
index 0000000..9b7a360
--- /dev/null
+++ b/src/c/signalProcessing/includes/sincd.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __SINCD_H__
+#define __SINCD_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dsincds(double n,double flg,double* oup);
+void u8sincds(int n,int flg,double* oup);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __SINCD_H__ */
+
diff --git a/src/c/signalProcessing/includes/zpbutt.h b/src/c/signalProcessing/includes/zpbutt.h
new file mode 100644
index 0000000..9eb88ad
--- /dev/null
+++ b/src/c/signalProcessing/includes/zpbutt.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __ZPBUTT_H__
+#define __ZPBUTT_H__
+#include "types.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dzpbutts(double n,double fl,doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __ZPBUTT_H__ */
+
diff --git a/src/c/signalProcessing/includes/zpch1.h b/src/c/signalProcessing/includes/zpch1.h
new file mode 100644
index 0000000..fbe850c
--- /dev/null
+++ b/src/c/signalProcessing/includes/zpch1.h
@@ -0,0 +1,28 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __ZPCH1_H__
+#define __ZPCH1_H__
+#include "types.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dzpch1s(double N,double e,double wc,doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __ZPCH1_H__ */
diff --git a/src/c/signalProcessing/includes/zpch2.h b/src/c/signalProcessing/includes/zpch2.h
new file mode 100644
index 0000000..d7c1c64
--- /dev/null
+++ b/src/c/signalProcessing/includes/zpch2.h
@@ -0,0 +1,28 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __ZPCH2_H__
+#define __ZPCH2_H__
+#include "types.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dzpch2s(double N, double A, double omegar,doubleComplex* zeros,doubleComplex* poles);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __ZPCH2_H__ */
diff --git a/src/c/signalProcessing/interfaces/int_buttmag.h b/src/c/signalProcessing/interfaces/int_buttmag.h
new file mode 100644
index 0000000..4a33faf
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_buttmag.h
@@ -0,0 +1,19 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_BUTTMAG_H__
+#define __INT_BUTTMAG_H__
+
+#define d0d0d2buttmagd2(order,omegac,sample,size,out) dbuttmags(order,omegac,sample,size[1],out)
+#define u80u80d2buttmagd2(order,omegac,sample,size,out) u8buttmags(order,omegac,sample,size[1],out)
+
+#endif /* !INT_BUTTMAG_H__! */
diff --git a/src/c/signalProcessing/interfaces/int_cepstrum.h b/src/c/signalProcessing/interfaces/int_cepstrum.h
new file mode 100644
index 0000000..af1991b
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_cepstrum.h
@@ -0,0 +1,34 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_CEPSTRUM_H__
+#define __INT_CEPSTRUM_H__
+
+#define s0cepstrums0(in) scepstrums(in)
+
+#define d0cepstrumd0(in) dcepstrums(in)
+
+#define c0cepstrumc0(in) ccepstrums(in)
+
+#define z0cepstrumz0(in) zcepstrums(in)
+
+#define s2cepstrums2(in,size,out) scepstruma(in, size[0]*size[1], out)
+
+#define d2cepstrumd2(in,size,out) dcepstruma(in, size[0]*size[1], out)
+
+#define c2cepstrumc2(in,size,out) ccepstruma(in, size[0]*size[1], out)
+
+#define z2cepstrumz2(in,size,out) zcepstruma(in, size[0]*size[1], out)
+
+#endif /* !__INT_CEPSTRUM_H__ */
diff --git a/src/c/signalProcessing/interfaces/int_cheb1mag.h b/src/c/signalProcessing/interfaces/int_cheb1mag.h
new file mode 100644
index 0000000..764e8c7
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_cheb1mag.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_CHEB1MAG_H__
+#define __INT_CHEB1MAG_H__
+
+#define d0d0d0d2cheb1magd2(n,omegac,epsilon,sample,size,out) dcheb1mags(n,omegac,epsilon,sample,size[1],out)
+
+#endif /* !__INT_CHEB1MAG_H__! */
diff --git a/src/c/signalProcessing/interfaces/int_cheb2mag.h b/src/c/signalProcessing/interfaces/int_cheb2mag.h
new file mode 100644
index 0000000..b63db04
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_cheb2mag.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_CHEB2MAG_H__
+#define __INT_CHEB2MAG_H__
+
+#define d0d0d0d2cheb2magd2(n,omegar,A,sample,size,oup) dcheb2mags(n,omegar,A,sample,size[1],oup)
+
+#endif /* !__INT_CHEB2MAG_H__! */
diff --git a/src/c/signalProcessing/interfaces/int_convol.h b/src/c/signalProcessing/interfaces/int_convol.h
new file mode 100644
index 0000000..80ec65b
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_convol.h
@@ -0,0 +1,153 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_CONVOL_H__
+#define __INT_CONVOL_H__
+
+
+/* Scalar - Scalar */
+
+#define s0s0convols0(in1,in2) in1*in2
+
+#define d0d0convold0(in1,in2) in1*in2
+
+#define c0c0convolc0(in1,in2) cmuls(in1,in2)
+
+#define z0z0convolz0(in1,in2) zmuls(in1,in2)
+
+#define s0c0convolc0(in1,in2) cmuls(FloatComplex(in1,0),in2)
+
+#define d0z0convolz0(in1,in2) zmuls(DoubleComplex(in1,0),in2)
+
+#define c0s0convolc0(in1,in2) cmuls(in1,FloatComplex(in2,0))
+
+#define z0d0convolz0(in1,in2) zmuls(in1,DoubleComplex(in2,0))
+
+/* Scalar - Matrix */
+
+#define s0s2convols2(in1,in2,size,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=in1*in2[i];\
+ }
+
+#define d0d2convold2(in1,in2,size,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=in1*in2[i];\
+ }
+
+#define c0c2convolc2(in1,in2,size,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=cmuls(in1,in2[i]);\
+ }
+
+#define z0z2convolz2(in1,in2,size,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=zmuls(in1,in2[i]);\
+ }
+
+#define s0c2convolc2(in1,in2,size,out) c0c2convolc2(FloatComplex(in1,0),in2,size,out)
+
+#define d0z2convolz2(in1,in2,size,out) z0z2convolz2(DoubleComplex(in1,0),in2,size,out)
+
+#define c0s2convolc2(in1,in2,size,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=cmuls(in1,FloatComplex(in2[i],0));\
+ }
+
+#define z0d2convolz2(in1,in2,size,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=zmuls(in1,DoubleComplex(in2[i],0));\
+ }
+
+/* Matrix - Scalar */
+
+#define s2s0convols2(in1,size,in2,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]*in2;\
+ }
+
+#define d2d0convold2(in1,size,in2,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]*in2;\
+ }
+
+#define c2c0convolc2(in1,size,in2,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=cmuls(in1[i],in2);\
+ }
+
+#define z2z0convolz2(in1,size,in2,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=zmuls(in1[i],in2);\
+ }
+
+#define s2c0convolc2(in1,size,in2,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=cmuls(FloatComplex(in1[i],0),in2);\
+ }
+
+#define d2z0convolz2(in1,size,in2,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=zmuls(DoubleComplex(in1[i],0),in2);\
+ }
+
+#define c2s0convolc2(in1,size,in2,out) c2c0convolc2(in1,size,FloatComplex(in2,0),out)
+
+#define z2d0convolz2(in1,size,in2,out) z2z0convolz2(in1,size,DoubleComplex(in2,0),out)
+
+
+/* Matrix - Matrix */
+
+#define s2s2convols2(in1,size1,in2,size2,out) if(((size1[0]==1)||(size1[1]==1))&&((size2[0]==1)||(size2[1]==1))){\
+ sconva(in1,size1[0]*size1[1],in2,size2[0]*size2[1],out);\
+ }else{\
+ sconv2da(in1,size1[0],size1[1],in2,size2[0],size2[1],out);\
+ }
+
+#define d2d2convold2(in1,size1,in2,size2,out) if(((size1[0]==1)||(size1[1]==1))&&((size2[0]==1)||(size2[1]==1))){\
+ dconva(in1,size1[0]*size1[1],in2,size2[0]*size2[1],out);\
+ }else{\
+ dconv2da(in1,size1[0],size1[1],in2,size2[0],size2[1],out);\
+ }
+
+#define c2c2convolc2(in1,size1,in2,size2,out) if(((size1[0]==1)||(size1[1]==1))&&((size2[0]==1)||(size2[1]==1))){\
+ cconva(in1,size1[0]*size1[1],in2,size2[0]*size2[1],out);\
+ }else{\
+ cconv2da(in1,size1[0],size1[1],in2,size2[0],size2[1],out);\
+ }
+
+#define z2z2convolz2(in1,size1,in2,size2,out) if(((size1[0]==1)||(size1[1]==1))&&((size2[0]==1)||(size2[1]==1))){\
+ zconva(in1,size1[0]*size1[1],in2,size2[0]*size2[1],out);\
+ }else{\
+ zconv2da(in1,size1[0],size1[1],in2,size2[0],size2[1],out);\
+ }
+
+#define s2c2convolc2(in1,size1,in2,size2,out) {float* temp;\
+ temp=malloc((uint)(size1[0]*size1[1])*sizeof(float));\
+ sfilla(temp,size1[0],size1[1],0);\
+ c2c2convolc2(FloatComplexMatrix(in1,temp,size1[0]*size1[1]),size1,in2,size2,out);\
+ free(temp);\
+ }
+
+#define d2z2convolz2(in1,size1,in2,size2,out) {double* temp;\
+ temp=malloc((uint)(size1[0]*size1[1])*sizeof(double));\
+ dfilla(temp,size1[0],size1[1],0);\
+ z2z2convolz2(DoubleComplexMatrix(in1,temp,size1[0]*size1[1]),size1,in2,size2,out);\
+ free(temp);\
+ }
+
+#define c2s2convolc2(in1,size1,in2,size2,out) {float* temp;\
+ temp=malloc((uint)(size2[0]*size2[1])*sizeof(float));\
+ sfilla(temp,size2[0],size2[1],0);\
+ c2c2convolc2(in1,size1,FloatComplexMatrix(in2,temp,size2[0]*size2[1]),size2,out);\
+ free(temp);\
+ }
+
+
+#define z2d2convolz2(in1,size1,in2,size2,out) {double* temp;\
+ temp=malloc((uint)(size2[0]*size2[1])*sizeof(double));\
+ dfilla(temp,size2[0],size2[1],0);\
+ z2z2convolz2(in1,size1,DoubleComplexMatrix(in2,temp,size2[0]*size2[1]),size2,out);\
+ free(temp);\
+ }
+
+#endif /* !__INT_CONVOL_H__ */
diff --git a/src/c/signalProcessing/interfaces/int_ffilt.h b/src/c/signalProcessing/interfaces/int_ffilt.h
new file mode 100644
index 0000000..273b98f
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_ffilt.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_FFILT_H__
+#define __INT_FFILT_H__
+
+#define g2d0d0d0ffiltd2(ft,size,N,fc,fh,oup) gffilts(ft,size[1],N,fc,fh,oup)
+
+#endif /* !__INT_FFILT_H__! */
diff --git a/src/c/signalProcessing/interfaces/int_fft.h b/src/c/signalProcessing/interfaces/int_fft.h
new file mode 100644
index 0000000..ea2c69b
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_fft.h
@@ -0,0 +1,71 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_FFT_H__
+#define __INT_FFT_H__
+
+#define s0ffts0(in) sffts(in)
+
+#define d0fftd0(in) dffts(in)
+
+#define c0fftc0(in) cffts(in)
+
+#define z0fftz0(in) zffts(in)
+
+
+#define s2ffts2(in,size,out) sfftma(in, size[0], size[1], out)
+
+#define d2fftd2(in,size,out) dfftma(in, size[0], size[1], out)
+
+#define c2fftc2(in,size,out) cfftma(in, size[0], size[1], out)
+
+#define z2fftz2(in,size,out) zfftma(in, size[0], size[1], out)
+
+/* FIXME : malloc here */
+#define s2fftc2(in,size,out) {float* ZEROS;\
+ ZEROS=malloc((uint)(size[0]*size[1]*sizeof(float));\
+ szerosa(ZEROS,size[0],size[1]);\
+ cfftma(FloatComplexMatrix(in,ZEROS,size[0]*size[1]), size[0], size[1], out);\
+ }
+/* FIXME : malloc here */
+#define d2fftz2(in,size,out) {double* ZEROS;\
+ ZEROS=malloc((uint)(size[0]*size[1]*sizeof(double));\
+ dzerosa(ZEROS,size[0],size[1]);\
+ zfftma(DoubleComplexMatrix(in,ZEROS,size[0]*size[1]), size[0], size[1], out);\
+ }
+
+
+
+#define s0s0ffts0(in1,in2) (in2==-1.0f) ? s0ffts0(in1) : s0iffts0(in1)
+
+#define d0d0fftd0(in1,in2) (in2==-1.0) ? d0fftd0(in1) : d0ifftd0(in1)
+
+#define c0s0fftc0(in1,in2) (in2==-1.0f) ? c0fftc0(in1) : c0ifftc0(in1)
+
+#define z0d0fftz0(in1,in2) (in2==-1.0) ? z0fftz0(in1) : z0ifftz0(in1)
+
+#define s2s0ffts2(in1,size,in2,out) (in2==-1.0f) ? s2ffts2(in1,size,out) : s2iffts2(in1,size,out)
+
+#define d2d0fftd2(in1,size,in2,out) (in2==-1.0) ? d2fftd2(in1,size,out) : d2ifftd2(in1,size,out)
+
+#define c2s0fftc2(in1,size,in2,out) (in2==-1.0f) ? c2fftc2(in1,size,out) : c2ifftc2(in1,size,out)
+
+#define z2d0fftz2(in1,size,in2,out) (in2==-1.0) ? z2fftz2(in1,size,out) : z2ifftz2(in1,size,out)
+
+#define s2s0fftc2(in1,size,in2,out) (in2==-1.0f) ? s2fftc2(in1,size,out) : s2ifftc2(in1,size,out)
+
+#define d2d0fftz2(in1,size,in2,out) (in2==-1.0) ? d2fftz2(in1,size,out) : d2ifftz2(in1,size,out)
+
+
+#endif /* !__INT_FFT_H__ */
diff --git a/src/c/signalProcessing/interfaces/int_fftshift.h b/src/c/signalProcessing/interfaces/int_fftshift.h
new file mode 100644
index 0000000..d490657
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_fftshift.h
@@ -0,0 +1,51 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_FFTSHIFT_H__
+#define __INT_FFTSHIFT_H__
+
+#define s0fftshifts0(in) sfftshifts(in)
+
+#define d0fftshiftd0(in) dfftshifts(in)
+
+#define c0fftshiftc0(in) cfftshifts(in)
+
+#define z0fftshiftz0(in) zfftshifts(in)
+
+#define s2fftshifts2(in,size,out) sfftshifta(in, size[0], size[1], out)
+
+#define d2fftshiftd2(in,size,out) dfftshifta(in, size[0], size[1], out)
+
+#define c2fftshiftc2(in,size,out) cfftshifta(in, size[0], size[1], out)
+
+#define z2fftshiftz2(in,size,out) zfftshifta(in, size[0], size[1], out)
+
+
+#define s0s0fftshifts0(in1,in2) sfftshifts(in1)
+
+#define d0d0fftshiftd0(in1,in2) dfftshifts(in1)
+
+#define c0s0fftshiftc0(in1,in2) cfftshifts(in1)
+
+#define z0d0fftshiftz0(in1,in2) zfftshifts(in1)
+
+#define s2s0fftshifts2(in,size,in2,out) (in2==1) ? srowfftshifta(in, size[0], size[1], out) : scolumnfftshifta(in, size[0], size[1], out)
+
+#define d2d0fftshiftd2(in,size,in2,out) (in2==1) ? drowfftshifta(in, size[0], size[1], out) : dcolumnfftshifta(in, size[0], size[1], out)
+
+#define c2s0fftshiftc2(in,size,in2,out) (in2==1) ? crowfftshifta(in, size[0], size[1], out) : ccolumnfftshifta(in, size[0], size[1], out)
+
+#define z2d0fftshiftz2(in,size,in2,out) (in2==1) ? zrowfftshifta(in, size[0], size[1], out) : zcolumnfftshifta(in, size[0], size[1], out)
+
+#endif /* !__INT_FFTSHIFT_H__ */
diff --git a/src/c/signalProcessing/interfaces/int_filt_sinc.h b/src/c/signalProcessing/interfaces/int_filt_sinc.h
new file mode 100644
index 0000000..f90d0a6
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_filt_sinc.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_FILT_SINC_H__
+#define __INT_FILT_SINC_H__
+
+#define d0d0filt_sincd2(N,fc,oup) dfilt_sincs(N,fc,oup)
+
+#endif /* !__INT_FILT_SINC_H__! */
diff --git a/src/c/signalProcessing/interfaces/int_fsfirlin.h b/src/c/signalProcessing/interfaces/int_fsfirlin.h
new file mode 100644
index 0000000..3f6fb6e
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_fsfirlin.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_FSFIRLIN_H__
+#define __INT_FSFIRLIN_H__
+
+#define d2d0fsfirlind2(hd,size,flag,hst) dfsfirlina(hd,size[1],flag,hst)
+
+#endif /* !__INT_FSFIRLIN_H__! */
diff --git a/src/c/signalProcessing/interfaces/int_hilbert.h b/src/c/signalProcessing/interfaces/int_hilbert.h
new file mode 100644
index 0000000..c4c9c7e
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_hilbert.h
@@ -0,0 +1,26 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_HILBERT_H__
+#define __INT_HILBERT_H__
+
+#define s0hilberts0(in) shilberts(in)
+
+#define d0hilbertd0(in) dhilberts(in)
+
+#define s2hilbertc2(in,size,out) shilberta(in, size[0], size[1], out)
+
+#define d2hilbertz2(in,size,out) dhilberta(in, size[0], size[1], out)
+
+#endif /* !__INT_HILBERT_H__ */
diff --git a/src/c/signalProcessing/interfaces/int_ifft.h b/src/c/signalProcessing/interfaces/int_ifft.h
new file mode 100644
index 0000000..78e6375
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_ifft.h
@@ -0,0 +1,52 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_IFFT_H__
+#define __INT_IFFT_H__
+
+
+#define s0iffts0(in) siffts(in)
+
+#define d0ifftd0(in) diffts(in)
+
+#define s0ifftc0(in) FloatComplex(siffts(in),0)
+
+#define d0ifftz0(in) DoubleComplex(diffts(in),0)
+
+#define c0ifftc0(in) ciffts(in)
+
+#define z0ifftz0(in) ziffts(in)
+
+#define s2iffts2(in,size,out) sifftma(in, size[0], size[1], out)
+
+#define d2ifftd2(in,size,out) difftma(in, size[0], size[1], out)
+
+#define c2ifftc2(in,size,out) cifftma(in, size[0], size[1], out)
+
+#define z2ifftz2(in,size,out) zifftma(in, size[0], size[1], out)
+
+/* FIXME : malloc here */
+#define s2ifftc2(in,size,out) {float* ZEROS;\
+ ZEROS=malloc((uint)(size[0]*size[1]*sizeof(float)));\
+ szerosa(ZEROS,size[0],size[1]);\
+ cifftma(FloatComplexMatrix(in,ZEROS,size[0]*size[1]), size[0], size[1], out);\
+ }
+/* FIXME : malloc here */
+#define d2ifftz2(in,size,out) {double* ZEROS;\
+ ZEROS=malloc((uint)(size[0]*size[1]*sizeof(double)));\
+ dzerosa(ZEROS,size[0],size[1]);\
+ zifftma(DoubleComplexMatrix(in,ZEROS,size[0]*size[1]), size[0], size[1], out);\
+ }
+
+#endif /* !__INT_IFFT_H__ */
diff --git a/src/c/signalProcessing/interfaces/int_lev.h b/src/c/signalProcessing/interfaces/int_lev.h
new file mode 100644
index 0000000..f15f9ea
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_lev.h
@@ -0,0 +1,53 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_LEV_H__
+#define __INT_LEV_H__
+
+#define s2levs2(in,size,out) {float sigma2;\
+ sigma2=sleva2(in,size[0]*size[1],out);\
+ }
+
+#define s2levs2s0(in,size,out) sleva2(in,size[0]*size[1],out);
+
+#define s2levs2s0s2(in,size,out1,out2) sleva(in,size[0]*size[1],out1,out2);
+
+
+#define d2levd2(in,size,out) {double sigma2;\
+ sigma2=dleva2(in,size[0]*size[1],out);\
+ }
+
+#define d2levd2d0(in,size,out) dleva2(in,size[0]*size[1],out);
+
+#define d2levd2d0d2(in,size,out1,out2) dleva(in,size[0]*size[1],out1,out2);
+
+
+#define c2levc2(in,size,out) {floatComplex sigma2;\
+ sigma2=cleva2(in,size[0]*size[1],out);\
+ }
+
+#define c2levc2c0(in,size,out) cleva2(in,size[0]*size[1],out);
+
+#define c2levc2c0c2(in,size,out1,out2) cleva(in,size[0]*size[1],out1,out2);
+
+
+#define z2levz2(in,size,out) {doubleComplex sigma2;\
+ sigma2=zleva2(in,size[0]*size[1],out);\
+ }
+
+#define z2levz2z0(in,size,out) zleva2(in,size[0]*size[1],out);
+
+#define z2levz2z0z2(in,size,out1,out2) zleva(in,size[0]*size[1],out1,out2);
+
+#endif /* !__INT_LEV_H__ */
diff --git a/src/c/signalProcessing/interfaces/int_levin.h b/src/c/signalProcessing/interfaces/int_levin.h
new file mode 100644
index 0000000..b48b578
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_levin.h
@@ -0,0 +1,60 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_LEVIN_H__
+#define __INT_LEVIN_H__
+
+/* FIXME : many malloc here */
+
+#define s0s2levins2(in1,in2,size,out1,out2) {float* out2;\
+ float* out3;\
+ out2 = malloc((uint)*(size[1]*size[1]*in1)*sizeof(float));\
+ out3 = malloc((uint)*(size[1]*size[1]*in1*(in1+1))*sizeof(float));\
+ slevina (in1, in2, size[0], size[1], out1, out2, out3);\
+ free(out3);\
+ free(out2);\
+ }
+
+
+#define s0s2levins2(in1,in2,size,out1,out2) {double* out2;\
+ double* out3;\
+ out2 = malloc((uint)*(size[1]*size[1]*in1)*sizeof(double));\
+ out3 = malloc((uint)*(size[1]*size[1]*in1*(in1+1))*sizeof(double));\
+ slevina (in1, in2, size[0], size[1], out1, out2, out3);\
+ free(out3);\
+ free(out2);\
+ }
+
+
+
+#define s0s2levins2s2(in1,in2,size,out1,out2) {float* out3;\
+ out3 = malloc((uint)*(size[1]*size[1]*in1*(in1+1))*sizeof(float));\
+ slevina (in1, in2, size[0], size[1], out1, out2, out3);\
+ free(out3);\
+ }
+
+#define d0d2levind2d2(in1,in2,size,out1,out2) {double* out3;\
+ out3 = malloc((uint)*(size[1]*size[1]*in1*(in1+1))*sizeof(double));\
+ dlevina (in1, in2, size[0], size[1], out1, out2, out3);\
+ free(out3);\
+ }
+
+
+
+#define s0s2levins2s2s2(in1,in2,size,out1,out2,out3) slevina (in1, in2, size[0], size[1], out1, out2, out3);
+
+#define d0d2levind2d2d2(in1,in2,size,out1,out2,out3) dlevina (in1, in2, size[0], size[1], out1, out2, out3);
+
+
+#endif /* !__INT_LEVIN_H__ */
diff --git a/src/c/signalProcessing/interfaces/int_lpc2cep.h b/src/c/signalProcessing/interfaces/int_lpc2cep.h
new file mode 100644
index 0000000..6e6e719
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_lpc2cep.h
@@ -0,0 +1,27 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_LPC2CEP_H__
+#define __INT_LPC2CEP_H__
+
+
+#define s2lpc2ceps2(in,size,out) slpc2cepa(in, size[0]*size[1], out)
+
+#define d2lpc2cepd2(in,size,out) dlpc2cepa(in, size[0]*size[1], out)
+
+#define c2lpc2cepc2(in,size,out) clpc2cepa(in, size[0]*size[1], out)
+
+#define z2lpc2cepz2(in,size,out) zlpc2cepa(in, size[0]*size[1], out)
+
+#endif /* !__INT_LPC2CEP_H__ */
diff --git a/src/c/signalProcessing/interfaces/int_modk.h b/src/c/signalProcessing/interfaces/int_modk.h
new file mode 100644
index 0000000..441b9b1
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_modk.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_MODK_H__
+#define __INT_MODK_H__
+
+#define d2modkd2(inp,size,oup) dmodka(inp,size[1],oup)
+
+#endif /* !INT_MODK_H__! */
diff --git a/src/c/signalProcessing/interfaces/int_modsn.h b/src/c/signalProcessing/interfaces/int_modsn.h
new file mode 100644
index 0000000..0d32eb0
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_modsn.h
@@ -0,0 +1,21 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_MODSN_H__
+#define __INT_MODSN_H__
+
+#define d0d0modsnd0(uu,emmc) dmodsns(uu,emmc)
+#define z0d0modsnz0(uu,emmc) zmodsns(uu,emmc)
+#define d2d0modsnd2(uu,size,emmc,sn) dmodsna(uu,size[1],emmc,sn)
+#define z2d0modsnz2(uu,size,emmc,sn) zmodsna(uu,size[1],emmc,sn)
+
+#endif /* !INT_MODSN_H__! */
diff --git a/src/c/signalProcessing/interfaces/int_sincd.h b/src/c/signalProcessing/interfaces/int_sincd.h
new file mode 100644
index 0000000..7313673
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_sincd.h
@@ -0,0 +1,19 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_SINCD_H__
+#define __INT_SINCD_H__
+
+#define d0d0sincdd2(n,flg,oup) dsincds(n,flg,oup)
+#define u80u80sincdd2(n,flg,oup) u8sincds(n,flg,oup)
+
+#endif /* !__INT_SINCD_H__! */
diff --git a/src/c/signalProcessing/interfaces/int_xcorr.h b/src/c/signalProcessing/interfaces/int_xcorr.h
new file mode 100644
index 0000000..50a99d7
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_xcorr.h
@@ -0,0 +1,176 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
+
+#ifndef __INT_XCORR_H__
+#define __INT_XCORR_H__
+
+#define s0xcorrs0(in) in*in
+
+#define d0xcorrd0(in) in*in
+
+#define c0xcorrc0(in) cmuls(in,cconjs(in))
+
+#define z0xcorrz0(in) zmuls(in,zconjs(in))
+
+#define s2xcorrs2(in,size) s2s2xcorrs2(in,size,in,size,out)
+
+#define d2xcorrd2(in,size) d2d2xcorrd2(in,size,in,size,out)
+
+#define c2xcorrc2(in,size) c2c2xcorrc2(in,size,in,size,out)
+
+#define z2xcorrz2(in,size) z2z2xcorrz2(in,size,in,size,out)
+
+
+/* Scalar - Scalar */
+
+#define s0s0xcorrs0(in1,in2) in1*in2
+
+#define d0d0xcorrd0(in1,in2) in1*in2
+
+#define c0c0xcorrc0(in1,in2) cmuls(in1,cconjs(in2))
+
+#define z0z0xcorrz0(in1,in2) zmuls(in1,zconjs(in2))
+
+#define s0c0xcorrs0(in1,in2) cmuls(FloatComplex(in1,0),cconjs(in2))
+
+#define d0z0xcorrd0(in1,in2) zmuls(DoubleComplex(in1,0),zconjs(in2))
+
+#define c0s0xcorrc0(in1,in2) cmuls(in1,FloatComplex(in2,0))
+
+#define z0d0xcorrz0(in1,in2) zmuls(in1,DoubleComplex(in2,0))
+
+/* Scalar - Scalar*/
+
+#define s0s2xcorrs2(in1,in2,size,out) {int i;\
+ int mn=size[0]*size[1];\
+ for (i=1;i<=mn;i++) out[i]=in1*in2[mn-i];\
+ }
+
+#define d0d2xcorrd2(in1,in2,size,out) {int i;\
+ int mn=size[0]*size[1];\
+ for (i=1;i<=mn;i++) out[i]=in1*in2[mn-i];\
+ }
+
+#define c0c2xcorrc2(in1,in2,size,out) {int i;\
+ int mn=size[0]*size[1];\
+ for (i=1;i<=mn;i++) out[i]=cmuls(in1,cconjs(in2[mn-i]));\
+ }
+
+#define z0z2xcorrz2(in1,in2,size,out) {int i;\
+ int mn=size[0]*size[1];\
+ for (i=1;i<=mn;i++) out[i]=zmuls(in1,zconjs(in2[mn-i]));\
+ }
+
+#define s0c2xcorrs2(in1,in2,size,out) {int i;\
+ int mn=size[0]*size[1];\
+ for (i=1;i<=mn;i++) out[i]=cmuls(FloatComplex(in1,0),cconjs(in2[mn-i]));\
+ }
+
+#define d0z2xcorrd2(in1,in2,size,out) {int i;\
+ int mn=size[0]*size[1];\
+ for (i=1;i<=mn;i++) out[i]=zmuls(DoubleComplex(in1,0),zconjs(in2[mn-i]));\
+ }
+
+#define c0s2xcorrc2(in1,in2,size,out) {int i;\
+ int mn=size[0]*size[1];\
+ for (i=1;i<=mn;i++) out[i]=cmuls(in1,FloatComplex(in2[mn-i],0));\
+ }
+
+#define z0d2xcorrz2(in1,in2,size,out) {int i;\
+ int mn=size[0]*size[1];\
+ for (i=1;i<=mn;i++) out[i]=zmuls(in1,DoubleComplex(in2[mn-i],0)));\
+ }
+
+
+
+
+
+/* Matrix - Scalar*/
+
+#define s2s0xcorrs2(in1,size,in2,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]*in2;\
+ }
+
+#define d2d0xcorrd2(in1,size,in2,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]*in2;\
+ }
+
+#define c2c0xcorrc2(in1,size,in2,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=cmuls(in1[i],cconjs(in2));\
+ }
+
+#define z2z0xcorrz2(in1,size,in2,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=zmuls(in1[i],zconjs(in2));\
+ }
+
+#define s2c0xcorrc2(in1,size,in2,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]*in2;\
+ }
+
+#define d2z0xcorrz2(in1,size,in2,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=in1[i]*in2;\
+ }
+
+#define c2s0xcorrc2(in1,size,in2,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=cmuls(in1[i],FloatComplex(in2,0));\
+ }
+
+#define z2d0xcorrz2(in1,size,in2,out) {int i;\
+ for (i=0;i<size[0]*size[1];i++) out[i]=zmuls(in1[i],DoubleComplex(in2,0));\
+ }
+
+
+
+/* Matrix - Matrix */
+
+#define s2s2xcorrs2(in1,size1,in2,size2,out) scrossCorra(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define d2d2xcorrd2(in1,size1,in2,size2,out) dcrossCorra(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define c2c2xcorrc2(in1,size1,in2,size2,out) ccrossCorra(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+#define z2z2xcorrz2(in1,size1,in2,size2,out) zcrossCorra(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+
+
+/*FIXME : malloc here*/
+#define s2c2xcorrc2(in1,size1,in2,size2,out) {float* temp;\
+ temp=malloc((uint)(size1[0]*size1[1])*sizeof(float));\
+ sfilla(temp,size1[0],size1[1],0);\
+ c2c2xcorrc2(FloatComplex(in1,0,size1[0]*size1[1]),size1,in2,size2,out);\
+ free(temp);\
+ }
+
+#define d2z2xcorrz2(in1,size1,in2,size2,out) {double* temp;\
+ temp=malloc((uint)(size1[0]*size1[1])*sizeof(double));\
+ dfilla(temp,size[0],size[1],0);\
+ z2z2xcorrz2(DoubleComplex(in1,0,size1[0]*size1[1]),size1,in2,size2,out);\
+ free(temp);\
+ }
+
+
+#define c2s2xcorrc2(in1,size1,in2,size2,out) {float* temp;\
+ temp=malloc((uint)(size2[0]*size2[1])*sizeof(float));\
+ sfilla(temp,size2[0],size2[1],0);\
+ c2c2xcorrc2(in1,size1,FloatComplex(in2,0,size2[0]*size2[1]),size2,out);\
+ free(temp);\
+ }
+
+#define z2d2xcorrz2(in1,size1,in2,size2,out) {double* temp;\
+ temp=malloc((uint)(size2[0]*size2[1])*sizeof(double));\
+ sfilla(temp,size2[0],size2[1],0);\
+ c2c2xcorrc2(in1,size1,DoubleComplex(in2,0,size2[0]*size2[1]),size2,out);\
+ free(temp);\
+ }
+
+#endif /* !__INT_XCORR_H__ */
diff --git a/src/c/signalProcessing/interfaces/int_zpbutt.h b/src/c/signalProcessing/interfaces/int_zpbutt.h
new file mode 100644
index 0000000..775c102
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_zpbutt.h
@@ -0,0 +1,19 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_ZPBUTT_H__
+#define __INT_ZPBUTT_H__
+
+#define d0d0zpbuttz2d0(n,fl,out) dzpbutts(n,fl,out)
+
+#endif /* !INT_ZPBUTT_H__! */
+
diff --git a/src/c/signalProcessing/interfaces/int_zpch1.h b/src/c/signalProcessing/interfaces/int_zpch1.h
new file mode 100644
index 0000000..429e7c3
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_zpch1.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_ZPCH1_H__
+#define __INT_ZPCH1_H__
+
+#define d0d0d0zpch1z2d0(N,e,wc,out) dzpch1s(N,e,wc,out)
+
+#endif /* !INT_ZPCH1_H__! */
diff --git a/src/c/signalProcessing/interfaces/int_zpch2.h b/src/c/signalProcessing/interfaces/int_zpch2.h
new file mode 100644
index 0000000..fcb12a7
--- /dev/null
+++ b/src/c/signalProcessing/interfaces/int_zpch2.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_ZPCH2_H__
+#define __INT_ZPCH2_H__
+
+#define d0d0d0zpch2z2z2d0(N,A,omegar,zeros,poles) dzpch2s(N,A,omegar,zeros,poles)
+
+#endif /* !INT_ZPCH2_H__! */
diff --git a/src/c/signalProcessing/lev/Makefile.am b/src/c/signalProcessing/lev/Makefile.am
new file mode 100644
index 0000000..6915712
--- /dev/null
+++ b/src/c/signalProcessing/lev/Makefile.am
@@ -0,0 +1,76 @@
+##
+## 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
+##
+##
+
+
+
+
+libLev_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/elementaryFunctions/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+
+instdir = $(top_builddir)/lib
+
+
+pkglib_LTLIBRARIES = libLev.la
+
+HEAD = ../includes/lev.h
+
+
+libLev_la_SOURCES = $(HEAD) \
+ dleva.c\
+ sleva.c\
+ zleva.c\
+ cleva.c\
+ dleva2.c
+
+
+###############
+#### Check ####
+###############
+check_PROGRAMS = testDoubleLev testFloatLev
+
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/conj/libConj.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ $(top_builddir)/src/c/operations/division/libDivision.la \
+ $(top_builddir)/src/c/signalProcessing/lev/libLev.la \
+ @LIBMATH@
+
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/signalProcessing/includes \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes
+
+
+
+testDoubleLev_SOURCES = testDoubleLev.c
+testDoubleLev_LDADD = $(check_LDADD)
+testDoubleLev_CFLAGS = $(check_INCLUDES)
+
+testFloatLev_SOURCES = testFloatLev.c
+testFloatLev_LDADD = $(check_LDADD)
+testFloatLev_CFLAGS = $(check_INCLUDES)
+
+
+TESTS = testDoubleLev testFloatLev
diff --git a/src/c/signalProcessing/lev/Makefile.in b/src/c/signalProcessing/lev/Makefile.in
new file mode 100644
index 0000000..3828003
--- /dev/null
+++ b/src/c/signalProcessing/lev/Makefile.in
@@ -0,0 +1,773 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+check_PROGRAMS = testDoubleLev$(EXEEXT) testFloatLev$(EXEEXT)
+TESTS = testDoubleLev$(EXEEXT) testFloatLev$(EXEEXT)
+subdir = src/c/signalProcessing/lev
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/includes/machine.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkglibdir)"
+LTLIBRARIES = $(pkglib_LTLIBRARIES)
+libLev_la_LIBADD =
+am__objects_1 =
+am_libLev_la_OBJECTS = $(am__objects_1) libLev_la-dleva.lo \
+ libLev_la-sleva.lo libLev_la-zleva.lo libLev_la-cleva.lo \
+ libLev_la-dleva2.lo
+libLev_la_OBJECTS = $(am_libLev_la_OBJECTS)
+libLev_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libLev_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testDoubleLev_OBJECTS = testDoubleLev-testDoubleLev.$(OBJEXT)
+testDoubleLev_OBJECTS = $(am_testDoubleLev_OBJECTS)
+am__DEPENDENCIES_1 = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/conj/libConj.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ $(top_builddir)/src/c/operations/division/libDivision.la \
+ $(top_builddir)/src/c/signalProcessing/lev/libLev.la
+testDoubleLev_DEPENDENCIES = $(am__DEPENDENCIES_1)
+testDoubleLev_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testDoubleLev_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testFloatLev_OBJECTS = testFloatLev-testFloatLev.$(OBJEXT)
+testFloatLev_OBJECTS = $(am_testFloatLev_OBJECTS)
+testFloatLev_DEPENDENCIES = $(am__DEPENDENCIES_1)
+testFloatLev_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testFloatLev_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libLev_la_SOURCES) $(testDoubleLev_SOURCES) \
+ $(testFloatLev_SOURCES)
+DIST_SOURCES = $(libLev_la_SOURCES) $(testDoubleLev_SOURCES) \
+ $(testFloatLev_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBMATH = @LIBMATH@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libLev_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/elementaryFunctions/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+instdir = $(top_builddir)/lib
+pkglib_LTLIBRARIES = libLev.la
+HEAD = ../includes/lev.h
+libLev_la_SOURCES = $(HEAD) \
+ dleva.c\
+ sleva.c\
+ zleva.c\
+ cleva.c\
+ dleva2.c
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/conj/libConj.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ $(top_builddir)/src/c/operations/division/libDivision.la \
+ $(top_builddir)/src/c/signalProcessing/lev/libLev.la \
+ @LIBMATH@
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/signalProcessing/includes \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes
+
+testDoubleLev_SOURCES = testDoubleLev.c
+testDoubleLev_LDADD = $(check_LDADD)
+testDoubleLev_CFLAGS = $(check_INCLUDES)
+testFloatLev_SOURCES = testFloatLev.c
+testFloatLev_LDADD = $(check_LDADD)
+testFloatLev_CFLAGS = $(check_INCLUDES)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/c/signalProcessing/lev/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/c/signalProcessing/lev/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ }
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libLev.la: $(libLev_la_OBJECTS) $(libLev_la_DEPENDENCIES)
+ $(libLev_la_LINK) -rpath $(pkglibdir) $(libLev_la_OBJECTS) $(libLev_la_LIBADD) $(LIBS)
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+testDoubleLev$(EXEEXT): $(testDoubleLev_OBJECTS) $(testDoubleLev_DEPENDENCIES)
+ @rm -f testDoubleLev$(EXEEXT)
+ $(testDoubleLev_LINK) $(testDoubleLev_OBJECTS) $(testDoubleLev_LDADD) $(LIBS)
+testFloatLev$(EXEEXT): $(testFloatLev_OBJECTS) $(testFloatLev_DEPENDENCIES)
+ @rm -f testFloatLev$(EXEEXT)
+ $(testFloatLev_LINK) $(testFloatLev_OBJECTS) $(testFloatLev_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLev_la-cleva.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLev_la-dleva.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLev_la-dleva2.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLev_la-sleva.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLev_la-zleva.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDoubleLev-testDoubleLev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFloatLev-testFloatLev.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+libLev_la-dleva.lo: dleva.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLev_la_CFLAGS) $(CFLAGS) -MT libLev_la-dleva.lo -MD -MP -MF $(DEPDIR)/libLev_la-dleva.Tpo -c -o libLev_la-dleva.lo `test -f 'dleva.c' || echo '$(srcdir)/'`dleva.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libLev_la-dleva.Tpo $(DEPDIR)/libLev_la-dleva.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dleva.c' object='libLev_la-dleva.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLev_la_CFLAGS) $(CFLAGS) -c -o libLev_la-dleva.lo `test -f 'dleva.c' || echo '$(srcdir)/'`dleva.c
+
+libLev_la-sleva.lo: sleva.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLev_la_CFLAGS) $(CFLAGS) -MT libLev_la-sleva.lo -MD -MP -MF $(DEPDIR)/libLev_la-sleva.Tpo -c -o libLev_la-sleva.lo `test -f 'sleva.c' || echo '$(srcdir)/'`sleva.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libLev_la-sleva.Tpo $(DEPDIR)/libLev_la-sleva.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sleva.c' object='libLev_la-sleva.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLev_la_CFLAGS) $(CFLAGS) -c -o libLev_la-sleva.lo `test -f 'sleva.c' || echo '$(srcdir)/'`sleva.c
+
+libLev_la-zleva.lo: zleva.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLev_la_CFLAGS) $(CFLAGS) -MT libLev_la-zleva.lo -MD -MP -MF $(DEPDIR)/libLev_la-zleva.Tpo -c -o libLev_la-zleva.lo `test -f 'zleva.c' || echo '$(srcdir)/'`zleva.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libLev_la-zleva.Tpo $(DEPDIR)/libLev_la-zleva.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zleva.c' object='libLev_la-zleva.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLev_la_CFLAGS) $(CFLAGS) -c -o libLev_la-zleva.lo `test -f 'zleva.c' || echo '$(srcdir)/'`zleva.c
+
+libLev_la-cleva.lo: cleva.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLev_la_CFLAGS) $(CFLAGS) -MT libLev_la-cleva.lo -MD -MP -MF $(DEPDIR)/libLev_la-cleva.Tpo -c -o libLev_la-cleva.lo `test -f 'cleva.c' || echo '$(srcdir)/'`cleva.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libLev_la-cleva.Tpo $(DEPDIR)/libLev_la-cleva.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cleva.c' object='libLev_la-cleva.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLev_la_CFLAGS) $(CFLAGS) -c -o libLev_la-cleva.lo `test -f 'cleva.c' || echo '$(srcdir)/'`cleva.c
+
+libLev_la-dleva2.lo: dleva2.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLev_la_CFLAGS) $(CFLAGS) -MT libLev_la-dleva2.lo -MD -MP -MF $(DEPDIR)/libLev_la-dleva2.Tpo -c -o libLev_la-dleva2.lo `test -f 'dleva2.c' || echo '$(srcdir)/'`dleva2.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libLev_la-dleva2.Tpo $(DEPDIR)/libLev_la-dleva2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dleva2.c' object='libLev_la-dleva2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLev_la_CFLAGS) $(CFLAGS) -c -o libLev_la-dleva2.lo `test -f 'dleva2.c' || echo '$(srcdir)/'`dleva2.c
+
+testDoubleLev-testDoubleLev.o: testDoubleLev.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleLev_CFLAGS) $(CFLAGS) -MT testDoubleLev-testDoubleLev.o -MD -MP -MF $(DEPDIR)/testDoubleLev-testDoubleLev.Tpo -c -o testDoubleLev-testDoubleLev.o `test -f 'testDoubleLev.c' || echo '$(srcdir)/'`testDoubleLev.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleLev-testDoubleLev.Tpo $(DEPDIR)/testDoubleLev-testDoubleLev.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleLev.c' object='testDoubleLev-testDoubleLev.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleLev_CFLAGS) $(CFLAGS) -c -o testDoubleLev-testDoubleLev.o `test -f 'testDoubleLev.c' || echo '$(srcdir)/'`testDoubleLev.c
+
+testDoubleLev-testDoubleLev.obj: testDoubleLev.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleLev_CFLAGS) $(CFLAGS) -MT testDoubleLev-testDoubleLev.obj -MD -MP -MF $(DEPDIR)/testDoubleLev-testDoubleLev.Tpo -c -o testDoubleLev-testDoubleLev.obj `if test -f 'testDoubleLev.c'; then $(CYGPATH_W) 'testDoubleLev.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleLev.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleLev-testDoubleLev.Tpo $(DEPDIR)/testDoubleLev-testDoubleLev.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleLev.c' object='testDoubleLev-testDoubleLev.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleLev_CFLAGS) $(CFLAGS) -c -o testDoubleLev-testDoubleLev.obj `if test -f 'testDoubleLev.c'; then $(CYGPATH_W) 'testDoubleLev.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleLev.c'; fi`
+
+testFloatLev-testFloatLev.o: testFloatLev.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatLev_CFLAGS) $(CFLAGS) -MT testFloatLev-testFloatLev.o -MD -MP -MF $(DEPDIR)/testFloatLev-testFloatLev.Tpo -c -o testFloatLev-testFloatLev.o `test -f 'testFloatLev.c' || echo '$(srcdir)/'`testFloatLev.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatLev-testFloatLev.Tpo $(DEPDIR)/testFloatLev-testFloatLev.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatLev.c' object='testFloatLev-testFloatLev.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatLev_CFLAGS) $(CFLAGS) -c -o testFloatLev-testFloatLev.o `test -f 'testFloatLev.c' || echo '$(srcdir)/'`testFloatLev.c
+
+testFloatLev-testFloatLev.obj: testFloatLev.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatLev_CFLAGS) $(CFLAGS) -MT testFloatLev-testFloatLev.obj -MD -MP -MF $(DEPDIR)/testFloatLev-testFloatLev.Tpo -c -o testFloatLev-testFloatLev.obj `if test -f 'testFloatLev.c'; then $(CYGPATH_W) 'testFloatLev.c'; else $(CYGPATH_W) '$(srcdir)/testFloatLev.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatLev-testFloatLev.Tpo $(DEPDIR)/testFloatLev-testFloatLev.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatLev.c' object='testFloatLev-testFloatLev.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatLev_CFLAGS) $(CFLAGS) -c -o testFloatLev-testFloatLev.obj `if test -f 'testFloatLev.c'; then $(CYGPATH_W) 'testFloatLev.c'; else $(CYGPATH_W) '$(srcdir)/testFloatLev.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(pkglibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pkglibLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pkglibLTLIBRARIES
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-pkglibLTLIBRARIES install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-pkglibLTLIBRARIES
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/c/signalProcessing/lev/cleva.c b/src/c/signalProcessing/lev/cleva.c
new file mode 100644
index 0000000..5d4b964
--- /dev/null
+++ b/src/c/signalProcessing/lev/cleva.c
@@ -0,0 +1,85 @@
+/*
+ * 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
+ *
+ */
+
+
+/*Resolve the Yule-Walker equations:
+
+ |r(0) r(1) ... r(N-1)|| a(1) | |sigma2|
+ |r(1) r(0) ... r(n-1)|| a(2) | | 0 |
+ | : : ... : || : |=| 0 |
+ | : : ... : || : | | 0 |
+ |r(N-1) r(N-2) ... r(0) ||a(N-1)| | 0 |
+
+ using Levinson's algorithm.
+ r :Correlation coefficients
+ ar :Auto-Regressive model parameters
+ sigma2 :Scale constant
+ rc :Reflection coefficients
+*/
+
+#include <stdlib.h>
+#include "lev.h"
+#include "conj.h"
+#include "multiplication.h"
+#include "addition.h"
+#include "division.h"
+#include "subtraction.h"
+
+
+floatComplex cleva(floatComplex* in,int size, floatComplex* ar, floatComplex* rc){
+ int i=0, j=0;
+ floatComplex accu=FloatComplex(0,0);
+ floatComplex* ak1;
+ floatComplex temp;
+ floatComplex sigma2;
+
+ /* FIXME : malloc here */
+ ak1=(floatComplex*)malloc((unsigned int)size*sizeof(floatComplex));
+
+ /* initialize levinson's algorithm */
+ temp=crdivs(in[1],in[0]);
+ ar[0]=FloatComplex(-creals(temp),-cimags(temp));
+
+ rc[0]=ar[0];
+
+ temp = cmuls(ar[0],cconjs(ar[0]));
+ sigma2=cmuls(cdiffs(FloatComplex(1,0), temp), in[0]);
+
+ ak1[0]=FloatComplex(0,0);
+
+ /* iterative solution to yule-walker equations */
+ for (i=1;i<size-1;i++){
+ accu=FloatComplex(0,0);
+ for (j=0;j<i;j++){
+ temp = cmuls(cconjs(ar[j]),cconjs(in[i-j]));
+ accu=cadds(accu, temp);
+ }
+ temp = cadds(in[i+1],accu);
+ temp = crdivs(temp,sigma2);
+ ak1[i]=FloatComplex(-creals(temp),-cimags(temp));
+
+ rc[i]=FloatComplex(creals(ak1[i]),cimags(ak1[i]));
+ for (j=0;j<i;j++){
+ temp = cmuls(ak1[i], cconjs(ar[i-1-j]));
+ ak1[j] = cadds(ar[j],temp);
+ }
+
+ temp = cmuls(ak1[i], cconjs(ak1[i]));
+ temp = cdiffs(FloatComplex(1,0),temp);
+ sigma2 = cmuls(temp,sigma2);
+ for (j=0;j<=i;j++){
+ ar[j]=FloatComplex(creals(ak1[j]),cimags(ak1[j]));
+ }
+ }
+ free(ak1);
+ return sigma2;
+}
diff --git a/src/c/signalProcessing/lev/cleva2.c b/src/c/signalProcessing/lev/cleva2.c
new file mode 100644
index 0000000..0c14def
--- /dev/null
+++ b/src/c/signalProcessing/lev/cleva2.c
@@ -0,0 +1,83 @@
+/*
+ * 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
+ *
+ */
+
+
+/*Resolve the Yule-Walker equations:
+
+ |r(0) r(1) ... r(N-1)|| a(1) | |sigma2|
+ |r(1) r(0) ... r(n-1)|| a(2) | | 0 |
+ | : : ... : || : |=| 0 |
+ | : : ... : || : | | 0 |
+ |r(N-1) r(N-2) ... r(0) ||a(N-1)| | 0 |
+
+ using Levinson's algorithm.
+ r :Correlation coefficients
+ ar :Auto-Regressive model parameters
+ sigma2 :Scale constant
+ rc :Reflection coefficients
+*/
+
+#include <stdlib.h>
+#include "lev.h"
+#include "conj.h"
+#include "multiplication.h"
+#include "addition.h"
+#include "division.h"
+#include "subtraction.h"
+
+
+floatComplex cleva2(floatComplex* in,int size, floatComplex* ar){
+ int i=0, j=0;
+ floatComplex accu=FloatComplex(0,0);
+ floatComplex* ak1;
+ floatComplex temp;
+ floatComplex sigma2;
+
+ /* FIXME : malloc here */
+ ak1=(floatComplex*)malloc((unsigned int)size*sizeof(floatComplex));
+
+ /* initialize levinson's algorithm */
+ temp=crdivs(in[1],in[0]);
+ ar[0]=FloatComplex(-creals(temp),-cimags(temp));
+
+ temp = cmuls(ar[0],cconjs(ar[0]));
+ sigma2=cmuls(cdiffs(FloatComplex(1,0), temp), in[0]);
+
+ ak1[0]=FloatComplex(0,0);
+
+ /* iterative solution to yule-walker equations */
+ for (i=1;i<size-1;i++){
+ accu=FloatComplex(0,0);
+ for (j=0;j<i;j++){
+ temp = cmuls(cconjs(ar[j]),cconjs(in[i-j]));
+ accu=cadds(accu, temp);
+ }
+ temp = cadds(in[i+1],accu);
+ temp = crdivs(temp,sigma2);
+ ak1[i]=FloatComplex(-creals(temp),-cimags(temp));
+
+
+ for (j=0;j<i;j++){
+ temp = cmuls(ak1[i], cconjs(ar[i-1-j]));
+ ak1[j] = cadds(ar[j],temp);
+ }
+
+ temp = cmuls(ak1[i], cconjs(ak1[i]));
+ temp = cdiffs(FloatComplex(1,0),temp);
+ sigma2 = cmuls(temp,sigma2);
+ for (j=0;j<=i;j++){
+ ar[j]=FloatComplex(creals(ak1[j]),cimags(ak1[j]));
+ }
+ }
+ free(ak1);
+ return sigma2;
+}
diff --git a/src/c/signalProcessing/lev/dleva.c b/src/c/signalProcessing/lev/dleva.c
new file mode 100644
index 0000000..2565f60
--- /dev/null
+++ b/src/c/signalProcessing/lev/dleva.c
@@ -0,0 +1,67 @@
+/*
+ * 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
+ *
+ */
+
+
+/*Resolve the Yule-Walker equations:
+
+ |r(0) r(1) ... r(N-1)|| a(1) | |sigma2|
+ |r(1) r(0) ... r(n-1)|| a(2) | | 0 |
+ | : : ... : || : |=| 0 |
+ | : : ... : || : | | 0 |
+ |r(N-1) r(N-2) ... r(0) ||a(N-1)| | 0 |
+
+ using Levinson's algorithm.
+ r :Correlation coefficients
+ ar :Auto-Regressive model parameters
+ sigma2 :Scale constant
+ rc :Reflection coefficients
+*/
+
+#include <stdlib.h>
+#include "lev.h"
+
+double dleva(double* in,int size, double* ar, double* rc){
+ int i=0, j=0;
+ double accu=0;
+ double* ak1;
+ double sigma2;
+
+ /* FIXME : malloc here */
+ ak1=(double*)malloc((unsigned int)size*sizeof(double));
+
+ /* initialize levinson's algorithm */
+ ar[0]=-in[1]/in[0];
+ rc[0]=ar[0];
+ sigma2=(1-ar[0]*ar[0])*in[0];
+ ak1[0]=0;
+
+ /* iterative solution to yule-walker equations */
+ for (i=1;i<size-1;i++){
+ accu=0;
+ for (j=0;j<i;j++){
+ accu+=ar[j]*in[i-j];
+ }
+ ak1[i]=-(in[i+1]+accu)/(sigma2);
+ rc[i]=ak1[i];
+ for (j=0;j<i;j++){
+ ak1[j] = ar[j]+ak1[i]*ar[i-1-j];
+ }
+ sigma2=(1-ak1[i]*ak1[i])*(sigma2);
+ for (j=0;j<=i;j++){
+ ar[j]=ak1[j];
+ }
+ }
+ free(ak1);
+ return sigma2;
+}
+
+
diff --git a/src/c/signalProcessing/lev/dleva2.c b/src/c/signalProcessing/lev/dleva2.c
new file mode 100644
index 0000000..c75f9d5
--- /dev/null
+++ b/src/c/signalProcessing/lev/dleva2.c
@@ -0,0 +1,65 @@
+/*
+ * 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
+ *
+ */
+
+
+/*Resolve the Yule-Walker equations:
+
+ |r(0) r(1) ... r(N-1)|| a(1) | |sigma2|
+ |r(1) r(0) ... r(n-1)|| a(2) | | 0 |
+ | : : ... : || : |=| 0 |
+ | : : ... : || : | | 0 |
+ |r(N-1) r(N-2) ... r(0) ||a(N-1)| | 0 |
+
+ using Levinson's algorithm.
+ r :Correlation coefficients
+ ar :Auto-Regressive model parameters
+ sigma2 :Scale constant
+ rc :Reflection coefficients
+*/
+
+#include <stdlib.h>
+#include "lev.h"
+
+double dleva2(double* in,int size, double* ar){
+ int i=0, j=0;
+ double accu=0;
+ double* ak1;
+ double sigma2;
+
+ /* FIXME : malloc here */
+ ak1=(double*)malloc((unsigned int)size*sizeof(double));
+
+ /* initialize levinson's algorithm */
+ ar[0]=-in[1]/in[0];
+ sigma2=(1-ar[0]*ar[0])*in[0];
+ ak1[0]=0;
+
+ /* iterative solution to yule-walker equations */
+ for (i=1;i<size-1;i++){
+ accu=0;
+ for (j=0;j<i;j++){
+ accu+=ar[j]*in[i-j];
+ }
+ ak1[i]=-(in[i+1]+accu)/(sigma2);
+ for (j=0;j<i;j++){
+ ak1[j] = ar[j]+ak1[i]*ar[i-1-j];
+ }
+ sigma2=(1-ak1[i]*ak1[i])*(sigma2);
+ for (j=0;j<=i;j++){
+ ar[j]=ak1[j];
+ }
+ }
+ free(ak1);
+ return sigma2;
+}
+
+
diff --git a/src/c/signalProcessing/lev/sleva.c b/src/c/signalProcessing/lev/sleva.c
new file mode 100644
index 0000000..87c2466
--- /dev/null
+++ b/src/c/signalProcessing/lev/sleva.c
@@ -0,0 +1,66 @@
+/*
+ * 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
+ *
+ */
+
+
+/*Resolve the Yule-Walker equations:
+
+ |r(0) r(1) ... r(N-1)|| a(1) | |sigma2|
+ |r(1) r(0) ... r(n-1)|| a(2) | | 0 |
+ | : : ... : || : |=| 0 |
+ | : : ... : || : | | 0 |
+ |r(N-1) r(N-2) ... r(0) ||a(N-1)| | 0 |
+
+ using Levinson's algorithm.
+ r :Correlation coefficients
+ ar :Auto-Regressive model parameters
+ sigma2 :Scale constant
+ rc :Reflection coefficients
+*/
+
+#include <stdlib.h>
+#include "lev.h"
+
+float sleva(float* in,int size, float* ar, float* rc){
+ int i=0, j=0;
+ float accu=0;
+ float* ak1;
+ float sigma2;
+
+ /* FIXME : malloc here */
+ ak1=(float*)malloc((unsigned int)size*sizeof(float));
+
+ /* initialize levinson's algorithm */
+ ar[0]=-in[1]/in[0];
+ rc[0]=ar[0];
+ sigma2=(1-ar[0]*ar[0])*in[0];
+ ak1[0]=0;
+
+ /* iterative solution to yule-walker equations */
+ for (i=1;i<size-1;i++){
+ accu=0;
+ for (j=0;j<i;j++){
+ accu+=ar[j]*in[i-j];
+ }
+ ak1[i]=-(in[i+1]+accu)/sigma2;
+ rc[i]=ak1[i];
+ for (j=0;j<i;j++){
+ ak1[j] = ar[j]+ak1[i]*ar[i-1-j];
+ }
+ sigma2=(1-ak1[i]*ak1[i])*sigma2;
+ for (j=0;j<=i;j++){
+ ar[j]=ak1[j];
+ }
+ }
+ free(ak1);
+ return sigma2;
+}
+
diff --git a/src/c/signalProcessing/lev/sleva2.c b/src/c/signalProcessing/lev/sleva2.c
new file mode 100644
index 0000000..44d7974
--- /dev/null
+++ b/src/c/signalProcessing/lev/sleva2.c
@@ -0,0 +1,64 @@
+/*
+ * 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
+ *
+ */
+
+
+/*Resolve the Yule-Walker equations:
+
+ |r(0) r(1) ... r(N-1)|| a(1) | |sigma2|
+ |r(1) r(0) ... r(n-1)|| a(2) | | 0 |
+ | : : ... : || : |=| 0 |
+ | : : ... : || : | | 0 |
+ |r(N-1) r(N-2) ... r(0) ||a(N-1)| | 0 |
+
+ using Levinson's algorithm.
+ r :Correlation coefficients
+ ar :Auto-Regressive model parameters
+ sigma2 :Scale constant
+ rc :Reflection coefficients
+*/
+
+#include <stdlib.h>
+#include "lev.h"
+
+float sleva2(float* in,int size, float* ar){
+ int i=0, j=0;
+ float accu=0;
+ float* ak1;
+ float sigma2;
+
+ /* FIXME : malloc here */
+ ak1=(float*)malloc((unsigned int)size*sizeof(float));
+
+ /* initialize levinson's algorithm */
+ ar[0]=-in[1]/in[0];
+ sigma2=(1-ar[0]*ar[0])*in[0];
+ ak1[0]=0;
+
+ /* iterative solution to yule-walker equations */
+ for (i=1;i<size-1;i++){
+ accu=0;
+ for (j=0;j<i;j++){
+ accu+=ar[j]*in[i-j];
+ }
+ ak1[i]=-(in[i+1]+accu)/sigma2;
+ for (j=0;j<i;j++){
+ ak1[j] = ar[j]+ak1[i]*ar[i-1-j];
+ }
+ sigma2=(1-ak1[i]*ak1[i])*sigma2;
+ for (j=0;j<=i;j++){
+ ar[j]=ak1[j];
+ }
+ }
+ free(ak1);
+ return sigma2;
+}
+
diff --git a/src/c/signalProcessing/lev/testDoubleLev.c b/src/c/signalProcessing/lev/testDoubleLev.c
new file mode 100644
index 0000000..e06f9ae
--- /dev/null
+++ b/src/c/signalProcessing/lev/testDoubleLev.c
@@ -0,0 +1,199 @@
+/*
+ * 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 <stdio.h>
+#include <assert.h>
+#include "lev.h"
+#include <math.h>
+
+
+static void dlevaTest(void) {
+
+ printf(" \n -------Double Test------- \n");
+ /* TEST 1 */
+ {
+ double in[4]={1,2,3,4};
+ double result1[3]={ - 1.25 , 0.0000000000000002220446 , - 0.2500000000000001110223 };
+ double result2 = -2.5;
+ double result3[3]={- 2.,- 0.3333333333333333148296, - 0.2500000000000001110223 };
+ double out1[3]={0}, out2=0, out3[3]={0};
+ int i;
+
+ out2 = dleva(in,4,out1,out3);
+
+ ;
+ for (i=0;i<3;i++) {
+ printf ("assert : %e \n" , (fabs(out1[i]-result1[i]) )/ fabs (out1[i])) ;
+ if (out1[i]>1e-15) assert((fabs(out1[i]-result1[i]) / fabs (out1[i]))<3e-15);
+ else assert(1);
+ }
+
+ if (out2>1e-16) assert((fabs(out2-result2) / fabs (out2))<1e-16);
+ else assert (1);
+
+ for (i=0;i<3;i++) {
+ if (out3[i]>1e-16) assert((fabs(out3[i]-result3[i]) / fabs (out3[i]))<1e-14);
+ else assert(1);
+ }
+
+ }
+
+ /* TEST 2 */
+ {
+ double in[8]= {0.9475104575976729393005,0.0563528141938149929047,0.8801407832652330398560,0.5110759926028549671173,0.8736385302618145942688, 0.9233113336376845836639,0.1977134644985198974609,0.0427226074971258640289};
+ double result1[7]= { - 1.4145989907356759651691 ,
+ - 0.1879185484276382211988 ,
+ 1.9546862646288580833698 ,
+ 0.0431855597974486471458 ,
+ - 0.6934494907248942574540 ,
+ 0.3355525090987989678126 ,
+ - 0.7681883584831936673254};
+ double result2 = 1.132375302303337161192;
+ double result3[7]= {- 0.0594746092161267045362 ,
+ - 0.9286458300417500533186 ,
+ - 3.5018950960448012033 ,
+ 1.0467634735526456513099 ,
+ 3.0600285663270052616269 ,
+ - 1.8325211983274933835730 ,
+ - 0.7681883584831936673254 };
+ double out1[7]={0}, out2=0, out3[7]={0};
+ int i;
+
+ out2 = dleva(in,8,out1,out3);
+ /*FIXME : Assert à 10^-13*/
+ for (i=0;i<7;i++) {
+ if (out1[i]>1e-16) assert((fabs(out1[i]-result1[i]) / fabs (out1[i]))<1e-13);
+ else assert(1);
+ }
+
+ if (out2>1e-16) assert((fabs(out2-result2) / fabs (out2))<3e-16);
+
+
+ for (i=0;i<7;i++) {
+ if (out3[i]>1e-15) assert((fabs(out3[i]-result3[i]) / fabs (out3[i]))<3e-14);
+ else assert(1);
+ }
+
+ }
+}
+
+
+static void zlevaTest(void) {
+
+ /* TEST 1 */
+ {
+ double inR[4]={1,2,3,4};
+ double inI[4]={1,1,1,1};
+ double result1R[3]={ 0.6666666666666662965923 ,- 4.6666666666666687390830 , 2.0000000000000004440892 };
+ double result1I[3]={ - 1.1666666666666669627261 , - 2.1666666666666665186369 , 2.5 };
+ double result2R = 6.1666666666666678509046;
+ double result2I = 6.1666666666666678509046;
+ double result3R[3]={- 1.5,0.3333333333333333148, 2.0000000000000004440 };
+ double result3I[3]={ + 0.5000000000000000000000 , + 0.6666666666666666296592 , 2.5 };
+ doubleComplex out1[3], out2=DoubleComplex(0,0), out3[3];
+ doubleComplex *in;
+ int i;
+
+ printf(" \n -------DoubleComplex Test------- \n");
+
+ in=DoubleComplexMatrix(inR,inI,4);
+
+ out2 = zleva(in,4,out1,out3);
+
+ for (i=0;i<3;i++){
+ if (zreals(out1[i])>1e-16) assert((fabs(zreals(out1[i])-result1R[i]) / fabs(zreals(out1[i]))) <3e-15);
+ else assert(1);
+ if (zimags(out1[i])>1e-16) assert((fabs(zimags(out1[i])-result1I[i]) / fabs(zimags(out1[i]))) <1e-16);
+ else assert(1);
+ }
+
+ if (zreals(out2)>1e-16) assert((fabs(zreals(out2)-result2R) / fabs(zreals(out2))) <3e-15);
+ else assert(1);
+ if (zimags(out2)>1e-16) assert((fabs(zimags(out2)-result2I) / fabs(zimags(out2))) <3e-15);
+ else assert(1);
+
+ for (i=0;i<3;i++){
+ if (zreals(out3[i])>1e-16) assert((fabs(zreals(out3[i])-result3R[i]) / fabs(zreals(out3[i]))) <3e-15);
+ else assert(1);
+ if (zimags(out3[i])>1e-16) assert((fabs(zimags(out3[i])-result3I[i]) / fabs(zimags(out3[i]))) <1e-16);
+ else assert(1);
+ }
+ }
+
+
+
+ /* TEST 2 */
+
+ {
+ double inR[6]={0.0143211213871836662292,0.7033217861317098140717,0.5212594550102949142456,0.0582674746401607990265,
+ 0.488313094712793827057,0.8035244266502559185028};
+ double inI[6]={0.3819901309907436370850,0.4311556280590593814850,0.7573182275518774986267,0.0120028085075318813324,
+ 0.9994637314230203628540,0.9508706149645149707794};
+ double result1R[5]={- 3.6095794839789050456602,- 22.476200430215509840082,- 8.9817944433992220609753,
+ 12.625498164379671095503, 3.5273512791323136106314};
+ double result1I[5]={9.8938676519388195629290,- 11.160861495580743252276,- 12.396447957003889683847,
+ - 20.810995133509468502098,3.8571422461904862899473};
+ double result2R = 1.2259658790319762911025;
+ double result2I = 32.700432742697543631039;
+ double result3R[5]={ - 1.1960559267342236733356,- 0.0224784059157190282963,- 2.232787465146694128038,
+ 0.4864901943454941202205,3.5273512791323136106314};
+ double result3I[5]={1.7963629642455771762144,0.7825308030566066053169,1.4948702216638325435127,
+ - 1.0642505925602050442791,3.8571422461904862899473};
+ doubleComplex out1[5], out2=DoubleComplex(0,0), out3[5];
+ doubleComplex *in;
+ int i;
+
+ printf(" \n -------DoubleComplex Test------- \n");
+
+ in=DoubleComplexMatrix(inR,inI,6);
+
+ out2 = zleva(in,6,out1,out3);
+
+ /*FIXME : Assert à 10^-14*/
+
+ for (i=0;i<5;i++) printf("out : %1.20f+%1.20f\n",zreals(out1[i]),zimags(out1[i]));
+ for (i=0;i<5;i++){
+ if (zreals(out1[i])>1e-16) assert((fabs(zreals(out1[i])-result1R[i]) / fabs(zreals(out1[i]))) <3e-14);
+ else assert(1);
+ if (zimags(out1[i])>1e-16) assert((fabs(zimags(out1[i])-result1I[i]) / fabs(zimags(out1[i]))) <3e-15);
+ else assert(1);
+ }
+
+ if (zreals(out2)>1e-16) assert((fabs(zreals(out2)-result2R) / fabs(zreals(out2))) <3e-15);
+ else assert(1);
+ if (zimags(out2)>1e-16) assert((fabs(zimags(out2)-result2I) / fabs(zimags(out2))) <3e-15);
+ else assert(1);
+
+ for (i=0;i<5;i++){
+ if (zreals(out3[i])>1e-16) assert((fabs(zreals(out3[i])-result3R[i]) / fabs(zreals(out3[i]))) <3e-15);
+ else assert(1);
+ if (zimags(out3[i])>1e-16) assert((fabs(zimags(out3[i])-result3I[i]) / fabs(zimags(out3[i]))) <3e-15);
+ else assert(1);
+ }
+ }
+}
+
+
+
+
+static int levTest(void) {
+ printf("\n>>>> Lev Tests\n");
+ dlevaTest();
+ zlevaTest();
+ return 0;
+}
+
+int main(void) {
+ assert( levTest()== 0);
+ return 0;
+}
diff --git a/src/c/signalProcessing/lev/testFloatLev.c b/src/c/signalProcessing/lev/testFloatLev.c
new file mode 100644
index 0000000..2aa1808
--- /dev/null
+++ b/src/c/signalProcessing/lev/testFloatLev.c
@@ -0,0 +1,198 @@
+/*
+ * 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 <stdio.h>
+#include <assert.h>
+#include "lev.h"
+#include <math.h>
+
+
+static void slevaTest(void) {
+
+ printf(" \n -------Float Test------- \n");
+ /* TEST 1 */
+ {
+ float in[4]={1.0f,2.0f,3.0f,4.0f};
+ float result1[3]={ - 1.25f , 0.0000000000000002220446f , - 0.2500000000000001110223f };
+ float result2 = -2.5;
+ float result3[3]={- 2.0f,- 0.3333333333333333148296f, - 0.2500000000000001110223f };
+ float out1[3]={0.0f}, out2=0.0f, out3[3]={0.0f};
+ int i;
+
+ out2 = sleva(in,4,out1,out3);
+
+ ;
+ for (i=0;i<3;i++) {
+ if (out1[i]>1e-6) assert( (fabs(out1[i]-result1[i]) / fabs (out1[i]) )<1e-8);
+ else assert(1);
+ }
+
+ if (out2>1e-6) assert((fabs(out2-result2) / fabs (out2))<1e-8);
+ else assert (1);
+
+ for (i=0;i<3;i++) {
+ if (out3[i]>1e-6) assert((fabs(out3[i]-result3[i]) / fabs (out3[i]))<1e-8);
+ else assert(1);
+ }
+
+ }
+
+ /* TEST 2 */
+ {
+ float in[8]= {0.9475104575976729393005f,0.0563528141938149929047f,0.8801407832652330398560f,0.5110759926028549671173f,0.8736385302618145942688f, 0.9233113336376845836639f,0.1977134644985198974609f,0.0427226074971258640289f};
+ float result1[7]= { - 1.4145989907356759651691f ,
+ - 0.1879185484276382211988f ,
+ 1.9546862646288580833698f ,
+ 0.0431855597974486471458f ,
+ - 0.6934494907248942574540f ,
+ 0.3355525090987989678126f ,
+ - 0.7681883584831936673254f};
+ float result2 = 1.132375302303337161192f;
+ float result3[7]= {- 0.0594746092161267045362f ,
+ - 0.9286458300417500533186f ,
+ - 3.5018950960448012033f ,
+ 1.0467634735526456513099f ,
+ 3.0600285663270052616269f ,
+ - 1.8325211983274933835730f ,
+ - 0.7681883584831936673254f };
+ float out1[7]={0.0f}, out2=0.0f, out3[7]={0.0f};
+ int i;
+
+ out2 = sleva(in,8,out1,out3);
+ /*FIXME : Assert à 10^-4*/
+ for (i=0;i<7;i++) {
+ if (out1[i]>1e-6) assert((fabs(out1[i]-result1[i]) / fabs (out1[i]))<3e-5);
+ else assert(1);
+ }
+
+ if (out2>1e-6) assert((fabs(out2-result2) / fabs (out2))<1e-6);
+
+
+ for (i=0;i<7;i++) {
+ if (out3[i]>1e-6) assert((fabs(out3[i]-result3[i]) / fabs (out3[i]))<1e-6);
+ else assert(1);
+ }
+
+ }
+}
+
+
+static void clevaTest(void) {
+
+ /* TEST 1 */
+ {
+ float inR[4]={1.0f,2.0f,3.0f,4.0f};
+ float inI[4]={1.0f,1.0f,1.0f,1.0f};
+ float result1R[3]={ 0.6666666666666662965923f ,- 4.6666666666666687390830f , 2.0000000000000004440892f };
+ float result1I[3]={ - 1.1666666666666669627261f , - 2.1666666666666665186369f , 2.5f };
+ float result2R = 6.1666666666666678509046f;
+ float result2I = 6.1666666666666678509046f;
+ float result3R[3]={- 1.5f,0.3333333333333333148f, 2.0000000000000004440f };
+ float result3I[3]={ + 0.5000000000000000000000f , + 0.6666666666666666296592f , 2.5f };
+ floatComplex out1[3], out2=FloatComplex(0,0), out3[3];
+ floatComplex *in;
+ int i;
+
+ printf(" \n -------FloatComplex Test------- \n");
+
+ in=FloatComplexMatrix(inR,inI,4);
+
+ out2 = cleva(in,4,out1,out3);
+
+ for (i=0;i<3;i++){
+ if (creals(out1[i])>1e-6) assert((fabs(creals(out1[i])-result1R[i]) / fabs(creals(out1[i]))) <1e-6);
+ else assert(1);
+ if (cimags(out1[i])>1e-6) assert((fabs(cimags(out1[i])-result1I[i]) / fabs(cimags(out1[i]))) <1e-7);
+ else assert(1);
+ }
+
+ if (creals(out2)>1e-6) assert((fabs(creals(out2)-result2R) / fabs(creals(out2))) <1e-6);
+ else assert(1);
+ if (cimags(out2)>1e-6) assert((fabs(cimags(out2)-result2I) / fabs(cimags(out2))) <1e-6);
+ else assert(1);
+
+ for (i=0;i<3;i++){
+ if (creals(out3[i])>1e-6) assert((fabs(creals(out3[i])-result3R[i]) / fabs(creals(out3[i]))) <1e-6);
+ else assert(1);
+ if (cimags(out3[i])>1e-6) assert((fabs(cimags(out3[i])-result3I[i]) / fabs(cimags(out3[i]))) <1e-8);
+ else assert(1);
+ }
+ }
+
+
+
+ /* TEST 2 */
+
+ {
+ float inR[6]={0.0143211213871836662292f,0.7033217861317098140717f,0.5212594550102949142456f,0.0582674746401607990265f,
+ 0.488313094712793827057f,0.8035244266502559185028f};
+ float inI[6]={0.3819901309907436370850f,0.4311556280590593814850f,0.7573182275518774986267f,0.0120028085075318813324f,
+ 0.9994637314230203628540f,0.9508706149645149707794f};
+ float result1R[5]={- 3.6095794839789050456602f,- 22.476200430215509840082f,- 8.9817944433992220609753f,
+ 12.625498164379671095503f, 3.5273512791323136106314f};
+ float result1I[5]={9.8938676519388195629290f,- 11.160861495580743252276f,- 12.396447957003889683847f,
+ - 20.810995133509468502098f,3.8571422461904862899473f};
+ float result2R = 1.2259658790319762911025f;
+ float result2I = 32.700432742697543631039f;
+ float result3R[5]={ - 1.1960559267342236733356f,- 0.0224784059157190282963f,- 2.232787465146694128038f,
+ 0.4864901943454941202205f,3.5273512791323136106314f};
+ float result3I[5]={1.7963629642455771762144f,0.7825308030566066053169f,1.4948702216638325435127f,
+ - 1.0642505925602050442791f,3.8571422461904862899473f};
+ floatComplex out1[5], out2=FloatComplex(0,0), out3[5];
+ floatComplex *in;
+ int i;
+
+ printf(" \n -------FloatComplex Test------- \n");
+
+ in=FloatComplexMatrix(inR,inI,6);
+
+ out2 = cleva(in,6,out1,out3);
+
+
+
+ for (i=0;i<5;i++) printf("out : %1.20f+%1.20f\n",creals(out1[i]),cimags(out1[i]));
+ for (i=0;i<5;i++){
+ if (creals(out1[i])>1e-6) assert((fabs(creals(out1[i])-result1R[i]) / fabs(creals(out1[i]))) <1e-6);
+ else assert(1);
+ if (cimags(out1[i])>1e-6) assert((fabs(cimags(out1[i])-result1I[i]) / fabs(cimags(out1[i]))) <1e-6);
+ else assert(1);
+ }
+
+ if (creals(out2)>1e-6) assert((fabs(creals(out2)-result2R) / fabs(creals(out2))) <1e-8);
+ else assert(1);
+ if (cimags(out2)>1e-6) assert((fabs(cimags(out2)-result2I) / fabs(cimags(out2))) <1e-8);
+ else assert(1);
+
+ for (i=0;i<5;i++){
+ if (creals(out3[i])>1e-6) assert((fabs(creals(out3[i])-result3R[i]) / fabs(creals(out3[i]))) <1e-7);
+ else assert(1);
+ if (cimags(out3[i])>1e-6) assert((fabs(cimags(out3[i])-result3I[i]) / fabs(cimags(out3[i]))) <1e-6);
+ else assert(1);
+ }
+ }
+}
+
+
+
+
+static int levTest(void) {
+ printf("\n>>>> Lev Tests\n");
+ slevaTest();
+ clevaTest();
+ return 0;
+}
+
+int main(void) {
+ assert( levTest()== 0);
+ return 0;
+}
diff --git a/src/c/signalProcessing/lev/test_DoubleLev/testDoubleLev.vcxproj b/src/c/signalProcessing/lev/test_DoubleLev/testDoubleLev.vcxproj
new file mode 100644
index 0000000..4dbf3d9
--- /dev/null
+++ b/src/c/signalProcessing/lev/test_DoubleLev/testDoubleLev.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{BD0B9C19-FDC9-46AB-BCDB-384B4967B7A2}</ProjectGuid>
+ <RootNamespace>testDoubleLev</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleLev.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/lev/test_DoubleLev/testDoubleLev.vcxproj.filters b/src/c/signalProcessing/lev/test_DoubleLev/testDoubleLev.vcxproj.filters
new file mode 100644
index 0000000..d8f474c
--- /dev/null
+++ b/src/c/signalProcessing/lev/test_DoubleLev/testDoubleLev.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleLev.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/lev/test_FloatLev/testFloatLev.vcxproj b/src/c/signalProcessing/lev/test_FloatLev/testFloatLev.vcxproj
new file mode 100644
index 0000000..1acabea
--- /dev/null
+++ b/src/c/signalProcessing/lev/test_FloatLev/testFloatLev.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{81145727-FB2B-4CD6-B5AC-3F2146F93D5F}</ProjectGuid>
+ <RootNamespace>testFloatLev</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatLev.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/lev/test_FloatLev/testFloatLev.vcxproj.filters b/src/c/signalProcessing/lev/test_FloatLev/testFloatLev.vcxproj.filters
new file mode 100644
index 0000000..915db23
--- /dev/null
+++ b/src/c/signalProcessing/lev/test_FloatLev/testFloatLev.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatLev.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/lev/zleva.c b/src/c/signalProcessing/lev/zleva.c
new file mode 100644
index 0000000..c2b9b1b
--- /dev/null
+++ b/src/c/signalProcessing/lev/zleva.c
@@ -0,0 +1,86 @@
+/*
+ * 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
+ *
+ */
+
+
+/*Resolve the Yule-Walker equations:
+
+ |r(0) r(1) ... r(N-1)|| a(1) | |sigma2|
+ |r(1) r(0) ... r(n-1)|| a(2) | | 0 |
+ | : : ... : || : |=| 0 |
+ | : : ... : || : | | 0 |
+ |r(N-1) r(N-2) ... r(0) ||a(N-1)| | 0 |
+
+ using Levinson's algorithm.
+ r :Correlation coefficients
+ ar :Auto-Regressive model parameters
+ sigma2 :Scale constant
+ rc :Reflection coefficients
+*/
+
+#include <stdlib.h>
+#include "lev.h"
+#include "conj.h"
+#include "multiplication.h"
+#include "addition.h"
+#include "division.h"
+#include "subtraction.h"
+
+doubleComplex zleva(doubleComplex* in,int size, doubleComplex* ar, doubleComplex* rc){
+ int i=0, j=0;
+ doubleComplex accu=DoubleComplex(0,0);
+ doubleComplex* ak1;
+ doubleComplex temp;
+ doubleComplex sigma2;
+
+ /* FIXME : malloc here */
+ ak1=(doubleComplex*)malloc((unsigned int)size*sizeof(doubleComplex));
+
+ /* initialize levinson's algorithm */
+ temp=zrdivs(in[1],in[0]);
+ ar[0]=DoubleComplex(-zreals(temp),-zimags(temp));
+
+ rc[0]=ar[0];
+
+ temp = zmuls(ar[0],zconjs(ar[0]));
+ sigma2=zmuls(zdiffs(DoubleComplex(1,0), temp), in[0]);
+
+ ak1[0]=DoubleComplex(0,0);
+
+ /* iterative solution to yule-walker equations */
+ for (i=1;i<size-1;i++){
+ accu=DoubleComplex(0,0);
+ for (j=0;j<i;j++){
+ temp = zmuls(zconjs(ar[j]),zconjs(in[i-j]));
+ accu=zadds(accu, temp);
+ }
+ temp = zadds(in[i+1],accu);
+ temp = zrdivs(temp,sigma2);
+ ak1[i]=DoubleComplex(-zreals(temp),-zimags(temp));
+
+ rc[i]=DoubleComplex(zreals(ak1[i]),zimags(ak1[i]));
+ for (j=0;j<i;j++){
+ temp = zmuls(ak1[i], zconjs(ar[i-1-j]));
+ ak1[j] = zadds(ar[j],temp);
+ }
+
+ temp = zmuls(ak1[i], zconjs(ak1[i]));
+ temp = zdiffs(DoubleComplex(1,0),temp);
+ sigma2 = zmuls(temp,sigma2);
+ for (j=0;j<=i;j++){
+ ar[j]=DoubleComplex(zreals(ak1[j]),zimags(ak1[j]));
+ }
+ }
+ free(ak1);
+ return sigma2;
+}
+
+
diff --git a/src/c/signalProcessing/lev/zleva2.c b/src/c/signalProcessing/lev/zleva2.c
new file mode 100644
index 0000000..0225395
--- /dev/null
+++ b/src/c/signalProcessing/lev/zleva2.c
@@ -0,0 +1,83 @@
+/*
+ * 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
+ *
+ */
+
+
+/*Resolve the Yule-Walker equations:
+
+ |r(0) r(1) ... r(N-1)|| a(1) | |sigma2|
+ |r(1) r(0) ... r(n-1)|| a(2) | | 0 |
+ | : : ... : || : |=| 0 |
+ | : : ... : || : | | 0 |
+ |r(N-1) r(N-2) ... r(0) ||a(N-1)| | 0 |
+
+ using Levinson's algorithm.
+ r :Correlation coefficients
+ ar :Auto-Regressive model parameters
+ sigma2 :Scale constant
+ rc :Reflection coefficients
+*/
+
+#include <stdlib.h>
+#include "lev.h"
+#include "conj.h"
+#include "multiplication.h"
+#include "addition.h"
+#include "division.h"
+#include "subtraction.h"
+
+doubleComplex zleva2(doubleComplex* in,int size, doubleComplex* ar){
+ int i=0, j=0;
+ doubleComplex accu=DoubleComplex(0,0);
+ doubleComplex* ak1;
+ doubleComplex temp;
+ doubleComplex sigma2;
+
+ /* FIXME : malloc here */
+ ak1=(doubleComplex*)malloc((unsigned int)size*sizeof(doubleComplex));
+
+ /* initialize levinson's algorithm */
+ temp=zrdivs(in[1],in[0]);
+ ar[0]=DoubleComplex(-zreals(temp),-zimags(temp));
+
+ temp = zmuls(ar[0],zconjs(ar[0]));
+ sigma2=zmuls(zdiffs(DoubleComplex(1,0), temp), in[0]);
+
+ ak1[0]=DoubleComplex(0,0);
+
+ /* iterative solution to yule-walker equations */
+ for (i=1;i<size-1;i++){
+ accu=DoubleComplex(0,0);
+ for (j=0;j<i;j++){
+ temp = zmuls(zconjs(ar[j]),zconjs(in[i-j]));
+ accu=zadds(accu, temp);
+ }
+ temp = zadds(in[i+1],accu);
+ temp = zrdivs(temp,sigma2);
+ ak1[i]=DoubleComplex(-zreals(temp),-zimags(temp));
+
+ for (j=0;j<i;j++){
+ temp = zmuls(ak1[i], zconjs(ar[i-1-j]));
+ ak1[j] = zadds(ar[j],temp);
+ }
+
+ temp = zmuls(ak1[i], zconjs(ak1[i]));
+ temp = zdiffs(DoubleComplex(1,0),temp);
+ sigma2 = zmuls(temp,sigma2);
+ for (j=0;j<=i;j++){
+ ar[j]=DoubleComplex(zreals(ak1[j]),zimags(ak1[j]));
+ }
+ }
+ free(ak1);
+ return sigma2;
+}
+
+
diff --git a/src/c/signalProcessing/levin/Makefile.am b/src/c/signalProcessing/levin/Makefile.am
new file mode 100644
index 0000000..3e6de02
--- /dev/null
+++ b/src/c/signalProcessing/levin/Makefile.am
@@ -0,0 +1,76 @@
+##
+## 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
+##
+##
+
+
+
+
+libLevin_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/elementaryFunctions/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes \
+ -I $(top_builddir)/src/c/signalProcessing/levin
+
+
+instdir = $(top_builddir)/lib
+
+
+pkglib_LTLIBRARIES = libLevin.la
+
+HEAD = ../includes/levin.h
+
+
+libLevin_la_SOURCES = $(HEAD) \
+ levinUtils.c \
+ slevina.c \
+ dlevina.c
+
+
+###############
+#### Check ####
+###############
+check_PROGRAMS = testDoubleLevin testFloatLevin
+
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/c/matrixOperations/inversion/libMatrixInversion.la \
+ $(top_builddir)/src/c/matrixOperations/multiplication/libMatrixMultiplication.la \
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la \
+ $(top_builddir)/src/c/signalProcessing/levin/libLevin.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ @LIBMATH@
+
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes \
+ -I $(top_builddir)/src/c/signalProcessing/levin
+
+
+testDoubleLevin_SOURCES = testDoubleLevin.c
+testDoubleLevin_LDADD = $(check_LDADD)
+testDoubleLevin_CFLAGS = $(check_INCLUDES)
+
+testFloatLevin_SOURCES = testFloatLevin.c
+testFloatLevin_LDADD = $(check_LDADD)
+testFloatLevin_CFLAGS = $(check_INCLUDES)
+
+
+TESTS = testDoubleLevin testFloatLevin
diff --git a/src/c/signalProcessing/levin/Makefile.in b/src/c/signalProcessing/levin/Makefile.in
new file mode 100644
index 0000000..ebe824e
--- /dev/null
+++ b/src/c/signalProcessing/levin/Makefile.in
@@ -0,0 +1,759 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+check_PROGRAMS = testDoubleLevin$(EXEEXT) testFloatLevin$(EXEEXT)
+TESTS = testDoubleLevin$(EXEEXT) testFloatLevin$(EXEEXT)
+subdir = src/c/signalProcessing/levin
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/includes/machine.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkglibdir)"
+LTLIBRARIES = $(pkglib_LTLIBRARIES)
+libLevin_la_LIBADD =
+am__objects_1 =
+am_libLevin_la_OBJECTS = $(am__objects_1) libLevin_la-levinUtils.lo \
+ libLevin_la-slevina.lo libLevin_la-dlevina.lo
+libLevin_la_OBJECTS = $(am_libLevin_la_OBJECTS)
+libLevin_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libLevin_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testDoubleLevin_OBJECTS = \
+ testDoubleLevin-testDoubleLevin.$(OBJEXT)
+testDoubleLevin_OBJECTS = $(am_testDoubleLevin_OBJECTS)
+am__DEPENDENCIES_1 = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/c/matrixOperations/inversion/libMatrixInversion.la \
+ $(top_builddir)/src/c/matrixOperations/multiplication/libMatrixMultiplication.la \
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la \
+ $(top_builddir)/src/c/signalProcessing/levin/libLevin.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la
+testDoubleLevin_DEPENDENCIES = $(am__DEPENDENCIES_1)
+testDoubleLevin_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testDoubleLevin_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testFloatLevin_OBJECTS = testFloatLevin-testFloatLevin.$(OBJEXT)
+testFloatLevin_OBJECTS = $(am_testFloatLevin_OBJECTS)
+testFloatLevin_DEPENDENCIES = $(am__DEPENDENCIES_1)
+testFloatLevin_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testFloatLevin_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libLevin_la_SOURCES) $(testDoubleLevin_SOURCES) \
+ $(testFloatLevin_SOURCES)
+DIST_SOURCES = $(libLevin_la_SOURCES) $(testDoubleLevin_SOURCES) \
+ $(testFloatLevin_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBMATH = @LIBMATH@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libLevin_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/elementaryFunctions/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes \
+ -I $(top_builddir)/src/c/signalProcessing/levin
+
+instdir = $(top_builddir)/lib
+pkglib_LTLIBRARIES = libLevin.la
+HEAD = ../includes/levin.h
+libLevin_la_SOURCES = $(HEAD) \
+ levinUtils.c \
+ slevina.c \
+ dlevina.c
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/c/matrixOperations/inversion/libMatrixInversion.la \
+ $(top_builddir)/src/c/matrixOperations/multiplication/libMatrixMultiplication.la \
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la \
+ $(top_builddir)/src/c/signalProcessing/levin/libLevin.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ @LIBMATH@
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes \
+ -I $(top_builddir)/src/c/signalProcessing/levin
+
+testDoubleLevin_SOURCES = testDoubleLevin.c
+testDoubleLevin_LDADD = $(check_LDADD)
+testDoubleLevin_CFLAGS = $(check_INCLUDES)
+testFloatLevin_SOURCES = testFloatLevin.c
+testFloatLevin_LDADD = $(check_LDADD)
+testFloatLevin_CFLAGS = $(check_INCLUDES)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/c/signalProcessing/levin/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/c/signalProcessing/levin/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ }
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libLevin.la: $(libLevin_la_OBJECTS) $(libLevin_la_DEPENDENCIES)
+ $(libLevin_la_LINK) -rpath $(pkglibdir) $(libLevin_la_OBJECTS) $(libLevin_la_LIBADD) $(LIBS)
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+testDoubleLevin$(EXEEXT): $(testDoubleLevin_OBJECTS) $(testDoubleLevin_DEPENDENCIES)
+ @rm -f testDoubleLevin$(EXEEXT)
+ $(testDoubleLevin_LINK) $(testDoubleLevin_OBJECTS) $(testDoubleLevin_LDADD) $(LIBS)
+testFloatLevin$(EXEEXT): $(testFloatLevin_OBJECTS) $(testFloatLevin_DEPENDENCIES)
+ @rm -f testFloatLevin$(EXEEXT)
+ $(testFloatLevin_LINK) $(testFloatLevin_OBJECTS) $(testFloatLevin_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLevin_la-dlevina.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLevin_la-levinUtils.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLevin_la-slevina.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDoubleLevin-testDoubleLevin.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFloatLevin-testFloatLevin.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+libLevin_la-levinUtils.lo: levinUtils.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLevin_la_CFLAGS) $(CFLAGS) -MT libLevin_la-levinUtils.lo -MD -MP -MF $(DEPDIR)/libLevin_la-levinUtils.Tpo -c -o libLevin_la-levinUtils.lo `test -f 'levinUtils.c' || echo '$(srcdir)/'`levinUtils.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libLevin_la-levinUtils.Tpo $(DEPDIR)/libLevin_la-levinUtils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='levinUtils.c' object='libLevin_la-levinUtils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLevin_la_CFLAGS) $(CFLAGS) -c -o libLevin_la-levinUtils.lo `test -f 'levinUtils.c' || echo '$(srcdir)/'`levinUtils.c
+
+libLevin_la-slevina.lo: slevina.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLevin_la_CFLAGS) $(CFLAGS) -MT libLevin_la-slevina.lo -MD -MP -MF $(DEPDIR)/libLevin_la-slevina.Tpo -c -o libLevin_la-slevina.lo `test -f 'slevina.c' || echo '$(srcdir)/'`slevina.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libLevin_la-slevina.Tpo $(DEPDIR)/libLevin_la-slevina.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='slevina.c' object='libLevin_la-slevina.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLevin_la_CFLAGS) $(CFLAGS) -c -o libLevin_la-slevina.lo `test -f 'slevina.c' || echo '$(srcdir)/'`slevina.c
+
+libLevin_la-dlevina.lo: dlevina.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLevin_la_CFLAGS) $(CFLAGS) -MT libLevin_la-dlevina.lo -MD -MP -MF $(DEPDIR)/libLevin_la-dlevina.Tpo -c -o libLevin_la-dlevina.lo `test -f 'dlevina.c' || echo '$(srcdir)/'`dlevina.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libLevin_la-dlevina.Tpo $(DEPDIR)/libLevin_la-dlevina.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dlevina.c' object='libLevin_la-dlevina.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLevin_la_CFLAGS) $(CFLAGS) -c -o libLevin_la-dlevina.lo `test -f 'dlevina.c' || echo '$(srcdir)/'`dlevina.c
+
+testDoubleLevin-testDoubleLevin.o: testDoubleLevin.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleLevin_CFLAGS) $(CFLAGS) -MT testDoubleLevin-testDoubleLevin.o -MD -MP -MF $(DEPDIR)/testDoubleLevin-testDoubleLevin.Tpo -c -o testDoubleLevin-testDoubleLevin.o `test -f 'testDoubleLevin.c' || echo '$(srcdir)/'`testDoubleLevin.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleLevin-testDoubleLevin.Tpo $(DEPDIR)/testDoubleLevin-testDoubleLevin.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleLevin.c' object='testDoubleLevin-testDoubleLevin.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleLevin_CFLAGS) $(CFLAGS) -c -o testDoubleLevin-testDoubleLevin.o `test -f 'testDoubleLevin.c' || echo '$(srcdir)/'`testDoubleLevin.c
+
+testDoubleLevin-testDoubleLevin.obj: testDoubleLevin.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleLevin_CFLAGS) $(CFLAGS) -MT testDoubleLevin-testDoubleLevin.obj -MD -MP -MF $(DEPDIR)/testDoubleLevin-testDoubleLevin.Tpo -c -o testDoubleLevin-testDoubleLevin.obj `if test -f 'testDoubleLevin.c'; then $(CYGPATH_W) 'testDoubleLevin.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleLevin.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleLevin-testDoubleLevin.Tpo $(DEPDIR)/testDoubleLevin-testDoubleLevin.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleLevin.c' object='testDoubleLevin-testDoubleLevin.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleLevin_CFLAGS) $(CFLAGS) -c -o testDoubleLevin-testDoubleLevin.obj `if test -f 'testDoubleLevin.c'; then $(CYGPATH_W) 'testDoubleLevin.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleLevin.c'; fi`
+
+testFloatLevin-testFloatLevin.o: testFloatLevin.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatLevin_CFLAGS) $(CFLAGS) -MT testFloatLevin-testFloatLevin.o -MD -MP -MF $(DEPDIR)/testFloatLevin-testFloatLevin.Tpo -c -o testFloatLevin-testFloatLevin.o `test -f 'testFloatLevin.c' || echo '$(srcdir)/'`testFloatLevin.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatLevin-testFloatLevin.Tpo $(DEPDIR)/testFloatLevin-testFloatLevin.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatLevin.c' object='testFloatLevin-testFloatLevin.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatLevin_CFLAGS) $(CFLAGS) -c -o testFloatLevin-testFloatLevin.o `test -f 'testFloatLevin.c' || echo '$(srcdir)/'`testFloatLevin.c
+
+testFloatLevin-testFloatLevin.obj: testFloatLevin.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatLevin_CFLAGS) $(CFLAGS) -MT testFloatLevin-testFloatLevin.obj -MD -MP -MF $(DEPDIR)/testFloatLevin-testFloatLevin.Tpo -c -o testFloatLevin-testFloatLevin.obj `if test -f 'testFloatLevin.c'; then $(CYGPATH_W) 'testFloatLevin.c'; else $(CYGPATH_W) '$(srcdir)/testFloatLevin.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatLevin-testFloatLevin.Tpo $(DEPDIR)/testFloatLevin-testFloatLevin.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatLevin.c' object='testFloatLevin-testFloatLevin.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatLevin_CFLAGS) $(CFLAGS) -c -o testFloatLevin-testFloatLevin.obj `if test -f 'testFloatLevin.c'; then $(CYGPATH_W) 'testFloatLevin.c'; else $(CYGPATH_W) '$(srcdir)/testFloatLevin.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(pkglibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pkglibLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pkglibLTLIBRARIES
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-pkglibLTLIBRARIES install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-pkglibLTLIBRARIES
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/c/signalProcessing/levin/dlevina.c b/src/c/signalProcessing/levin/dlevina.c
new file mode 100644
index 0000000..29ee622
--- /dev/null
+++ b/src/c/signalProcessing/levin/dlevina.c
@@ -0,0 +1,185 @@
+/*
+ * 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 "levin.h"
+#include "levinUtils.h"
+#include "matrixInversion.h"
+#include "matrixMultiplication.h"
+#include "zeros.h"
+
+void dlevina (int n, double* cov, int lCov, int cCov, double* la, double* sig, double* lb){
+/*
+ [la and lb]
+ In Scilab, the return value la is a list of n elements. Each element is a matrix cCov*cCov,
+ and each element of the matrix is a polynome whose degree is n, so the polynome got n+1 elements.
+ The greatest size of a element of the list is : (n+1)*cCov*cCov.
+
+ Here, la is a matrix which contain all elements of the list, its size is n*(n+1)*cCov*cCov. We take the
+ maximum size for all elements.
+ The first element of the list is the first (n+1)*cCov*cCov elements of la, namely la[0] to la[(n+1)*cCov*cCov-1].
+ The second element of the list is the elements of la between (n+1)*cCov*cCov and 2*(n+1)*cCov*cCov,namely la[(n+1)*cCov*cCov]
+ to la[2*(n+1)*cCov*cCov-1],...
+
+ Enter now in a element of the list. Take the first for example.
+ This is, like said before, a cCov*cCov matrix. In la, it contains (n+1)*cCov*cCov. Each element of the matrix contains (n+1)
+ elements. As it's stocked by columns, if we represent a matrix like [a c], for example, the elements 0 to n of la represent
+ [b d]
+ a, the elements (n+1) to 2(n+1)-1 represent b,...
+
+ To finish, look at the elements of the matrix, the polynomes. The coefficients of the polynomes are stocked in increasing order.
+
+ For example, if la in Scilab is : list( [3+2x 5-2x ])
+ ( [-5+x -2+4x])
+ ([3+x-x^2 -1+2x ])
+ ([1+6x+3x^2 -2x-x^2 ])
+ the result in dlevin will be :
+ -la is a table of 2*3*2*2 elements(n=2,cCov=2);
+ -la[]={3,2,0, -5,1,0, 5,-2,0, -2,4,0, 3,1,-1, 1,6,3 -1,2,0, 0,-2,-1}.
+
+ It's the same for lb.
+
+ [sig]
+ In Scilab, the return value sig is a list of n elements. Each element is a matrix cCov*cCov,
+ and each element of the matrix is a scalar, so 1 element.
+ The greatest size of a element of the list is : cCov*cCov.
+
+ Let see an example so know how it's stocked.
+ In Scilab, if sig is : list( [1 3])
+ ( [2 4])
+ ( [5 7])
+ ( [6 8])
+ the result in dlevin will be :
+ -sig={1,2, 5,6, 3,4, 7,8}.
+ It's as if we put the matrix the ones under the others and we take the first column, the second,...
+
+ >>>CAREFUL<<<
+ la/lb and sig are stored differently
+
+
+*/
+
+
+ int i=0;
+
+
+/*version ISO C99
+ double tmp1[n*cCov*cCov], tmp2[n*cCov*cCov];
+ double sig1[cCov], gam[cCov];
+ double R1[n*cCov],R2[n*cCov],R3[n*cCov],R4[n*cCov];
+*/
+/*version pas ISO C99 */
+ double *tmp1, *tmp2;
+ double *sig1, *gam;
+ double *R1,*R2,*R3,*R4;
+
+ /* FIXME : malloc here */
+
+ tmp1=(double *)malloc((unsigned int)((n+1)*cCov*cCov)*sizeof(double));
+ tmp2=(double *)malloc((unsigned int)((n+1)*cCov*cCov)*sizeof(double));
+ sig1=(double *)malloc((unsigned int)(cCov*cCov)*sizeof(double));
+ gam=(double *)malloc((unsigned int)(cCov*cCov)*sizeof(double));
+ R1=(double *)malloc((unsigned int)(n*cCov*cCov)*sizeof(double));
+ R2=(double *)malloc((unsigned int)(n*cCov*cCov)*sizeof(double));
+ R3=(double *)malloc((unsigned int)(n*cCov*cCov)*sizeof(double));
+ R4=(double *)malloc((unsigned int)(n*cCov*cCov)*sizeof(double));
+
+
+
+ /*
+ * Initializations
+ * */
+ dzerosa(sig,n*cCov*cCov,1);
+ dzerosa(la,n*(n+1)*cCov*cCov,1);
+ dzerosa(lb,n*(n+1)*cCov*cCov,1);
+
+ /*equal to eye(la) and eye(lb)
+ but we can't use eye cause to the indexation*/
+ for (i=0;i<cCov;i++){
+ la[i*((n+1)*(cCov+1))]=1;
+ lb[i*((n+1)*(cCov+1))]=1;
+ }
+
+ dr1(cov,lCov,cCov,n,R1);
+ dr2(cov,lCov,cCov,n,R2);
+ dr3(cov,lCov,cCov,n,R3);
+ dr4(cov,lCov,cCov,n,R4);
+
+/* case i=0 */
+
+
+ /*computation of sig */
+ dlevinmul(la,R4,n,cCov,0,sig,n*cCov,0,'d');
+ /*computation of gam1 */
+ dlevinmul(lb,R2,n,cCov,0,gam,cCov,0,'u');
+ /*computation of c1*r1 */
+ dlevinmul(la,R1,n,cCov,0,tmp1,cCov,0,'u');
+ /*computation of inv(gam1) */
+ dinverma(gam,sig1,cCov);
+ /*computation of k1 = c1*r1*inv(gam1) */
+ dmulma(tmp1,cCov,cCov,sig1,cCov,cCov,tmp2);
+ /*computation of k1*lb */
+ dlevinmul2(tmp2,lb,0,n,cCov,tmp1);
+ /*computation of k1*lb*z */
+ ddecalage(tmp1,0,n,cCov,tmp1);
+ /*computation of la */
+ dlevinsub(la,tmp1,n,cCov,0,0,la);
+
+ /*computation of sig1 (we extract the value if sig at time 0)*/
+ dlevinsig(sig,0,cCov,n*cCov,sig1);
+ /*computation of c2*r3 */
+ dlevinmul(lb,R3,n,cCov,0,tmp1,cCov,0,'d');
+ /*computation of inv(sig1)*/
+ dinverma(sig1,gam,cCov);
+ /*computation of k2 = c2*r3*inv(sig1) */
+ dmulma(tmp1,cCov,cCov,gam,cCov,cCov,tmp2);
+ /*computation of k2*la (here it's lb cause la have been modified
+ and the precedent values hadn't been saved)*/
+ dlevinmul2(tmp2,lb,0,n,cCov,tmp1);
+ /*computation of lb*z */
+ ddecalage(lb,0,n,cCov,lb);
+ /*computation of lb */
+ dlevinsub(lb,tmp1,n,cCov,0,0,lb);
+
+
+ for (i=1;i<n;i++){
+ dlevinmul(la,R4,n,cCov,i,sig,n*cCov,1,'d');
+ dlevinmul(lb,R2,n,cCov,i,gam,cCov,0,'u');
+ dlevinmul(la,R1,n,cCov,i,tmp1,cCov,0,'u');
+ dinverma(gam,sig1,cCov);
+ dmulma(tmp1,cCov,cCov,sig1,cCov,cCov,tmp2);
+
+ dlevinmul2(tmp2,lb,i-1,n,cCov,tmp1);
+ ddecalage(tmp1,0,n,cCov,tmp1);
+ dlevinsub(la,tmp1,n,cCov,i,i,la);/*a*/
+
+ /*computation of sig1 (we extract the value if sig at time i)*/
+ dlevinsig(sig,i,cCov,n*cCov,sig1);
+ dlevinmul(lb,R3,n,cCov,i,tmp1,cCov,0,'d');
+ dinverma(sig1,gam,cCov);
+ dmulma(tmp1,cCov,cCov,gam,cCov,cCov,tmp2);
+ /*computation of k2*la (now it's la at time (i-1))*/
+ dlevinmul2(tmp2,la,i-1,n,cCov,tmp1);
+ ddecalage(lb,(i-1)*(n+1)*cCov*cCov,n,cCov,tmp2);
+ dlevinsub(tmp2,tmp1,n,cCov,0,i,lb);
+ }
+
+
+ free(R4);
+ free(R3);
+ free(R2);
+ free(R1);
+ free(gam);
+ free(sig1);
+ free(tmp2);
+ free(tmp1);
+}
diff --git a/src/c/signalProcessing/levin/levinUtils.c b/src/c/signalProcessing/levin/levinUtils.c
new file mode 100644
index 0000000..0048c86
--- /dev/null
+++ b/src/c/signalProcessing/levin/levinUtils.c
@@ -0,0 +1,270 @@
+/*
+ * 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 "levinUtils.h"
+#include "stdio.h"
+/* Double Functions */
+void dr1(double *in,int lines, int columns, int n, double * out){
+ int i,j;
+ for (i=0;i<n*columns;i++) {
+ for (j=0;j<columns;j++){
+ out[i+j*n*columns]=in[(n-i/columns)*columns + i%columns + j*lines];
+ }
+ }
+}
+
+void dr2(double *in,int lines, int columns, int n, double * out){
+ int i,j;
+ for (i=0;i<n*columns;i++) {
+ for (j=0;j<columns;j++){
+ out[i+j*n*columns]=in[(n-1-i/columns)*columns + i%columns + j*lines];
+ }
+ }
+}
+
+
+void dr3(double *in,int lines, int columns, int n, double * out){
+ int i,j;
+ for (i=0;i<n*columns;i++) {
+ for (j=0;j<columns;j++){
+ out[i+j*n*columns]=in[(i/columns+1)*columns + j%columns + (i%columns)*lines];
+ }
+ }
+}
+
+
+void dr4(double *in,int lines, int columns, int n, double * out){
+ int i,j;
+ for (i=0;i<n*columns;i++) {
+ for (j=0;j<columns;j++){
+ if ( (j*n*columns-1<i+j*n*columns) && (i+j*n*columns<j*n*columns+columns) )
+ out[i+j*n*columns]=in[i+j*lines];
+ else out[i+j*n*columns]=in[i + j%columns + (i%columns)*(lines-1)];
+ }
+ }
+}
+
+
+
+void dlevinmul(double* in1, double* in2, int n, int columns, int ind_boucle, double* out, int lines, int deb_out,char choix){
+ int i=0, j=0, debut=0,start_out=0;
+ double accu;
+
+ if (ind_boucle==0) debut=0;
+ else debut = (ind_boucle-1)*(n+1)*columns*columns;
+
+ start_out = deb_out*ind_boucle*columns;
+
+ switch(choix){
+ case 'u' :
+ for (i=0;i<columns*columns;i++){
+ accu=0;
+ for(j=0;j<ind_boucle*columns+columns;j++){
+ accu += in1[debut+i%columns*(n+1) + (columns*(n+1))*(j%columns)+j/columns] * in2[n*columns-((ind_boucle+1)*columns)+j+(i/columns)*n*columns];
+ }
+ out[start_out+i%columns+(i/columns)*lines] = accu;
+ }
+ break;
+ case 'd' :
+ for (i=0;i<columns*columns;i++){
+ accu=0;
+ for(j=0;j<ind_boucle*columns+columns;j++){
+ accu+=in1[debut+i%columns*(n+1) + (columns*(n+1))*(j%columns)+j/columns]*in2[j+(i/columns)*n*columns];
+ }
+ out[start_out+i%columns+(i/columns)*lines] = accu;
+ }
+ break;
+ default : break;
+ }
+}
+
+
+
+void dlevinsig(double *sig,int n, int columns, int lines, double *sig1){
+ int i=0;
+ for (i=0;i<columns*columns;i++){
+ sig1[i]=sig[n*columns + i%columns +(i/columns)*lines];
+ }
+}
+
+
+void dlevinmul2(double* in1, double *in2,int ind_boucle,int n,int columns,double* out){
+ int i=0,j=0, debut;
+ double accu;
+ debut = ind_boucle*(n+1)*columns*columns;
+ for(i=0;i<(n+1)*columns*columns;i++){
+ accu=0;
+ for (j=0;j<columns;j++){
+ accu += in1[(i/(n+1))%columns+j*columns]*in2[debut+i%(n+1)+(i/((n+1)*columns))*(n+1)*columns+j*(n+1)];
+ }
+ out[i]=accu;
+ }
+}
+
+
+void dlevinsub(double* in1, double* in2, int n, int columns, int deb_in, int ind_boucle, double* out){
+ int i=0;
+ int deb_out= ind_boucle*(n+1)*columns*columns;
+ int deb_in1;
+
+ if (deb_in==0) deb_in1=0;
+ else deb_in1=(deb_in-1)*(n+1)*columns*columns;
+
+ for (i=0;i<(n+1)*columns*columns;i++){
+ out[deb_out + i] = in1[deb_in1+i]-in2[i];
+ }
+}
+
+
+
+void ddecalage(double* in, int deb_in,int n,int columns,double *out){
+ int i=0,j=0;
+
+ for (i=0;i<columns*columns;i++){
+ for(j=n;j>0;j--) {out[i*(n+1)+j]=in[i*(n+1)+deb_in+j-1];}
+ out[i*(n+1)]=0;
+ }
+
+}
+
+
+
+
+
+/* Float Functions */
+
+void sr1(float *in,int lines, int columns, int n, float * out){
+ int i,j;
+ for (i=0;i<n*columns;i++) {
+ for (j=0;j<columns;j++){
+ out[i+j*n*columns]=in[(n-i/columns)*columns + i%columns + j*lines];
+ }
+ }
+}
+
+void sr2(float *in,int lines, int columns, int n, float * out){
+ int i,j;
+ for (i=0;i<n*columns;i++) {
+ for (j=0;j<columns;j++){
+ out[i+j*n*columns]=in[(n-1-i/columns)*columns + i%columns + j*lines];
+ }
+ }
+}
+
+
+void sr3(float *in,int lines, int columns, int n, float * out){
+ int i,j;
+ for (i=0;i<n*columns;i++) {
+ for (j=0;j<columns;j++){
+ out[i+j*n*columns]=in[(i/columns+1)*columns + j%columns + (i%columns)*lines];
+ }
+ }
+}
+
+
+void sr4(float *in,int lines, int columns, int n, float * out){
+ int i,j;
+ for (i=0;i<n*columns;i++) {
+ for (j=0;j<columns;j++){
+ if ( (j*n*columns-1<i+j*n*columns) && (i+j*n*columns<j*n*columns+columns) )
+ out[i+j*n*columns]=in[i+j*lines];
+ else out[i+j*n*columns]=in[i + j%columns + (i%columns)*(lines-1)];
+ }
+ }
+}
+
+
+
+void slevinmul(float* in1, float* in2, int n, int columns, int ind_boucle, float* out, int lines, int deb_out,char choix){
+ int i=0, j=0, debut=0,start_out=0;
+ float accu;
+
+ if (ind_boucle==0) debut=0;
+ else debut = (ind_boucle-1)*(n+1)*columns*columns;
+
+ start_out = deb_out*ind_boucle*columns;
+
+ switch(choix){
+ case 'u' :
+ for (i=0;i<columns*columns;i++){
+ accu=0;
+ for(j=0;j<ind_boucle*columns+columns;j++){
+ accu += in1[debut+i%columns*(n+1) + (columns*(n+1))*(j%columns)+j/columns] * in2[n*columns-((ind_boucle+1)*columns)+j+(i/columns)*n*columns];
+ }
+ out[start_out+i%columns+(i/columns)*lines] = accu;
+ }
+ break;
+ case 'd' :
+ for (i=0;i<columns*columns;i++){
+ accu=0;
+ for(j=0;j<ind_boucle*columns+columns;j++){
+ accu+=in1[debut+i%columns*(n+1) + (columns*(n+1))*(j%columns)+j/columns]*in2[j+(i/columns)*n*columns];
+ }
+ out[start_out+i%columns+(i/columns)*lines] = accu;
+ }
+ break;
+ default : break;
+ }
+}
+
+
+
+void slevinsig(float *sig,int n, int columns, int lines, float *sig1){
+ int i=0;
+ for (i=0;i<columns*columns;i++){
+ sig1[i]=sig[n*columns + i%columns +(i/columns)*lines];
+ }
+}
+
+
+void slevinmul2(float* in1, float *in2,int ind_boucle,int n,int columns,float* out){
+ int i=0,j=0, debut;
+ float accu;
+ debut = ind_boucle*(n+1)*columns*columns;
+ for(i=0;i<(n+1)*columns*columns;i++){
+ accu=0;
+ for (j=0;j<columns;j++){
+ accu += in1[(i/(n+1))%columns+j*columns]*in2[debut+i%(n+1)+(i/((n+1)*columns))*(n+1)*columns+j*(n+1)];
+ }
+ out[i]=accu;
+ }
+}
+
+
+void slevinsub(float* in1, float* in2, int n, int columns, int deb_in, int ind_boucle, float* out){
+ int i=0;
+ int deb_out= ind_boucle*(n+1)*columns*columns;
+ int deb_in1;
+
+ if (deb_in==0) deb_in1=0;
+ else deb_in1=(deb_in-1)*(n+1)*columns*columns;
+
+ for (i=0;i<(n+1)*columns*columns;i++){
+ out[deb_out + i] = in1[deb_in1+i]-in2[i];
+ }
+}
+
+
+void sdecalage(float* in, int deb_in,int n,int columns,float *out){
+ int i=0,j=0;
+
+ for (i=0;i<columns*columns;i++){
+ for(j=n;j>0;j--) {out[i*(n+1)+j]=in[i*(n+1)+deb_in+j-1];}
+ out[i*(n+1)]=0;
+ }
+
+}
+
diff --git a/src/c/signalProcessing/levin/levinUtils.h b/src/c/signalProcessing/levin/levinUtils.h
new file mode 100644
index 0000000..62df88f
--- /dev/null
+++ b/src/c/signalProcessing/levin/levinUtils.h
@@ -0,0 +1,71 @@
+/*
+ * 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
+ *
+ */
+
+
+
+
+
+/* creation of arrays used in levin */
+
+void dr1(double *in,int lines,int columns, int n, double * out);
+void dr2(double *in,int lines,int columns, int n, double * out);
+void dr3(double *in,int lines,int columns, int n, double * out);
+void dr4(double *in,int lines,int columns, int n, double * out);
+void sr1(float *in,int lines,int columns, int n, float * out);
+void sr2(float *in,int lines,int columns, int n, float * out);
+void sr3(float *in,int lines,int columns, int n, float * out);
+void sr4(float *in,int lines,int columns, int n, float * out);
+
+
+
+/*multiplications used in levin program, differents from the classic multiplication*/
+/*
+ in1,in2 : matrices to multiply
+ n :
+ columns : number of columns of in2
+ ind_boucle : indice of the loop
+ out : result matrix
+ lines : number of lines of the result
+ deb_out : 0 if the result start to the indice 0, 1 otherwise
+ choix : 'u' or 'd', depends of in2. We take either the k first elements of in2 ('u') or the k last ('d'),
+ k is a nomber which depends of the indice of loop, the columns ...
+ */
+void dlevinmul(double* in1, double* in2, int n, int columns, int ind_boucle, double* out, int lines, int deb_out,char choix);
+void dlevinmul2(double* in1, double *in2,int ind_boucle,int n,int columns,double* out);
+void slevinmul(float* in1, float* in2, int n, int columns, int ind_boucle, float* out, int lines, int deb_out,char choix);
+void slevinmul2(float* in1, float *in2,int ind_boucle,int n,int columns,float* out);
+
+
+/*take the values of sig wanted*/
+void dlevinsig(double *sig,int n, int columns, int lines, double *sig1);
+void slevinsig(float *sig,int n, int columns, int lines, float *sig1);
+
+/*a subtraction used in levin program, is different from the classic subtraction cause of the indices*/
+/*
+ in1,in2 : matrices to subtract
+ n :
+ columns : number of columns of in2
+ deb_in : place of the first element of in1
+ ind_boucle : indice of the loop
+ out : result matrix
+ */
+void dlevinsub(double* in1, double* in2, int n, int columns, int deb_in, int ind_boucle, double* out);
+void slevinsub(float* in1, float* in2, int n, int columns, int deb_in, int ind_boucle, float* out);
+
+
+/*used for the multiplication by z which is equal to step forward*/
+void ddecalage(double* in, int deb_in,int n,int columns,double * out);
+void sdecalage(float* in, int deb_in,int n,int columns,float * out);
+
+
+
+
diff --git a/src/c/signalProcessing/levin/slevina.c b/src/c/signalProcessing/levin/slevina.c
new file mode 100644
index 0000000..e0e30a8
--- /dev/null
+++ b/src/c/signalProcessing/levin/slevina.c
@@ -0,0 +1,185 @@
+/*
+ * 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 "levin.h"
+#include "levinUtils.h"
+#include "matrixInversion.h"
+#include "matrixMultiplication.h"
+#include "zeros.h"
+
+void slevina (int n, float* cov, int lCov, int cCov, float* la, float* sig, float* lb){
+/*
+ [la and lb]
+ In Scilab, the return value la is a list of n elements. Each element is a matrix cCov*cCov,
+ and each element of the matrix is a polynome whose degree is n, so the polynome got n+1 elements.
+ The greatest size of a element of the list is : (n+1)*cCov*cCov.
+
+ Here, la is a matrix which contain all elements of the list, its size is n*(n+1)*cCov*cCov. We take the
+ maximum size for all elements.
+ The first element of the list is the first (n+1)*cCov*cCov elements of la, namely la[0] to la[(n+1)*cCov*cCov-1].
+ The second element of the list is the elements of la between (n+1)*cCov*cCov and 2*(n+1)*cCov*cCov,namely la[(n+1)*cCov*cCov]
+ to la[2*(n+1)*cCov*cCov-1],...
+
+ Enter now in a element of the list. Take the first for example.
+ This is, like said before, a cCov*cCov matrix. In la, it contains (n+1)*cCov*cCov. Each element of the matrix contains (n+1)
+ elements. As it's stocked by columns, if we represent a matrix like [a c], for example, the elements 0 to n of la represent
+ [b d]
+ a, the elements (n+1) to 2(n+1)-1 represent b,...
+
+ To finish, look at the elements of the matrix, the polynomes. The coefficients of the polynomes are stocked in increasing order.
+
+ For example, if la in Scilab is : list( [3+2x 5-2x ])
+ ( [-5+x -2+4x])
+ ([3+x-x^2 -1+2x ])
+ ([1+6x+3x^2 -2x-x^2 ])
+ the result in dlevin will be :
+ -la is a table of 2*3*2*2 elements(n=2,cCov=2);
+ -la[]={3,2,0, -5,1,0, 5,-2,0, -2,4,0, 3,1,-1, 1,6,3 -1,2,0, 0,-2,-1}.
+
+ It's the same for lb.
+
+ [sig]
+ In Scilab, the return value sig is a list of n elements. Each element is a matrix cCov*cCov,
+ and each element of the matrix is a scalar, so 1 element.
+ The greatest size of a element of the list is : cCov*cCov.
+
+ Let see an example so know how it's stocked.
+ In Scilab, if sig is : list( [1 3])
+ ( [2 4])
+ ( [5 7])
+ ( [6 8])
+ the result in dlevin will be :
+ -sig={1,2, 5,6, 3,4, 7,8}.
+ It's as if we put the matrix the ones under the others and we take the first column, the second,...
+
+
+ >>>CAREFUL<<<
+ la/lb and sig are stored differently
+
+*/
+
+
+ int i=0;
+
+
+/*version ISO C99
+ double tmp1[n*cCov*cCov], tmp2[n*cCov*cCov];
+ double sig1[cCov], gam[cCov];
+ double R1[n*cCov],R2[n*cCov],R3[n*cCov],R4[n*cCov];
+*/
+/*version pas ISO C99 */
+ float *tmp1, *tmp2;
+ float *sig1, *gam;
+ float *R1,*R2,*R3,*R4;
+
+ /* FIXME : malloc here */
+
+ tmp1=(float*)malloc((unsigned int)((n+1)*cCov*cCov)*sizeof(float));
+ tmp2=(float*)malloc((unsigned int)((n+1)*cCov*cCov)*sizeof(float));
+ sig1=(float*)malloc((unsigned int)(cCov*cCov)*sizeof(float));
+ gam=(float*)malloc((unsigned int)(cCov*cCov)*sizeof(float));
+ R1=(float*)malloc((unsigned int)(n*cCov*cCov)*sizeof(float));
+ R2=(float*)malloc((unsigned int)(n*cCov*cCov)*sizeof(float));
+ R3=(float*)malloc((unsigned int)(n*cCov*cCov)*sizeof(float));
+ R4=(float*)malloc((unsigned int)(n*cCov*cCov)*sizeof(float));
+
+
+
+ /*
+ * Initializations
+ * */
+ szerosa(sig,n*cCov*cCov,1);
+ szerosa(la,n*(n+1)*cCov*cCov,1);
+ szerosa(lb,n*(n+1)*cCov*cCov,1);
+
+ /*equal to eye(la) and eye(lb)
+ but we can't use eye cause to the indexation*/
+ for (i=0;i<cCov;i++){
+ la[i*((n+1)*(cCov+1))]=1;
+ lb[i*((n+1)*(cCov+1))]=1;
+ }
+
+ sr1(cov,lCov,cCov,n,R1);
+ sr2(cov,lCov,cCov,n,R2);
+ sr3(cov,lCov,cCov,n,R3);
+ sr4(cov,lCov,cCov,n,R4);
+
+/* case i=0 */
+
+
+ /*computation of sig */
+ slevinmul(la,R4,n,cCov,0,sig,n*cCov,0,'d');
+ /*computation of gam1 */
+ slevinmul(lb,R2,n,cCov,0,gam,cCov,0,'u');
+ /*computation of c1*r1 */
+ slevinmul(la,R1,n,cCov,0,tmp1,cCov,0,'u');
+ /*computation of inv(gam1) */
+ sinverma(gam,sig1,cCov);
+ /*computation of k1 = c1*r1*inv(gam1) */
+ smulma(tmp1,cCov,cCov,sig1,cCov,cCov,tmp2);
+ /*computation of k1*lb */
+ slevinmul2(tmp2,lb,0,n,cCov,tmp1);
+ /*computation of k1*lb*z */
+ sdecalage(tmp1,0,n,cCov,tmp1);
+ /*computation of la */
+ slevinsub(la,tmp1,n,cCov,0,0,la);
+
+ /*computation of sig1 (we extract the value if sig at time 0)*/
+ slevinsig(sig,0,cCov,n*cCov,sig1);
+ /*computation of c2*r3 */
+ slevinmul(lb,R3,n,cCov,0,tmp1,cCov,0,'d');
+ /*computation of inv(sig1)*/
+ sinverma(sig1,gam,cCov);
+ /*computation of k2 = c2*r3*inv(sig1) */
+ smulma(tmp1,cCov,cCov,gam,cCov,cCov,tmp2);
+ /*computation of k2*la (here it's lb cause la have been modified
+ and the precedent values hadn't been saved)*/
+ slevinmul2(tmp2,lb,0,n,cCov,tmp1);
+ /*computation of lb*z */
+ sdecalage(lb,0,n,cCov,lb);
+ /*computation of lb */
+ slevinsub(lb,tmp1,n,cCov,0,0,lb);
+
+
+ for (i=1;i<n;i++){
+ slevinmul(la,R4,n,cCov,i,sig,n*cCov,1,'d');
+ slevinmul(lb,R2,n,cCov,i,gam,cCov,0,'u');
+ slevinmul(la,R1,n,cCov,i,tmp1,cCov,0,'u');
+ sinverma(gam,sig1,cCov);
+ smulma(tmp1,cCov,cCov,sig1,cCov,cCov,tmp2);
+
+ slevinmul2(tmp2,lb,i-1,n,cCov,tmp1);
+ sdecalage(tmp1,0,n,cCov,tmp1);
+ slevinsub(la,tmp1,n,cCov,i,i,la);/*a*/
+
+ /*computation of sig1 (we extract the value if sig at time i)*/
+ slevinsig(sig,i,cCov,n*cCov,sig1);
+ slevinmul(lb,R3,n,cCov,i,tmp1,cCov,0,'d');
+ sinverma(sig1,gam,cCov);
+ smulma(tmp1,cCov,cCov,gam,cCov,cCov,tmp2);
+ /*computation of k2*la (now it's la at time (i-1))*/
+ slevinmul2(tmp2,la,i-1,n,cCov,tmp1);
+ sdecalage(lb,(i-1)*(n+1)*cCov*cCov,n,cCov,tmp2);
+ slevinsub(tmp2,tmp1,n,cCov,0,i,lb);
+ }
+
+
+ free(R4);
+ free(R3);
+ free(R2);
+ free(R1);
+ free(gam);
+ free(sig1);
+ free(tmp2);
+ free(tmp1);
+}
diff --git a/src/c/signalProcessing/levin/testDoubleLevin.c b/src/c/signalProcessing/levin/testDoubleLevin.c
new file mode 100644
index 0000000..5cbd66c
--- /dev/null
+++ b/src/c/signalProcessing/levin/testDoubleLevin.c
@@ -0,0 +1,103 @@
+/*
+ * 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 <math.h>
+#include <stdio.h>
+#include <assert.h>
+#include "levin.h"
+
+
+
+static void dlevinaTest(void) {
+
+ int i=0;
+
+ double in[20]={0.9932627780362963676453,0.8074779896996915340424,0.8554796632379293441773,
+ 0.5031460602767765522003,0.0963323051109910011292,0.7058098311536014080048,0.8630577065050601959229,
+ 0.0076185003854334354401,0.8048951094970107078552,0.5963762304745614528656,0.1176836211234331130981,
+ 0.8010095250792801380158,0.5132340090349316596985,0.2010910022072494029999,0.7860820889472961425781,
+ 0.7865035482682287693024,0.6951530007645487785339,0.4248132123611867427826,0.3446625452488660812378,
+ 0.6497785751707851886749};
+
+ double result_la[48]={1,-0.3865652298877474413175,0,0,
+ 0,- 0.3434956227371184778185,0,0,
+ 0,- 0.5839401384584462784133,0,0,
+ 1, - 0.2005808775714553182645,0,0,
+ 1, - 0.9800896173744618744550, 1.690821697485581420750,0,
+ 0,- 0.0829753946826485844213, 0.1706850739778944525682,0,
+ 0,- 1.5024216979529190219012, - 0.2246231721723708774086,0,
+ 1, - 0.1137930279260921523354, - 0.9252347371003220022345,0,
+ 1, 0.9890664402902992202726, 0.5787159455904740124055,1.2930051366411721147642,
+ 0,- 0.8505434486601569643582,0.6053315910573954239382, - 0.5028225952598519565839,
+ 0,2.1236994816779066752588, - 2.0487578989503822946006, - 3.9701563399198689374714,
+ 1, - 1.4716550983021570164766, - 0.2144135496153387610008, 1.4891952441184541644503};
+
+ double result_sig[12]={0.9932627780362963676453, 0.8074779896996915340424,0.3628661470549920387008,0.4106795421050958294629,
+ - 0.6299693698364057237171,- 0.0327761932052800242232,0.1176836211234331130981,0.8010095250792801380158,
+ - 0.1942402590062223821654, 0.5878460460823274891240, 0.3391635613203383137204,0.1291488276492920306282};
+
+ double result_lb[48]={- 0.3981923483861428136876,1,0,0,
+ - 0.3550295998674473652024,0,0,0,
+ - 0.5696378489005990974903,0,0,0,
+ - 0.1988863157065166586968,1,0,0,
+ 1.62419596196504145702, - 0.9819754657045941526050,1,0,
+ 0.0329804805798983302623, - 0.0396945499933941681192,0,0,
+ - 0.1283118770193089619447, - 1.492334154918740996010,0,0,
+ - 0.9551334433810730883963, - 0.0265634378315470209841,1,0,
+ 1.1913835764722526810999,0.0301096362936850159286, 1.909619275538441574014,1,
+ 0.4767865147665533709365 ,- 0.2016469880890300325760,0.2878592385656049135179,0,
+ 5.1391578635011887499218, - 2.5030727471739586675881, - 6.5148738878935787965929,0,
+ - 2.8040366068494293472213 ,- 1.3523880325486907771904, 2.4607313355305917568217,1};
+
+ double la[48],lb[48],sig[12];
+
+ dlevina(3,in,10,2,la,sig,lb);
+
+ /* FIXME : assert à 10^-13 */
+ /* FIXME : sig est rangé différemment qu'à l'habitude */
+
+ for (i=0;i<48;i++){
+ if (la[i]!=0)
+ assert( (fabs(la[i]-result_la[i]) / fabs(la[i]) ) <3e-15);
+ else
+ assert( fabs(la[i]-result_la[i]) == 0);
+ }
+
+ for (i=0;i<12;i++){
+ if (sig[i]!=0)
+ assert( (fabs(sig[i]-result_sig[i]) / fabs(sig[i]) ) <3e-15);
+ else
+ assert( fabs(sig[i]-result_sig[i]) == 0);
+ }
+
+
+ for (i=0;i<48;i++){
+ if (lb[i]!=0)
+ assert( (fabs(lb[i]-result_lb[i]) / fabs(lb[i]) ) <3e-13);
+ else
+ assert( fabs(lb[i]-result_lb[i]) == 0);
+ }
+
+}
+
+
+
+static int levinTest(void) {
+ printf("\n>>>> Levin Tests\n");
+ dlevinaTest();
+ return 0;
+}
+
+int main(void) {
+ assert( levinTest()== 0);
+ return 0;
+}
diff --git a/src/c/signalProcessing/levin/testFloatLevin.c b/src/c/signalProcessing/levin/testFloatLevin.c
new file mode 100644
index 0000000..e692f3b
--- /dev/null
+++ b/src/c/signalProcessing/levin/testFloatLevin.c
@@ -0,0 +1,103 @@
+/*
+ * 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 <math.h>
+#include <stdio.h>
+#include <assert.h>
+#include "levin.h"
+
+
+
+static void dlevinaTest(void) {
+
+ int i=0;
+
+ float in[20]={0.9932627780362963676453f,0.8074779896996915340424f,0.8554796632379293441773f,
+ 0.5031460602767765522003f,0.0963323051109910011292f,0.7058098311536014080048f,0.8630577065050601959229f,
+ 0.0076185003854334354401f,0.8048951094970107078552f,0.5963762304745614528656f,0.1176836211234331130981f,
+ 0.8010095250792801380158f,0.5132340090349316596985f,0.2010910022072494029999f,0.7860820889472961425781f,
+ 0.7865035482682287693024f,0.6951530007645487785339f,0.4248132123611867427826f,0.3446625452488660812378f,
+ 0.6497785751707851886749f};
+
+ float result_la[48]={1.0f,-0.3865652298877474413175f,0.0f,0.0f,
+ 0.0f,- 0.3434956227371184778185f,0.0f,0.0f,
+ 0.0f,- 0.5839401384584462784133f,0.0f,0.0f,
+ 1.0f, - 0.2005808775714553182645f,0.0f,0.0f,
+ 1.0f, - 0.9800896173744618744550f, 1.690821697485581420750f,0.0f,
+ 0.0f,- 0.0829753946826485844213f, 0.1706850739778944525682f,0.0f,
+ 0.0f,- 1.5024216979529190219012f, - 0.2246231721723708774086f,0.0f,
+ 1.0f, - 0.1137930279260921523354f, - 0.9252347371003220022345f,0.0f,
+ 1.0f, 0.9890664402902992202726f, 0.5787159455904740124055f,1.2930051366411721147642f,
+ 0.0f,- 0.8505434486601569643582f,0.6053315910573954239382f, - 0.5028225952598519565839f,
+ 0.0f,2.1236994816779066752588f, - 2.0487578989503822946006f, - 3.9701563399198689374714f,
+ 1.0f, - 1.4716550983021570164766f, - 0.2144135496153387610008f, 1.4891952441184541644503f};
+
+ float result_sig[12]={0.9932627780362963676453f, 0.8074779896996915340424f,0.3628661470549920387008f,0.4106795421050958294629f,
+ - 0.6299693698364057237171f,- 0.0327761932052800242232f,0.1176836211234331130981f,0.8010095250792801380158f,
+ - 0.1942402590062223821654f, 0.5878460460823274891240f, 0.3391635613203383137204f,0.1291488276492920306282f};
+
+ float result_lb[48]={- 0.3981923483861428136876f,1.0f,0.0f,0.0f,
+ - 0.3550295998674473652024f,0.0f,0.0f,0.0f,
+ - 0.5696378489005990974903f,0.0f,0.0f,0.0f,
+ - 0.1988863157065166586968f,1.0f,0.0f,0.0f,
+ 1.62419596196504145702f, - 0.9819754657045941526050f,1.0f,0.0f,
+ 0.0329804805798983302623f, - 0.0396945499933941681192f,0.0f,0.0f,
+ - 0.1283118770193089619447f, - 1.492334154918740996010f,0.0f,0.0f,
+ - 0.9551334433810730883963f, - 0.0265634378315470209841f,1.0f,0.0f,
+ 1.1913835764722526810999f,0.0301096362936850159286f, 1.909619275538441574014f,1.0f,
+ 0.4767865147665533709365f ,- 0.2016469880890300325760f,0.2878592385656049135179f,0.0f,
+ 5.1391578635011887499218f, - 2.5030727471739586675881f, - 6.5148738878935787965929f,0.0f,
+ - 2.8040366068494293472213f ,- 1.3523880325486907771904f, 2.4607313355305917568217f,1.0f};
+
+ float la[48],lb[48],sig[12];
+
+ slevina(3,in,10,2,la,sig,lb);
+
+ /* FIXME : assert à 10^-5 */
+ /* FIXME : sig est rangé différemment qu'à l'habitude */
+
+ for (i=0;i<48;i++){
+ if (la[i]!=0)
+ assert( (fabs(la[i]-result_la[i]) / fabs(la[i]) ) <3e-6);
+ else
+ assert( fabs(la[i]-result_la[i]) == 0);
+ }
+
+ for (i=0;i<12;i++){
+ if (sig[i]!=0)
+ assert( (fabs(sig[i]-result_sig[i]) / fabs(sig[i]) ) <3e-6);
+ else
+ assert( fabs(sig[i]-result_sig[i]) == 0);
+ }
+
+
+ for (i=0;i<48;i++){
+ if (lb[i]!=0)
+ assert( (fabs(lb[i]-result_lb[i]) / fabs(lb[i]) ) <3e-5);
+ else
+ assert( fabs(lb[i]-result_lb[i]) == 0);
+ }
+
+}
+
+
+
+static int levinTest(void) {
+ printf("\n>>>> Levin Tests\n");
+ dlevinaTest();
+ return 0;
+}
+
+int main(void) {
+ assert( levinTest()== 0);
+ return 0;
+}
diff --git a/src/c/signalProcessing/levin/test_DoubleLevin/testDoubleLevin.vcxproj b/src/c/signalProcessing/levin/test_DoubleLevin/testDoubleLevin.vcxproj
new file mode 100644
index 0000000..4c0136f
--- /dev/null
+++ b/src/c/signalProcessing/levin/test_DoubleLevin/testDoubleLevin.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{CAA51066-E3AC-4FE7-A330-D946A7AD6026}</ProjectGuid>
+ <RootNamespace>testDoubleLevin</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleLevin.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/levin/test_DoubleLevin/testDoubleLevin.vcxproj.filters b/src/c/signalProcessing/levin/test_DoubleLevin/testDoubleLevin.vcxproj.filters
new file mode 100644
index 0000000..41c38c9
--- /dev/null
+++ b/src/c/signalProcessing/levin/test_DoubleLevin/testDoubleLevin.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleLevin.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/levin/test_FloatLevin/testFloatLevin.vcxproj b/src/c/signalProcessing/levin/test_FloatLevin/testFloatLevin.vcxproj
new file mode 100644
index 0000000..ca18bbc
--- /dev/null
+++ b/src/c/signalProcessing/levin/test_FloatLevin/testFloatLevin.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{FCD4F6F6-B226-4CC8-A9BD-432C36DEF855}</ProjectGuid>
+ <RootNamespace>testFloatLevin</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatLevin.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/levin/test_FloatLevin/testFloatLevin.vcxproj.filters b/src/c/signalProcessing/levin/test_FloatLevin/testFloatLevin.vcxproj.filters
new file mode 100644
index 0000000..15bf5e2
--- /dev/null
+++ b/src/c/signalProcessing/levin/test_FloatLevin/testFloatLevin.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatLevin.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/lpc2cep/Makefile.am b/src/c/signalProcessing/lpc2cep/Makefile.am
new file mode 100644
index 0000000..c5c8dd1
--- /dev/null
+++ b/src/c/signalProcessing/lpc2cep/Makefile.am
@@ -0,0 +1,89 @@
+##
+## 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
+##
+##
+
+
+
+
+libLpc2cep_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/elementaryFunctions/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+
+instdir = $(top_builddir)/lib
+
+
+pkglib_LTLIBRARIES = libLpc2cep.la
+
+HEAD = ../includes/lpc2cep.h
+
+
+libLpc2cep_la_SOURCES = $(HEAD) \
+ slpc2cepa.c \
+ dlpc2cepa.c \
+ clpc2cepa.c \
+ zlpc2cepa.c
+
+
+###############
+#### Check ####
+###############
+check_PROGRAMS = testDoubleLpc2cep testFloatLpc2cep
+
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/c/elementaryFunctions/log/libLog.la \
+ $(top_builddir)/src/c/elementaryFunctions/sqrt/libSqrt.la \
+ $(top_builddir)/src/c/elementaryFunctions/log1p/libLog1p.la \
+ $(top_builddir)/src/c/elementaryFunctions/lnp1m1/libLnp1m1.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/abs/libAbs.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/conj/libConj.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/pythag/libPythag.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/sign/libSign.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/matrixOperations/multiplication/libMatrixMultiplication.la \
+ $(top_builddir)/src/c/matrixOperations/transpose/libMatrixTranspose.la \
+ $(top_builddir)/src/c/matrixOperations/inversion/libMatrixInversion.la \
+ $(top_builddir)/src/c/matrixOperations/logm/libLogm.la\
+ $(top_builddir)/src/c/matrixOperations/spec2/libSpec2.la\
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la\
+ $(top_builddir)/src/c/signalProcessing/fft/libFft.la \
+ $(top_builddir)/src/c/signalProcessing/ifft/libIfft.la \
+ $(top_builddir)/src/c/signalProcessing/lpc2cep/libLpc2cep.la \
+ @LIBMATH@
+
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/elementaryFunctions/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+
+testDoubleLpc2cep_SOURCES = testDoubleLpc2cep.c
+testDoubleLpc2cep_LDADD = $(check_LDADD)
+testDoubleLpc2cep_CFLAGS = $(check_INCLUDES)
+
+testFloatLpc2cep_SOURCES = testFloatLpc2cep.c
+testFloatLpc2cep_LDADD = $(check_LDADD)
+testFloatLpc2cep_CFLAGS = $(check_INCLUDES)
+
+
+TESTS = testDoubleLpc2cep testFloatLpc2cep
diff --git a/src/c/signalProcessing/lpc2cep/Makefile.in b/src/c/signalProcessing/lpc2cep/Makefile.in
new file mode 100644
index 0000000..da5771e
--- /dev/null
+++ b/src/c/signalProcessing/lpc2cep/Makefile.in
@@ -0,0 +1,796 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+check_PROGRAMS = testDoubleLpc2cep$(EXEEXT) testFloatLpc2cep$(EXEEXT)
+TESTS = testDoubleLpc2cep$(EXEEXT) testFloatLpc2cep$(EXEEXT)
+subdir = src/c/signalProcessing/lpc2cep
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/includes/machine.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkglibdir)"
+LTLIBRARIES = $(pkglib_LTLIBRARIES)
+libLpc2cep_la_LIBADD =
+am__objects_1 =
+am_libLpc2cep_la_OBJECTS = $(am__objects_1) libLpc2cep_la-slpc2cepa.lo \
+ libLpc2cep_la-dlpc2cepa.lo libLpc2cep_la-clpc2cepa.lo \
+ libLpc2cep_la-zlpc2cepa.lo
+libLpc2cep_la_OBJECTS = $(am_libLpc2cep_la_OBJECTS)
+libLpc2cep_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libLpc2cep_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testDoubleLpc2cep_OBJECTS = \
+ testDoubleLpc2cep-testDoubleLpc2cep.$(OBJEXT)
+testDoubleLpc2cep_OBJECTS = $(am_testDoubleLpc2cep_OBJECTS)
+am__DEPENDENCIES_1 = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/c/elementaryFunctions/log/libLog.la \
+ $(top_builddir)/src/c/elementaryFunctions/sqrt/libSqrt.la \
+ $(top_builddir)/src/c/elementaryFunctions/log1p/libLog1p.la \
+ $(top_builddir)/src/c/elementaryFunctions/lnp1m1/libLnp1m1.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/abs/libAbs.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/conj/libConj.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/pythag/libPythag.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/sign/libSign.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/matrixOperations/multiplication/libMatrixMultiplication.la \
+ $(top_builddir)/src/c/matrixOperations/transpose/libMatrixTranspose.la \
+ $(top_builddir)/src/c/matrixOperations/inversion/libMatrixInversion.la \
+ $(top_builddir)/src/c/matrixOperations/logm/libLogm.la \
+ $(top_builddir)/src/c/matrixOperations/spec2/libSpec2.la \
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la \
+ $(top_builddir)/src/c/signalProcessing/fft/libFft.la \
+ $(top_builddir)/src/c/signalProcessing/ifft/libIfft.la \
+ $(top_builddir)/src/c/signalProcessing/lpc2cep/libLpc2cep.la
+testDoubleLpc2cep_DEPENDENCIES = $(am__DEPENDENCIES_1)
+testDoubleLpc2cep_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(testDoubleLpc2cep_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+ -o $@
+am_testFloatLpc2cep_OBJECTS = \
+ testFloatLpc2cep-testFloatLpc2cep.$(OBJEXT)
+testFloatLpc2cep_OBJECTS = $(am_testFloatLpc2cep_OBJECTS)
+testFloatLpc2cep_DEPENDENCIES = $(am__DEPENDENCIES_1)
+testFloatLpc2cep_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testFloatLpc2cep_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libLpc2cep_la_SOURCES) $(testDoubleLpc2cep_SOURCES) \
+ $(testFloatLpc2cep_SOURCES)
+DIST_SOURCES = $(libLpc2cep_la_SOURCES) $(testDoubleLpc2cep_SOURCES) \
+ $(testFloatLpc2cep_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBMATH = @LIBMATH@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libLpc2cep_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/elementaryFunctions/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+instdir = $(top_builddir)/lib
+pkglib_LTLIBRARIES = libLpc2cep.la
+HEAD = ../includes/lpc2cep.h
+libLpc2cep_la_SOURCES = $(HEAD) \
+ slpc2cepa.c \
+ dlpc2cepa.c \
+ clpc2cepa.c \
+ zlpc2cepa.c
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/fortran/blas/libsciblas.la \
+ $(top_builddir)/src/c/elementaryFunctions/log/libLog.la \
+ $(top_builddir)/src/c/elementaryFunctions/sqrt/libSqrt.la \
+ $(top_builddir)/src/c/elementaryFunctions/log1p/libLog1p.la \
+ $(top_builddir)/src/c/elementaryFunctions/lnp1m1/libLnp1m1.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/abs/libAbs.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/conj/libConj.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/pythag/libPythag.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/sign/libSign.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ $(top_builddir)/src/c/matrixOperations/multiplication/libMatrixMultiplication.la \
+ $(top_builddir)/src/c/matrixOperations/transpose/libMatrixTranspose.la \
+ $(top_builddir)/src/c/matrixOperations/inversion/libMatrixInversion.la \
+ $(top_builddir)/src/c/matrixOperations/logm/libLogm.la\
+ $(top_builddir)/src/c/matrixOperations/spec2/libSpec2.la\
+ $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la\
+ $(top_builddir)/src/c/signalProcessing/fft/libFft.la \
+ $(top_builddir)/src/c/signalProcessing/ifft/libIfft.la \
+ $(top_builddir)/src/c/signalProcessing/lpc2cep/libLpc2cep.la \
+ @LIBMATH@
+
+check_INCLUDES = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/elementaryFunctions/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/matrixOperations/includes \
+ -I $(top_builddir)/src/c/operations/includes \
+ -I $(top_builddir)/src/c/signalProcessing/includes
+
+testDoubleLpc2cep_SOURCES = testDoubleLpc2cep.c
+testDoubleLpc2cep_LDADD = $(check_LDADD)
+testDoubleLpc2cep_CFLAGS = $(check_INCLUDES)
+testFloatLpc2cep_SOURCES = testFloatLpc2cep.c
+testFloatLpc2cep_LDADD = $(check_LDADD)
+testFloatLpc2cep_CFLAGS = $(check_INCLUDES)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/c/signalProcessing/lpc2cep/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/c/signalProcessing/lpc2cep/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ }
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libLpc2cep.la: $(libLpc2cep_la_OBJECTS) $(libLpc2cep_la_DEPENDENCIES)
+ $(libLpc2cep_la_LINK) -rpath $(pkglibdir) $(libLpc2cep_la_OBJECTS) $(libLpc2cep_la_LIBADD) $(LIBS)
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+testDoubleLpc2cep$(EXEEXT): $(testDoubleLpc2cep_OBJECTS) $(testDoubleLpc2cep_DEPENDENCIES)
+ @rm -f testDoubleLpc2cep$(EXEEXT)
+ $(testDoubleLpc2cep_LINK) $(testDoubleLpc2cep_OBJECTS) $(testDoubleLpc2cep_LDADD) $(LIBS)
+testFloatLpc2cep$(EXEEXT): $(testFloatLpc2cep_OBJECTS) $(testFloatLpc2cep_DEPENDENCIES)
+ @rm -f testFloatLpc2cep$(EXEEXT)
+ $(testFloatLpc2cep_LINK) $(testFloatLpc2cep_OBJECTS) $(testFloatLpc2cep_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLpc2cep_la-clpc2cepa.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLpc2cep_la-dlpc2cepa.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLpc2cep_la-slpc2cepa.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLpc2cep_la-zlpc2cepa.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDoubleLpc2cep-testDoubleLpc2cep.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFloatLpc2cep-testFloatLpc2cep.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+libLpc2cep_la-slpc2cepa.lo: slpc2cepa.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLpc2cep_la_CFLAGS) $(CFLAGS) -MT libLpc2cep_la-slpc2cepa.lo -MD -MP -MF $(DEPDIR)/libLpc2cep_la-slpc2cepa.Tpo -c -o libLpc2cep_la-slpc2cepa.lo `test -f 'slpc2cepa.c' || echo '$(srcdir)/'`slpc2cepa.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libLpc2cep_la-slpc2cepa.Tpo $(DEPDIR)/libLpc2cep_la-slpc2cepa.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='slpc2cepa.c' object='libLpc2cep_la-slpc2cepa.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLpc2cep_la_CFLAGS) $(CFLAGS) -c -o libLpc2cep_la-slpc2cepa.lo `test -f 'slpc2cepa.c' || echo '$(srcdir)/'`slpc2cepa.c
+
+libLpc2cep_la-dlpc2cepa.lo: dlpc2cepa.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLpc2cep_la_CFLAGS) $(CFLAGS) -MT libLpc2cep_la-dlpc2cepa.lo -MD -MP -MF $(DEPDIR)/libLpc2cep_la-dlpc2cepa.Tpo -c -o libLpc2cep_la-dlpc2cepa.lo `test -f 'dlpc2cepa.c' || echo '$(srcdir)/'`dlpc2cepa.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libLpc2cep_la-dlpc2cepa.Tpo $(DEPDIR)/libLpc2cep_la-dlpc2cepa.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dlpc2cepa.c' object='libLpc2cep_la-dlpc2cepa.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLpc2cep_la_CFLAGS) $(CFLAGS) -c -o libLpc2cep_la-dlpc2cepa.lo `test -f 'dlpc2cepa.c' || echo '$(srcdir)/'`dlpc2cepa.c
+
+libLpc2cep_la-clpc2cepa.lo: clpc2cepa.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLpc2cep_la_CFLAGS) $(CFLAGS) -MT libLpc2cep_la-clpc2cepa.lo -MD -MP -MF $(DEPDIR)/libLpc2cep_la-clpc2cepa.Tpo -c -o libLpc2cep_la-clpc2cepa.lo `test -f 'clpc2cepa.c' || echo '$(srcdir)/'`clpc2cepa.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libLpc2cep_la-clpc2cepa.Tpo $(DEPDIR)/libLpc2cep_la-clpc2cepa.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='clpc2cepa.c' object='libLpc2cep_la-clpc2cepa.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLpc2cep_la_CFLAGS) $(CFLAGS) -c -o libLpc2cep_la-clpc2cepa.lo `test -f 'clpc2cepa.c' || echo '$(srcdir)/'`clpc2cepa.c
+
+libLpc2cep_la-zlpc2cepa.lo: zlpc2cepa.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLpc2cep_la_CFLAGS) $(CFLAGS) -MT libLpc2cep_la-zlpc2cepa.lo -MD -MP -MF $(DEPDIR)/libLpc2cep_la-zlpc2cepa.Tpo -c -o libLpc2cep_la-zlpc2cepa.lo `test -f 'zlpc2cepa.c' || echo '$(srcdir)/'`zlpc2cepa.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libLpc2cep_la-zlpc2cepa.Tpo $(DEPDIR)/libLpc2cep_la-zlpc2cepa.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zlpc2cepa.c' object='libLpc2cep_la-zlpc2cepa.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libLpc2cep_la_CFLAGS) $(CFLAGS) -c -o libLpc2cep_la-zlpc2cepa.lo `test -f 'zlpc2cepa.c' || echo '$(srcdir)/'`zlpc2cepa.c
+
+testDoubleLpc2cep-testDoubleLpc2cep.o: testDoubleLpc2cep.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleLpc2cep_CFLAGS) $(CFLAGS) -MT testDoubleLpc2cep-testDoubleLpc2cep.o -MD -MP -MF $(DEPDIR)/testDoubleLpc2cep-testDoubleLpc2cep.Tpo -c -o testDoubleLpc2cep-testDoubleLpc2cep.o `test -f 'testDoubleLpc2cep.c' || echo '$(srcdir)/'`testDoubleLpc2cep.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleLpc2cep-testDoubleLpc2cep.Tpo $(DEPDIR)/testDoubleLpc2cep-testDoubleLpc2cep.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleLpc2cep.c' object='testDoubleLpc2cep-testDoubleLpc2cep.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleLpc2cep_CFLAGS) $(CFLAGS) -c -o testDoubleLpc2cep-testDoubleLpc2cep.o `test -f 'testDoubleLpc2cep.c' || echo '$(srcdir)/'`testDoubleLpc2cep.c
+
+testDoubleLpc2cep-testDoubleLpc2cep.obj: testDoubleLpc2cep.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleLpc2cep_CFLAGS) $(CFLAGS) -MT testDoubleLpc2cep-testDoubleLpc2cep.obj -MD -MP -MF $(DEPDIR)/testDoubleLpc2cep-testDoubleLpc2cep.Tpo -c -o testDoubleLpc2cep-testDoubleLpc2cep.obj `if test -f 'testDoubleLpc2cep.c'; then $(CYGPATH_W) 'testDoubleLpc2cep.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleLpc2cep.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleLpc2cep-testDoubleLpc2cep.Tpo $(DEPDIR)/testDoubleLpc2cep-testDoubleLpc2cep.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleLpc2cep.c' object='testDoubleLpc2cep-testDoubleLpc2cep.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleLpc2cep_CFLAGS) $(CFLAGS) -c -o testDoubleLpc2cep-testDoubleLpc2cep.obj `if test -f 'testDoubleLpc2cep.c'; then $(CYGPATH_W) 'testDoubleLpc2cep.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleLpc2cep.c'; fi`
+
+testFloatLpc2cep-testFloatLpc2cep.o: testFloatLpc2cep.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatLpc2cep_CFLAGS) $(CFLAGS) -MT testFloatLpc2cep-testFloatLpc2cep.o -MD -MP -MF $(DEPDIR)/testFloatLpc2cep-testFloatLpc2cep.Tpo -c -o testFloatLpc2cep-testFloatLpc2cep.o `test -f 'testFloatLpc2cep.c' || echo '$(srcdir)/'`testFloatLpc2cep.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatLpc2cep-testFloatLpc2cep.Tpo $(DEPDIR)/testFloatLpc2cep-testFloatLpc2cep.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatLpc2cep.c' object='testFloatLpc2cep-testFloatLpc2cep.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatLpc2cep_CFLAGS) $(CFLAGS) -c -o testFloatLpc2cep-testFloatLpc2cep.o `test -f 'testFloatLpc2cep.c' || echo '$(srcdir)/'`testFloatLpc2cep.c
+
+testFloatLpc2cep-testFloatLpc2cep.obj: testFloatLpc2cep.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatLpc2cep_CFLAGS) $(CFLAGS) -MT testFloatLpc2cep-testFloatLpc2cep.obj -MD -MP -MF $(DEPDIR)/testFloatLpc2cep-testFloatLpc2cep.Tpo -c -o testFloatLpc2cep-testFloatLpc2cep.obj `if test -f 'testFloatLpc2cep.c'; then $(CYGPATH_W) 'testFloatLpc2cep.c'; else $(CYGPATH_W) '$(srcdir)/testFloatLpc2cep.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatLpc2cep-testFloatLpc2cep.Tpo $(DEPDIR)/testFloatLpc2cep-testFloatLpc2cep.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatLpc2cep.c' object='testFloatLpc2cep-testFloatLpc2cep.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatLpc2cep_CFLAGS) $(CFLAGS) -c -o testFloatLpc2cep-testFloatLpc2cep.obj `if test -f 'testFloatLpc2cep.c'; then $(CYGPATH_W) 'testFloatLpc2cep.c'; else $(CYGPATH_W) '$(srcdir)/testFloatLpc2cep.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(pkglibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pkglibLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pkglibLTLIBRARIES
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-pkglibLTLIBRARIES ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-pkglibLTLIBRARIES install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-pkglibLTLIBRARIES
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/c/signalProcessing/lpc2cep/clpc2cepa.c b/src/c/signalProcessing/lpc2cep/clpc2cepa.c
new file mode 100644
index 0000000..34b04c0
--- /dev/null
+++ b/src/c/signalProcessing/lpc2cep/clpc2cepa.c
@@ -0,0 +1,32 @@
+/*
+ * 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 "lpc2cep.h"
+#include "fft.h"
+#include "ifft.h"
+#include "logm.h"
+
+void clpc2cepa(floatComplex *in, int size, floatComplex*out){
+ int i;
+
+ for (i=0;i<size*size;i++)
+ out[i]=in[i];
+
+ cfftma(out,size,size,out);
+ clogma(out,size,out);
+ cifftma(out,size,size,out);
+
+}
+
+
+
diff --git a/src/c/signalProcessing/lpc2cep/dlpc2cepa.c b/src/c/signalProcessing/lpc2cep/dlpc2cepa.c
new file mode 100644
index 0000000..f79b258
--- /dev/null
+++ b/src/c/signalProcessing/lpc2cep/dlpc2cepa.c
@@ -0,0 +1,38 @@
+/*
+ * 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 "lpc2cep.h"
+#include "fft.h"
+#include "logm.h"
+#include "ifft.h"
+
+void dlpc2cepa(double* in, int size, double* out){
+ int i;
+ doubleComplex *inCpx;
+
+ inCpx = (doubleComplex *) malloc ((unsigned int)(size*size)*sizeof(doubleComplex));
+
+ for (i=0;i<size*size;i++)
+ {
+ inCpx[i]=DoubleComplex(in[i],0);
+ }
+
+ zfftma(inCpx,size, size, inCpx);
+ zlogma(inCpx,size,inCpx);
+ zifftma(inCpx,size, size, inCpx);
+
+ zreala(inCpx,size*size,out);
+
+ free(inCpx);
+}
+
diff --git a/src/c/signalProcessing/lpc2cep/slpc2cepa.c b/src/c/signalProcessing/lpc2cep/slpc2cepa.c
new file mode 100644
index 0000000..2385719
--- /dev/null
+++ b/src/c/signalProcessing/lpc2cep/slpc2cepa.c
@@ -0,0 +1,39 @@
+/*
+ * 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 "lpc2cep.h"
+#include "fft.h"
+#include "ifft.h"
+#include "logm.h"
+
+void slpc2cepa(float *in, int size, float*out){
+ int i;
+ floatComplex* inCpx;
+
+ /* Copy in in a FloatComplex*/
+ inCpx=(floatComplex*)malloc((unsigned int)(size*size)*sizeof(floatComplex));
+ for (i=0;i<size*size;i++)
+ {
+ inCpx[i]=FloatComplex(in[i],0);
+ }
+
+ cfftma(inCpx,size,size,inCpx);
+ clogma(inCpx,size,inCpx);
+ cifftma(inCpx,size,size,inCpx);
+
+ creala(inCpx,size*size,out);
+
+ free(inCpx);
+}
+
+
diff --git a/src/c/signalProcessing/lpc2cep/testDoubleLpc2cep.c b/src/c/signalProcessing/lpc2cep/testDoubleLpc2cep.c
new file mode 100644
index 0000000..29c3859
--- /dev/null
+++ b/src/c/signalProcessing/lpc2cep/testDoubleLpc2cep.c
@@ -0,0 +1,39 @@
+/*
+ * 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 <assert.h>
+#include <math.h>
+#include <stdio.h>
+#include "lpc2cep.h"
+
+static void dlpc2cepaTest(void){
+
+}
+
+static void zlpc2cepaTest(void){
+
+}
+
+static int lpc2cepTest(void){
+ dlpc2cepaTest();
+ zlpc2cepaTest();
+ return 0;
+}
+
+
+int main(void){
+ assert(lpc2cepTest()==0);
+ return 0;
+}
+
+
diff --git a/src/c/signalProcessing/lpc2cep/testFloatLpc2cep.c b/src/c/signalProcessing/lpc2cep/testFloatLpc2cep.c
new file mode 100644
index 0000000..72d0726
--- /dev/null
+++ b/src/c/signalProcessing/lpc2cep/testFloatLpc2cep.c
@@ -0,0 +1,40 @@
+/*
+ * 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 <assert.h>
+#include <math.h>
+#include <stdio.h>
+#include "lpc2cep.h"
+
+static void slpc2cepaTest(void){
+
+}
+
+static void clpc2cepaTest(void){
+
+}
+
+static int lpc2cepTest(void){
+ slpc2cepaTest();
+ clpc2cepaTest();
+ return 0;
+}
+
+
+int main(void){
+ assert(lpc2cepTest()==0);
+ return 0;
+}
+
+
+
diff --git a/src/c/signalProcessing/lpc2cep/test_DoubleLpc2cep/testDoubleLpc2cep.vcxproj b/src/c/signalProcessing/lpc2cep/test_DoubleLpc2cep/testDoubleLpc2cep.vcxproj
new file mode 100644
index 0000000..a0e86cd
--- /dev/null
+++ b/src/c/signalProcessing/lpc2cep/test_DoubleLpc2cep/testDoubleLpc2cep.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EDF4F58C-2776-49A0-9F2D-CAE9A8979CE1}</ProjectGuid>
+ <RootNamespace>testDoubleLpc2cep</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleLpc2cep.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/lpc2cep/test_DoubleLpc2cep/testDoubleLpc2cep.vcxproj.filters b/src/c/signalProcessing/lpc2cep/test_DoubleLpc2cep/testDoubleLpc2cep.vcxproj.filters
new file mode 100644
index 0000000..24f567e
--- /dev/null
+++ b/src/c/signalProcessing/lpc2cep/test_DoubleLpc2cep/testDoubleLpc2cep.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleLpc2cep.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/lpc2cep/test_FloatLpc2cep/testFloatLpc2cep.vcxproj b/src/c/signalProcessing/lpc2cep/test_FloatLpc2cep/testFloatLpc2cep.vcxproj
new file mode 100644
index 0000000..e02f20f
--- /dev/null
+++ b/src/c/signalProcessing/lpc2cep/test_FloatLpc2cep/testFloatLpc2cep.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{F37FAC6D-8C48-4F25-8E8D-AB0BF1A8641F}</ProjectGuid>
+ <RootNamespace>testFloatLpc2cep</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatLpc2cep.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\signalProcessing.vcxproj">
+ <Project>{f7e8df1b-cc81-4b2a-b5f0-1a247be59cc4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/lpc2cep/test_FloatLpc2cep/testFloatLpc2cep.vcxproj.filters b/src/c/signalProcessing/lpc2cep/test_FloatLpc2cep/testFloatLpc2cep.vcxproj.filters
new file mode 100644
index 0000000..a3e40f9
--- /dev/null
+++ b/src/c/signalProcessing/lpc2cep/test_FloatLpc2cep/testFloatLpc2cep.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatLpc2cep.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/lpc2cep/zlpc2cepa.c b/src/c/signalProcessing/lpc2cep/zlpc2cepa.c
new file mode 100644
index 0000000..8c5640d
--- /dev/null
+++ b/src/c/signalProcessing/lpc2cep/zlpc2cepa.c
@@ -0,0 +1,34 @@
+/*
+ * 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 "lpc2cep.h"
+#include "fft.h"
+#include "ifft.h"
+#include "logm.h"
+
+void zlpc2cepa(doubleComplex* in, int size, doubleComplex* out){
+ int i;
+
+ for (i=0;i<size*size;i++)
+ out[i]=in[i];
+
+
+ zfftma(out,size, size, out);
+ zlogma(out,size,out);
+ zifftma(out,size, size, out);
+
+}
+
+
+
+
diff --git a/src/c/signalProcessing/signalProcessing.vcxproj b/src/c/signalProcessing/signalProcessing.vcxproj
new file mode 100644
index 0000000..c2d22c1
--- /dev/null
+++ b/src/c/signalProcessing/signalProcessing.vcxproj
@@ -0,0 +1,607 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{F7E8DF1B-CC81-4B2A-B5F0-1A247BE59CC4}</ProjectGuid>
+ <RootNamespace>signalProcessing</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>includes;../type;../operations/includes;../matrixOperations/includes;../auxiliaryFunctions/includes;../../../includes;../elementaryFunctions/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;SIGNALPROCESSING_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>includes;../type;../operations/includes;../matrixOperations/includes;../auxiliaryFunctions/includes;../../../includes;../elementaryFunctions/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;SIGNALPROCESSING_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>includes;../type;../operations/includes;../matrixOperations/includes;../auxiliaryFunctions/includes;../../../includes;../elementaryFunctions/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;SIGNALPROCESSING_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>includes;../type;../operations/includes;../matrixOperations/includes;../auxiliaryFunctions/includes;../../../includes;../elementaryFunctions/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;SIGNALPROCESSING_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="conv\cconva.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="conv\dconva.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="conv\sconva.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="conv\zconva.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="conv2d\cconv2da.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="conv2d\dconv2da.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="conv2d\sconv2da.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="conv2d\zconv2da.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="crossCorr\ccrossCorra.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="crossCorr\dcrossCorra.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="crossCorr\scrossCorra.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="crossCorr\zcrossCorra.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fft\cfftma.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fft\dfft2.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fft\dfftbi.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fft\dfftma.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fft\dfftmx.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fft\fft842.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fft\r2tx.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fft\r4tx.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fft\r8tx.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fft\sfftma.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fft\zfftma.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fftshift\ccolumnfftshifta.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fftshift\cfftshifta.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fftshift\crowfftshifta.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fftshift\dcolumnfftshifta.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fftshift\dfftshifta.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fftshift\drowfftshifta.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fftshift\scolumnfftshifta.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fftshift\sfftshifta.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fftshift\srowfftshifta.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fftshift\zcolumnfftshifta.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fftshift\zfftshifta.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="fftshift\zrowfftshifta.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="hilbert\dhilberta.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="hilbert\dhilberts.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="hilbert\shilberta.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="hilbert\shilberts.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="ifft\cifftma.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="ifft\diffbi_lavraie.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="ifft\difft2.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="ifft\difftbi.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="ifft\difftma.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="ifft\difftmx.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="ifft\ifft842.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="ifft\ir2tx.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="ifft\ir4tx.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="ifft\ir8tx.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="ifft\sifftma.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="ifft\zifftma.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="lev\cleva.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="lev\cleva2.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="lev\dleva.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="lev\dleva2.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="lev\sleva.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="lev\sleva2.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="lev\zleva.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="lev\zleva2.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="lpc2cep\clpc2cepa.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="lpc2cep\dlpc2cepa.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="lpc2cep\slpc2cepa.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="lpc2cep\zlpc2cepa.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="levin\dlevina.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="levin\levinUtils.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ <ClCompile Include="levin\slevina.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="conv\Makefile.am" />
+ <None Include="conv2d\Makefile.am" />
+ <None Include="crossCorr\Makefile.am" />
+ <None Include="fft\Makefile.am" />
+ <None Include="fftshift\Makefile.am" />
+ <None Include="hilbert\Makefile.am" />
+ <None Include="ifft\Makefile.am" />
+ <None Include="lev\Makefile.am" />
+ <None Include="lpc2cep\Makefile.am" />
+ <None Include="levin\Makefile.am" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="includes\conv.h" />
+ <ClInclude Include="includes\conv2d.h" />
+ <ClInclude Include="includes\crossCorr.h" />
+ <ClInclude Include="includes\dynlib_signalprocessing.h" />
+ <ClInclude Include="includes\fft.h" />
+ <ClInclude Include="includes\fftshift.h" />
+ <ClInclude Include="includes\hilbert.h" />
+ <ClInclude Include="includes\ifft.h" />
+ <ClInclude Include="includes\lev.h" />
+ <ClInclude Include="includes\levin.h" />
+ <ClInclude Include="includes\lpc2cep.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <Library Include="..\..\..\bin\blasplus.lib" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\auxiliaryFunctions\auxiliaryFunctions.vcxproj">
+ <Project>{af4a8af2-cc9f-4991-be6e-8aaf9cb5bfc9}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\elementaryFunctions\elementaryFunctions.vcxproj">
+ <Project>{72b46833-b150-432d-b231-3e0ecd91e190}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\matrixOperations\matrixOperations.vcxproj">
+ <Project>{fd335544-52bf-4736-a34e-77f591d158d5}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\operations\operations.vcxproj">
+ <Project>{9b622a66-546a-4b33-b947-0a189d259d37}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/signalProcessing.vcxproj.filters b/src/c/signalProcessing/signalProcessing.vcxproj.filters
new file mode 100644
index 0000000..6ed93df
--- /dev/null
+++ b/src/c/signalProcessing/signalProcessing.vcxproj.filters
@@ -0,0 +1,320 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Source Files\cepstrum">
+ <UniqueIdentifier>{ebc6c365-0c2d-4024-b959-0b6fa64246cb}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\conv">
+ <UniqueIdentifier>{00836675-12ac-47b7-9ac6-0196bb33333c}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\conv2d">
+ <UniqueIdentifier>{4f72c2fb-c271-459e-8502-da2f7c962c68}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\crossCorr">
+ <UniqueIdentifier>{1338e5a6-e007-4d3b-828b-b25eff140442}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\fft">
+ <UniqueIdentifier>{48ddaeb8-14d4-4c8e-868d-7e52f145304a}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\fftshift">
+ <UniqueIdentifier>{97133a42-f4a2-47de-a3bf-e764b23ec51d}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\hilbert">
+ <UniqueIdentifier>{116e0cb5-bcb1-4a9d-bd89-7b5098f5b149}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\ifft">
+ <UniqueIdentifier>{1756fe63-6e90-4f05-88fa-f6fbb81d2ef1}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\lev">
+ <UniqueIdentifier>{3c3ce86a-8e15-4f1b-bc56-80a84d2d5c44}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\lpc2cep">
+ <UniqueIdentifier>{4c335f24-03ef-4a1f-b409-c18af44c5a53}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\levin">
+ <UniqueIdentifier>{f54c4b75-354f-422d-ab7c-57697189b855}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="conv\cconva.c">
+ <Filter>Source Files\conv</Filter>
+ </ClCompile>
+ <ClCompile Include="conv\dconva.c">
+ <Filter>Source Files\conv</Filter>
+ </ClCompile>
+ <ClCompile Include="conv\sconva.c">
+ <Filter>Source Files\conv</Filter>
+ </ClCompile>
+ <ClCompile Include="conv\zconva.c">
+ <Filter>Source Files\conv</Filter>
+ </ClCompile>
+ <ClCompile Include="conv2d\cconv2da.c">
+ <Filter>Source Files\conv2d</Filter>
+ </ClCompile>
+ <ClCompile Include="conv2d\dconv2da.c">
+ <Filter>Source Files\conv2d</Filter>
+ </ClCompile>
+ <ClCompile Include="conv2d\sconv2da.c">
+ <Filter>Source Files\conv2d</Filter>
+ </ClCompile>
+ <ClCompile Include="conv2d\zconv2da.c">
+ <Filter>Source Files\conv2d</Filter>
+ </ClCompile>
+ <ClCompile Include="crossCorr\ccrossCorra.c">
+ <Filter>Source Files\crossCorr</Filter>
+ </ClCompile>
+ <ClCompile Include="crossCorr\dcrossCorra.c">
+ <Filter>Source Files\crossCorr</Filter>
+ </ClCompile>
+ <ClCompile Include="crossCorr\scrossCorra.c">
+ <Filter>Source Files\crossCorr</Filter>
+ </ClCompile>
+ <ClCompile Include="crossCorr\zcrossCorra.c">
+ <Filter>Source Files\crossCorr</Filter>
+ </ClCompile>
+ <ClCompile Include="fft\cfftma.c">
+ <Filter>Source Files\fft</Filter>
+ </ClCompile>
+ <ClCompile Include="fft\dfft2.c">
+ <Filter>Source Files\fft</Filter>
+ </ClCompile>
+ <ClCompile Include="fft\dfftbi.c">
+ <Filter>Source Files\fft</Filter>
+ </ClCompile>
+ <ClCompile Include="fft\dfftma.c">
+ <Filter>Source Files\fft</Filter>
+ </ClCompile>
+ <ClCompile Include="fft\dfftmx.c">
+ <Filter>Source Files\fft</Filter>
+ </ClCompile>
+ <ClCompile Include="fft\fft842.c">
+ <Filter>Source Files\fft</Filter>
+ </ClCompile>
+ <ClCompile Include="fft\r2tx.c">
+ <Filter>Source Files\fft</Filter>
+ </ClCompile>
+ <ClCompile Include="fft\r4tx.c">
+ <Filter>Source Files\fft</Filter>
+ </ClCompile>
+ <ClCompile Include="fft\r8tx.c">
+ <Filter>Source Files\fft</Filter>
+ </ClCompile>
+ <ClCompile Include="fft\sfftma.c">
+ <Filter>Source Files\fft</Filter>
+ </ClCompile>
+ <ClCompile Include="fft\zfftma.c">
+ <Filter>Source Files\fft</Filter>
+ </ClCompile>
+ <ClCompile Include="fftshift\ccolumnfftshifta.c">
+ <Filter>Source Files\fftshift</Filter>
+ </ClCompile>
+ <ClCompile Include="fftshift\cfftshifta.c">
+ <Filter>Source Files\fftshift</Filter>
+ </ClCompile>
+ <ClCompile Include="fftshift\crowfftshifta.c">
+ <Filter>Source Files\fftshift</Filter>
+ </ClCompile>
+ <ClCompile Include="fftshift\dcolumnfftshifta.c">
+ <Filter>Source Files\fftshift</Filter>
+ </ClCompile>
+ <ClCompile Include="fftshift\dfftshifta.c">
+ <Filter>Source Files\fftshift</Filter>
+ </ClCompile>
+ <ClCompile Include="fftshift\drowfftshifta.c">
+ <Filter>Source Files\fftshift</Filter>
+ </ClCompile>
+ <ClCompile Include="fftshift\scolumnfftshifta.c">
+ <Filter>Source Files\fftshift</Filter>
+ </ClCompile>
+ <ClCompile Include="fftshift\sfftshifta.c">
+ <Filter>Source Files\fftshift</Filter>
+ </ClCompile>
+ <ClCompile Include="fftshift\srowfftshifta.c">
+ <Filter>Source Files\fftshift</Filter>
+ </ClCompile>
+ <ClCompile Include="fftshift\zcolumnfftshifta.c">
+ <Filter>Source Files\fftshift</Filter>
+ </ClCompile>
+ <ClCompile Include="fftshift\zfftshifta.c">
+ <Filter>Source Files\fftshift</Filter>
+ </ClCompile>
+ <ClCompile Include="fftshift\zrowfftshifta.c">
+ <Filter>Source Files\fftshift</Filter>
+ </ClCompile>
+ <ClCompile Include="hilbert\dhilberta.c">
+ <Filter>Source Files\hilbert</Filter>
+ </ClCompile>
+ <ClCompile Include="hilbert\dhilberts.c">
+ <Filter>Source Files\hilbert</Filter>
+ </ClCompile>
+ <ClCompile Include="hilbert\shilberta.c">
+ <Filter>Source Files\hilbert</Filter>
+ </ClCompile>
+ <ClCompile Include="hilbert\shilberts.c">
+ <Filter>Source Files\hilbert</Filter>
+ </ClCompile>
+ <ClCompile Include="ifft\cifftma.c">
+ <Filter>Source Files\ifft</Filter>
+ </ClCompile>
+ <ClCompile Include="ifft\diffbi_lavraie.c">
+ <Filter>Source Files\ifft</Filter>
+ </ClCompile>
+ <ClCompile Include="ifft\difft2.c">
+ <Filter>Source Files\ifft</Filter>
+ </ClCompile>
+ <ClCompile Include="ifft\difftbi.c">
+ <Filter>Source Files\ifft</Filter>
+ </ClCompile>
+ <ClCompile Include="ifft\difftma.c">
+ <Filter>Source Files\ifft</Filter>
+ </ClCompile>
+ <ClCompile Include="ifft\difftmx.c">
+ <Filter>Source Files\ifft</Filter>
+ </ClCompile>
+ <ClCompile Include="ifft\ifft842.c">
+ <Filter>Source Files\ifft</Filter>
+ </ClCompile>
+ <ClCompile Include="ifft\ir2tx.c">
+ <Filter>Source Files\ifft</Filter>
+ </ClCompile>
+ <ClCompile Include="ifft\ir4tx.c">
+ <Filter>Source Files\ifft</Filter>
+ </ClCompile>
+ <ClCompile Include="ifft\ir8tx.c">
+ <Filter>Source Files\ifft</Filter>
+ </ClCompile>
+ <ClCompile Include="ifft\sifftma.c">
+ <Filter>Source Files\ifft</Filter>
+ </ClCompile>
+ <ClCompile Include="ifft\zifftma.c">
+ <Filter>Source Files\ifft</Filter>
+ </ClCompile>
+ <ClCompile Include="lev\cleva.c">
+ <Filter>Source Files\lev</Filter>
+ </ClCompile>
+ <ClCompile Include="lev\cleva2.c">
+ <Filter>Source Files\lev</Filter>
+ </ClCompile>
+ <ClCompile Include="lev\dleva.c">
+ <Filter>Source Files\lev</Filter>
+ </ClCompile>
+ <ClCompile Include="lev\dleva2.c">
+ <Filter>Source Files\lev</Filter>
+ </ClCompile>
+ <ClCompile Include="lev\sleva.c">
+ <Filter>Source Files\lev</Filter>
+ </ClCompile>
+ <ClCompile Include="lev\sleva2.c">
+ <Filter>Source Files\lev</Filter>
+ </ClCompile>
+ <ClCompile Include="lev\zleva.c">
+ <Filter>Source Files\lev</Filter>
+ </ClCompile>
+ <ClCompile Include="lev\zleva2.c">
+ <Filter>Source Files\lev</Filter>
+ </ClCompile>
+ <ClCompile Include="lpc2cep\clpc2cepa.c">
+ <Filter>Source Files\lpc2cep</Filter>
+ </ClCompile>
+ <ClCompile Include="lpc2cep\dlpc2cepa.c">
+ <Filter>Source Files\lpc2cep</Filter>
+ </ClCompile>
+ <ClCompile Include="lpc2cep\slpc2cepa.c">
+ <Filter>Source Files\lpc2cep</Filter>
+ </ClCompile>
+ <ClCompile Include="lpc2cep\zlpc2cepa.c">
+ <Filter>Source Files\lpc2cep</Filter>
+ </ClCompile>
+ <ClCompile Include="levin\dlevina.c">
+ <Filter>Source Files\levin</Filter>
+ </ClCompile>
+ <ClCompile Include="levin\levinUtils.c">
+ <Filter>Source Files\levin</Filter>
+ </ClCompile>
+ <ClCompile Include="levin\slevina.c">
+ <Filter>Source Files\levin</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="conv\Makefile.am">
+ <Filter>Source Files\conv</Filter>
+ </None>
+ <None Include="conv2d\Makefile.am">
+ <Filter>Source Files\conv2d</Filter>
+ </None>
+ <None Include="crossCorr\Makefile.am">
+ <Filter>Source Files\crossCorr</Filter>
+ </None>
+ <None Include="fft\Makefile.am">
+ <Filter>Source Files\fft</Filter>
+ </None>
+ <None Include="fftshift\Makefile.am">
+ <Filter>Source Files\fftshift</Filter>
+ </None>
+ <None Include="hilbert\Makefile.am">
+ <Filter>Source Files\hilbert</Filter>
+ </None>
+ <None Include="ifft\Makefile.am">
+ <Filter>Source Files\ifft</Filter>
+ </None>
+ <None Include="lev\Makefile.am">
+ <Filter>Source Files\lev</Filter>
+ </None>
+ <None Include="lpc2cep\Makefile.am">
+ <Filter>Source Files\lpc2cep</Filter>
+ </None>
+ <None Include="levin\Makefile.am">
+ <Filter>Source Files\levin</Filter>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="includes\conv.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="includes\conv2d.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="includes\crossCorr.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="includes\dynlib_signalprocessing.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="includes\fft.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="includes\fftshift.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="includes\hilbert.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="includes\ifft.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="includes\lev.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="includes\levin.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="includes\lpc2cep.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <Library Include="..\..\..\bin\blasplus.lib" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/c/signalProcessing/sincd/dsincds.c b/src/c/signalProcessing/sincd/dsincds.c
new file mode 100644
index 0000000..1475d8d
--- /dev/null
+++ b/src/c/signalProcessing/sincd/dsincds.c
@@ -0,0 +1,99 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#include<stdio.h>
+#include<math.h>
+#include "sincd.h"
+//#define PI 3.14159265358979
+void dsincds(double n,double flg,double* oup)
+{
+ double npt=4*n;
+ int sz=4*n;
+ double PI=M_PI;
+ double pas=PI/npt;
+ double om[sz+1];
+ int i;
+ for(i=0;i<=sz;i++)
+ {
+ om[i]=i*pas;
+ }
+ double eps=pow(-1,(n-1));
+ double s1[sz+1],s2[sz+1];
+ double s[2*(sz)+1];
+ double sr[2*(sz)+1];
+ if(flg==1)
+ {
+ int j,k;
+ for(j=0;j<=4*n;j++)
+ {
+ s1[j]=sin(n*om[j]);
+ s2[j]=sin(om[j]);
+ }
+ s1[0]=n;
+ s2[0]=1;
+ s1[sz]=n*eps;
+ s2[sz]=1;
+
+ for(k=0;k<=4*n;k++)
+ {
+ s[k]=s1[k]/s2[k];
+ }
+
+ int x;
+ for(x=0;x<=4*n;x++)
+ {
+ oup[sz-x]=s[x];
+ }
+ int l;
+ for(l=4*n+1;l<=8*n;l++)
+ {
+ oup[l]=s[l-(sz)];
+ }
+ int m;
+ for(m=0;m<=8*n;m++)
+ {
+ oup[m]=oup[m]/n;
+ }
+ }
+ else
+ {
+ int a;
+ for(a=0;a<=4*n;a++)
+ {
+ om[a]=om[a]-(PI/(2*n));
+ }
+ int j,k;
+ for(j=0;j<=4*n;j++)
+ {
+ s1[j]=sin(n*om[j]);
+ s2[j]=sin(om[j]);
+ }
+ s1[2]=n;
+ s2[2]=1;
+ for(k=0;k<=4*n;k++)
+ {
+ s[k]=s1[k]/s2[k];
+ }
+ int m;
+ for(m=0;m<=4*n;m++)
+ {
+ oup[m]=(eps*s[m])/n;
+ }
+ int l;
+ for(l=4*n+1;l<=8*n;l++)
+ {
+ oup[l]=s[l-(sz)]/n;
+ }
+
+ }
+}
+
diff --git a/src/c/signalProcessing/sincd/int_sincd.h b/src/c/signalProcessing/sincd/int_sincd.h
new file mode 100644
index 0000000..a404978
--- /dev/null
+++ b/src/c/signalProcessing/sincd/int_sincd.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_SINCD_H__
+#define __INT_SINCD_H__
+
+#define u80sincdd2(n,flg,oup) u8sincds(n,flg,oup)
+
+#endif /* !__INT_SINCD_H__! */
diff --git a/src/c/signalProcessing/sincd/sincd.h b/src/c/signalProcessing/sincd/sincd.h
new file mode 100644
index 0000000..2df85a8
--- /dev/null
+++ b/src/c/signalProcessing/sincd/sincd.h
@@ -0,0 +1,28 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __SINCD_H__
+#define __SINCD_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void u8sincds(int n,int flg,double* oup);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __SINCD_H__ */
+
diff --git a/src/c/signalProcessing/sincd/u8sincds.c b/src/c/signalProcessing/sincd/u8sincds.c
new file mode 100644
index 0000000..d03f48a
--- /dev/null
+++ b/src/c/signalProcessing/sincd/u8sincds.c
@@ -0,0 +1,98 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#include<stdio.h>
+#include<math.h>
+#include "sincd.h"
+#define PI 3.14159265358979
+void u8sincds(int n,int flg,double* oup)
+{
+ double npt=4*n;
+ int sz=4*n;
+ double pas=PI/npt;
+ double om[sz+1];
+ int i;
+ //om[0]=0;
+ for(i=0;i<=sz;i++)
+ {
+ om[i]=i*pas;
+ }
+ double eps=pow(-1,(n-1));
+ double s1[sz+1],s2[sz+1];
+ double s[2*(sz)+1];
+ double sr[2*(sz)+1];
+ if(flg==1)
+ {
+ int j,k;
+ for(j=0;j<=4*n;j++)
+ {
+ s1[j]=sin(n*om[j]);
+ s2[j]=sin(om[j]);
+ }
+ s1[0]=n;
+ s2[0]=1;
+ s1[sz]=n*eps;
+ s2[sz]=1;
+
+ for(k=0;k<=4*n;k++)
+ {
+ s[k]=s1[k]/s2[k];
+ }
+
+ int x;
+ for(x=0;x<=4*n;x++)
+ {
+ oup[sz-x]=s[x];
+ }
+ int l;
+ for(l=4*n+1;l<=8*n;l++)
+ {
+ oup[l]=s[l-(sz)];
+ }
+ int m;
+ for(m=0;m<=8*n;m++)
+ {
+ oup[m]=oup[m]/n;
+ }
+ }
+ else
+ {
+ int a;
+ for(a=0;a<=4*n;a++)
+ {
+ om[a]=om[a]-(PI/(2*n));
+ }
+ int j,k;
+ for(j=0;j<=4*n;j++)
+ {
+ s1[j]=sin(n*om[j]);
+ s2[j]=sin(om[j]);
+ }
+ s1[2]=n;
+ s2[2]=1;
+ for(k=0;k<=4*n;k++)
+ {
+ s[k]=s1[k]/s2[k];
+ }
+ int m;
+ for(m=0;m<=4*n;m++)
+ {
+ oup[m]=(eps*s[m])/n;
+ }
+ int l;
+ for(l=4*n+1;l<=8*n;l++)
+ {
+ oup[l]=s[l-(sz)]/n;
+ }
+
+ }
+}
diff --git a/src/c/signalProcessing/zpbutt/dzpbutts.c b/src/c/signalProcessing/zpbutt/dzpbutts.c
new file mode 100644
index 0000000..33f22af
--- /dev/null
+++ b/src/c/signalProcessing/zpbutt/dzpbutts.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+#include<stdio.h>
+#include<math.h>
+#include "zpbutt.h"
+#define PI 3.14159265
+double dzpbutts(double n,double fl,doubleComplex* out)
+{
+ double e= PI/(2.0*(n));
+ int k;
+ double rl,cpx,gain;
+ for(k=1;k<=n;k++)
+ {
+ double v=2.0*(double)k+(n)-1.0;
+ rl=(fl)*cos(e*v);
+ cpx=(fl)*sin(e*v);
+ out[k-1]=DoubleComplex(rl,cpx);
+ }
+ gain=pow(fl,n);
+
+return gain;
+
+}
+
diff --git a/src/c/signalProcessing/zpbutt/int_zpbutt.h b/src/c/signalProcessing/zpbutt/int_zpbutt.h
new file mode 100644
index 0000000..72eae8a
--- /dev/null
+++ b/src/c/signalProcessing/zpbutt/int_zpbutt.h
@@ -0,0 +1,19 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_ZPBUTT_H__
+#define __INT_ZPBUTT_H__
+
+#define d0d0zpbuttzada(n,fl,out,gain) dzpbutts(n,fl,out,gain)
+
+#endif /* !INT_ZPBUTT_H__ */
+
diff --git a/src/c/signalProcessing/zpbutt/zpbutt.h b/src/c/signalProcessing/zpbutt/zpbutt.h
new file mode 100644
index 0000000..6883942
--- /dev/null
+++ b/src/c/signalProcessing/zpbutt/zpbutt.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __ZPBUTT_H__
+#define __ZPBUTT_H__
+#include "types.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dzpbutts(double* n,double* fl,doublecomplex* out,double* gain);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
diff --git a/src/c/signalProcessing/zpch1/dzpch1s.c b/src/c/signalProcessing/zpch1/dzpch1s.c
new file mode 100644
index 0000000..ab7b633
--- /dev/null
+++ b/src/c/signalProcessing/zpch1/dzpch1s.c
@@ -0,0 +1,53 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#include<stdio.h>
+#include<math.h>
+#include "zpch1.h"
+#include "multiplication.h"
+#include "conj.h"
+#include "abs.h"
+#define PI 3.14159265
+double dzpch1s(double N,double e,double wc,doubleComplex* out)
+{
+ doubleComplex accumulate,tp;
+ double B,r,R,gain,realVal;
+ double temp=sqrt(1+e*e);
+
+ B=pow((temp+1)/e,1/N);
+
+ r=wc*((B*B-1)/(2*B));
+ R=wc*((B*B+1)/(2*B));
+
+ int k;
+ double t1=1;
+ double t2=0;
+ accumulate=DoubleComplex(t1,t2);
+ for(k=0;k<N;k++)
+ {
+ double theta;
+ theta=(PI/2)+((2*k+1)*PI)/(2*N);
+ double xk,yk;
+ xk=r*cos(theta);
+ yk=R*sin(theta);
+ out[k]=DoubleComplex(xk,yk);
+ tp=DoubleComplex(xk,yk);
+ accumulate=zmuls(accumulate,tp);
+ }
+
+ realVal=zreals(accumulate);
+ gain=dabss(realVal);
+ if (N==2*(int)(N/2))
+ gain=gain/sqrt(1+e*e);
+return gain;
+
+}
+
diff --git a/src/c/signalProcessing/zpch1/int_zpch1.h b/src/c/signalProcessing/zpch1/int_zpch1.h
new file mode 100644
index 0000000..8933d1a
--- /dev/null
+++ b/src/c/signalProcessing/zpch1/int_zpch1.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_ZPCH1_H__
+#define __INT_ZPCH1_H__
+
+#define d0d0d0zpch1z2d0(N,e,wc) dzpch1s(N,e,wc)
+
+#endif /* !INT_ZPCH1_H__! */
diff --git a/src/c/signalProcessing/zpch1/zpch1.h b/src/c/signalProcessing/zpch1/zpch1.h
new file mode 100644
index 0000000..fbe850c
--- /dev/null
+++ b/src/c/signalProcessing/zpch1/zpch1.h
@@ -0,0 +1,28 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __ZPCH1_H__
+#define __ZPCH1_H__
+#include "types.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dzpch1s(double N,double e,double wc,doubleComplex* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __ZPCH1_H__ */
diff --git a/src/c/signalProcessing/zpch2/dzpch2s.c b/src/c/signalProcessing/zpch2/dzpch2s.c
new file mode 100644
index 0000000..22a46a6
--- /dev/null
+++ b/src/c/signalProcessing/zpch2/dzpch2s.c
@@ -0,0 +1,63 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#include<stdio.h>
+#include<math.h>
+#include "zpch2.h"
+#include "multiplication.h"
+#include "abs.h"
+#include "division.h"
+#define PI 3.14159265
+double dzpch2s(double N, double A, double omegar,doubleComplex* zeros,doubleComplex* poles)
+{
+ int k,j;
+ double e,xk,realVal,gain;
+ doubleComplex accumulate1,accumulate2,tp1,tp2;
+ accumulate1=DoubleComplex(1,0);
+ accumulate2=DoubleComplex(1,0);
+ int ct=0;
+ for(k=1;k<=N;k++)
+ {
+ if(k!=((N+1)/2))
+ {
+ ct++;
+ double num=PI*(2*k-1);
+ double den=2*N;
+ xk=cos(num/den);
+ double sk=omegar/xk;
+ zeros[k-1]=DoubleComplex(0,sk);
+ tp1=DoubleComplex(0,sk);
+ accumulate1=zmuls(accumulate1,tp1);
+ }
+ }
+ for(j=1;j<=N;j++)
+ {
+ double num=PI*(2*j-1);
+ double den=2*N;
+ double xk1=num/den;
+ double Gamma=pow((A+sqrt(A*A-1)),(1/N));
+ double alpha=-((Gamma-1/Gamma)/2)*sin(xk1);
+ double Beta=((Gamma+1/Gamma)/2)*cos(xk1);
+ double normal=alpha*alpha+Beta*Beta;
+ poles[j-1]=DoubleComplex((omegar*alpha)/normal,(omegar*Beta)/normal);
+ tp2=DoubleComplex((omegar*alpha)/normal,(omegar*Beta)/normal);
+ accumulate2=zmuls(accumulate2,tp2);
+ }
+ double qt;
+ double ra2=zreals(accumulate2);
+ double ra1=zreals(accumulate1);
+ qt=dldivs(ra1,ra2);
+ gain=dabss(qt);
+
+ return gain;
+
+}
+
diff --git a/src/c/signalProcessing/zpch2/int_zpch2.h b/src/c/signalProcessing/zpch2/int_zpch2.h
new file mode 100644
index 0000000..683a761
--- /dev/null
+++ b/src/c/signalProcessing/zpch2/int_zpch2.h
@@ -0,0 +1,18 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_ZPCH2_H__
+#define __INT_ZPCH2_H__
+
+#define d0d0d0zpch2z2z2(N,A,omegar,zeros,poles) dzpch2s(N,A,omegar,zeros,poles)
+
+#endif /* !INT_ZPCH2_H__! */
diff --git a/src/c/signalProcessing/zpch2/zpch2.h b/src/c/signalProcessing/zpch2/zpch2.h
new file mode 100644
index 0000000..0d191d5
--- /dev/null
+++ b/src/c/signalProcessing/zpch2/zpch2.h
@@ -0,0 +1,28 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ 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
+ Author: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __ZPCH2_H__
+#define __ZPCH2_H__
+#include "types.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dzpch2s(double N, double A, double omegar,doubleComplex* zeros,doubleComplex* poles);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __ZPCH2_H__ */