diff options
Diffstat (limited to 'src/signalProcessing/fft')
20 files changed, 0 insertions, 6586 deletions
diff --git a/src/signalProcessing/fft/Makefile.am b/src/signalProcessing/fft/Makefile.am deleted file mode 100644 index 2c6c184c..00000000 --- a/src/signalProcessing/fft/Makefile.am +++ /dev/null @@ -1,83 +0,0 @@ -## -## 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)/type \ - -I $(top_builddir)/signalProcessing/includes \ - -I $(top_builddir)/operations/includes \ - -I $(top_builddir)/matrixOperations/includes \ - -I $(top_builddir)/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)/type \ - -I $(top_builddir)/signalProcessing/includes \ - -I $(top_builddir)/matrixOperations/includes \ - -I $(top_builddir)/operations/includes \ - -I $(top_builddir)/auxiliaryFunctions/includes - - -check_LDADD = $(top_builddir)/type/libDoubleComplex.la \ - $(top_builddir)/type/libFloatComplex.la \ - $(top_builddir)/lib/lapack/libscilapack.la \ - $(top_builddir)/lib/blas/libsciblas.la \ - $(top_builddir)/signalProcessing/fft/libFft.la \ - $(top_builddir)/operations/addition/libAddition.la \ - $(top_builddir)/operations/subtraction/libSubtraction.la \ - $(top_builddir)/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/signalProcessing/fft/Makefile.in b/src/signalProcessing/fft/Makefile.in deleted file mode 100644 index 4deb6077..00000000 --- a/src/signalProcessing/fft/Makefile.in +++ /dev/null @@ -1,785 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 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@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@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 = 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 = -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 = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(pkglibdir)" -pkglibLTLIBRARIES_INSTALL = $(INSTALL) -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)/type/libDoubleComplex.la \ - $(top_builddir)/type/libFloatComplex.la \ - $(top_builddir)/lib/lapack/libscilapack.la \ - $(top_builddir)/lib/blas/libsciblas.la \ - $(top_builddir)/signalProcessing/fft/libFft.la \ - $(top_builddir)/operations/addition/libAddition.la \ - $(top_builddir)/operations/subtraction/libSubtraction.la \ - $(top_builddir)/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 -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 -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@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBMATH = @LIBMATH@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -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_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@ -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_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -libFft_la_CFLAGS = -I . \ - -I $(top_builddir)/type \ - -I $(top_builddir)/signalProcessing/includes \ - -I $(top_builddir)/operations/includes \ - -I $(top_builddir)/matrixOperations/includes \ - -I $(top_builddir)/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)/type \ - -I $(top_builddir)/signalProcessing/includes \ - -I $(top_builddir)/matrixOperations/includes \ - -I $(top_builddir)/operations/includes \ - -I $(top_builddir)/auxiliaryFunctions/includes - -check_LDADD = $(top_builddir)/type/libDoubleComplex.la \ - $(top_builddir)/type/libFloatComplex.la \ - $(top_builddir)/lib/lapack/libscilapack.la \ - $(top_builddir)/lib/blas/libsciblas.la \ - $(top_builddir)/signalProcessing/fft/libFft.la \ - $(top_builddir)/operations/addition/libAddition.la \ - $(top_builddir)/operations/subtraction/libSubtraction.la \ - $(top_builddir)/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 \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign signalProcessing/fft/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign 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 -install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES) - @$(NORMAL_INSTALL) - test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" - @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ - if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \ - else :; fi; \ - done - -uninstall-pkglibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$p'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \ - 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)'; for p in $$list; do \ - f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f $$p $$f"; \ - rm -f $$p $$f ; \ - done -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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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@ mv -f $(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; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && 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; ws='[ ]'; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - 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 \ - *$$ws$$tst$$ws*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - echo "XPASS: $$tst"; \ - ;; \ - *) \ - echo "PASS: $$tst"; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *$$ws$$tst$$ws*) \ - xfail=`expr $$xfail + 1`; \ - echo "XFAIL: $$tst"; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - echo "FAIL: $$tst"; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - echo "SKIP: $$tst"; \ - fi; \ - done; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="All $$all tests passed"; \ - else \ - 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 \ - banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ - fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - skipped="($$skip tests were not run)"; \ - 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`; \ - echo "$$dashes"; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes"; \ - 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 $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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) - -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 - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-exec-am: install-pkglibLTLIBRARIES - -install-html: install-html-am - -install-info: install-info-am - -install-man: - -install-pdf: install-pdf-am - -install-ps: 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: 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/signalProcessing/fft/cfftma.c b/src/signalProcessing/fft/cfftma.c deleted file mode 100644 index 2a0eedda..00000000 --- a/src/signalProcessing/fft/cfftma.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 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 <stdio.h> -#include <malloc.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/signalProcessing/fft/dfft2.c b/src/signalProcessing/fft/dfft2.c deleted file mode 100644 index 9aa0bd53..00000000 --- a/src/signalProcessing/fft/dfft2.c +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab - * Copyright (C) 2008 - INRIA - Allan SIMON - * - * This file must be used under the terms of the CeCILL. - * This source file is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at - * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt - * - */ - -#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/signalProcessing/fft/dfftbi.c b/src/signalProcessing/fft/dfftbi.c deleted file mode 100644 index 8ddef44f..00000000 --- a/src/signalProcessing/fft/dfftbi.c +++ /dev/null @@ -1,322 +0,0 @@ -/* - * 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/signalProcessing/fft/dfftma.c b/src/signalProcessing/fft/dfftma.c deleted file mode 100644 index bd8cc0be..00000000 --- a/src/signalProcessing/fft/dfftma.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab - * Copyright (C) 2008 - INRIA - Arnaud Torset - * - * This file must be used under the terms of the CeCILL. - * This source file is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at - * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt - * - */ - -#include <malloc.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/signalProcessing/fft/dfftmx.c b/src/signalProcessing/fft/dfftmx.c deleted file mode 100644 index f7d6ce30..00000000 --- a/src/signalProcessing/fft/dfftmx.c +++ /dev/null @@ -1,1211 +0,0 @@ -/* - * 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/signalProcessing/fft/fft842.c b/src/signalProcessing/fft/fft842.c deleted file mode 100644 index 162490fe..00000000 --- a/src/signalProcessing/fft/fft842.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab - * Copyright (C) 2008 - INRIA - Allan SIMON - * - * This file must be used under the terms of the CeCILL. - * This source file is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at - * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt - * - */ - -#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/signalProcessing/fft/fft_internal.h b/src/signalProcessing/fft/fft_internal.h deleted file mode 100644 index 70377bf4..00000000 --- a/src/signalProcessing/fft/fft_internal.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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/signalProcessing/fft/r2tx.c b/src/signalProcessing/fft/r2tx.c deleted file mode 100644 index fd459291..00000000 --- a/src/signalProcessing/fft/r2tx.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab - * Copyright (C) 2008 - INRIA - Allan SIMON - * - * This file must be used under the terms of the CeCILL. - * This source file is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at - * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt - * - */ - -#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/signalProcessing/fft/r4tx.c b/src/signalProcessing/fft/r4tx.c deleted file mode 100644 index a6a94110..00000000 --- a/src/signalProcessing/fft/r4tx.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab - * Copyright (C) 2008 - INRIA - Allan SIMON - * - * This file must be used under the terms of the CeCILL. - * This source file is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at - * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt - * - */ - -#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/signalProcessing/fft/r8tx.c b/src/signalProcessing/fft/r8tx.c deleted file mode 100644 index 44866ce6..00000000 --- a/src/signalProcessing/fft/r8tx.c +++ /dev/null @@ -1,169 +0,0 @@ - -/* - * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab - * Copyright (C) 2008 - INRIA - Allan SIMON - * - * This file must be used under the terms of the CeCILL. - * This source file is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at - * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt - * - */ - -#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/signalProcessing/fft/sfftma.c b/src/signalProcessing/fft/sfftma.c deleted file mode 100644 index 925211e6..00000000 --- a/src/signalProcessing/fft/sfftma.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab - * Copyright (C) 2008 - INRIA - Arnaud Torset - * - * This file must be used under the terms of the CeCILL. - * This source file is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at - * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt - * - */ - -#include <malloc.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); -} diff --git a/src/signalProcessing/fft/testDoubleFft.c b/src/signalProcessing/fft/testDoubleFft.c deleted file mode 100644 index 5ba6038c..00000000 --- a/src/signalProcessing/fft/testDoubleFft.c +++ /dev/null @@ -1,1238 +0,0 @@ -/* - * 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 void zfftmaTest4 (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) ; - - - zfftma ( 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 zfftmaTest5 (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) ; - - - - zfftma ( 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-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 zfftmaTest6 (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) ; - - - - zfftma ( in , ROW , COLS6 , out ) ; - - /* if we don't add that test assert failed if result = 0 'cause then we have |(out - 0)|/|out| = 1*/ - - - for ( i = 0 ; i < (ROW*COLS6 ) ; i++ ) - { - printf ( "\t\t %d out : %e\t %e\t * i result : %e\t %e\t * i assert : : %e\t %e\t * i \n" , - i , - zreals(out[i]) , - zimags(out[i]), - zreals (Result[i]) , - zimags (Result[i]), - fabs( zreals(out[i]) - zreals (Result[i]) ) / fabs (zreals (out[i])) , - fabs( zimags(out[i]) - zimags (Result[i]) ) / fabs (zimags (out[i]))); - - if ( zreals(out[i]) < 1e-14 && zreals (Result[i]) < 1e-18 ) - assert ( 1 ) ; - else - assert ( fabs( zreals(out[i]) - zreals (Result[i]) ) / fabs (zreals (out[i])) < 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 zfftmaTest7 (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) ; - - - - zfftma ( 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-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 zfftmaTest8 (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) ; - - - zfftma ( 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 zfftmaTest9 (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) ; - - - zfftma ( 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-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 zfftmaTest10 (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 ); - - - - zfftma ( 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-16 ); - - - 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-16 ) ; - - } - - free(out); - free(in); -} - -static void zfftmaTest11 (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 ); - - - - zfftma ( 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-16 ); - - - 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-16 ) ; - - } - - free(out); - free(in); -} - - -static void zfftmaTest12 (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 ); - - - - zfftma ( 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-16 ); - - - 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-16 ) ; - - } - - free(out); - free(in); -} - - -static void zfftmaTest13 (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 ); - - - - zfftma ( 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-16 ); - - - 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-16 ) ; - - } - - free(out); - free(in); -} - - -static void zfftmaTest14 (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 ); - - - - zfftma ( 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-16 ); - - - 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-16 ) ; - - } - - free(out); - free(in); -} - - - -static void zfftmaTest15 (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 ); - - - - zfftma ( 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-16 ); - - - 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-16 ) ; - - } - - free(out); - free(in); -} - - - -static void zfftmaTest16 (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 ); - - - - zfftma ( 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-16 ); - - - 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-16 ) ; - - } - - free(out); - free(in); -} - - - -static void zfftmaTest32 (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 ); - - - - zfftma ( 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-16 ); - - - 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-16 ) ; - - } - - 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"); - 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/signalProcessing/fft/testFloatFft.c b/src/signalProcessing/fft/testFloatFft.c deleted file mode 100644 index e7a34dd3..00000000 --- a/src/signalProcessing/fft/testFloatFft.c +++ /dev/null @@ -1,1238 +0,0 @@ - -/* - * 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-6 ) ; - - } - - 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-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 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/signalProcessing/fft/testMatFft.c b/src/signalProcessing/fft/testMatFft.c deleted file mode 100644 index 38acff5f..00000000 --- a/src/signalProcessing/fft/testMatFft.c +++ /dev/null @@ -1,293 +0,0 @@ - -/* - * 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 <malloc.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++){ - if (out1[i]>1e-16) assert( (fabs(out1[i]-resR1[i]) / fabs(out1[i])) < 3e-16 ); - else assert(1); - } - - printf(" >>> Matrice 2*6 <<< \n"); - dfftma(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-16 ); - 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])) < 3e-16 ); - 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])) < 3e-16 ); - 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])) < 3e-16 ); - 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])) < 3e-16 ); - 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]))) < 3e-16 ); - else assert(1); - if (zimags(out1[i])>1e-16) assert( (fabs(zimags(out1[i])+resI1[i]) / fabs(zimags(out1[i]))) < 3e-16 ); - else assert(1); - } - - printf(" >>> Matrice 2*6 <<< \n"); - zfftma(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-16 ); - 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"); - 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]))) < 3e-16 ); - else assert(1); - if (zimags(out3[i])>1e-16) assert( (fabs(zimags(out3[i])+resI3[i]) / fabs(zimags(out3[i]))) < 3e-16 ); - 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]))) < 3e-16 ); - else assert(1); - if (zimags(out4[i])>1e-16) assert( (fabs(zimags(out4[i])+resI4[i]) / fabs(zimags(out4[i]))) < 3e-16 ); - 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]))) < 3e-16 ); - else assert(1); - if (zimags(out6[i])>1e-16) assert( (fabs(zimags(out6[i])+resI6[i]) / fabs(zimags(out6[i]))) < 3e-16 ); - 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]))) < 3e-16 ); - else assert(1); - - if (zimags(out9[i])>1e-16) assert( (fabs(zimags(out9[i])-resI9[i]) / fabs(zimags(out9[i]))) < 3e-16 ); - 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/signalProcessing/fft/test_DoubleFft/testDoubleFft.vcproj b/src/signalProcessing/fft/test_DoubleFft/testDoubleFft.vcproj deleted file mode 100644 index fb6e013e..00000000 --- a/src/signalProcessing/fft/test_DoubleFft/testDoubleFft.vcproj +++ /dev/null @@ -1,213 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9,00"
- Name="testDoubleFft"
- ProjectGUID="{DBD206E6-F7F2-4C00-83F0-2AAAB90A6C72}"
- RootNamespace="testDoubleFft"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../../includes;../../../type;../../includes;../../../operations/includes"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- OutputFile="$(SolutionDir)bin\$(ProjectName).exe"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../../../includes;../../../type;../../includes;../../../operations/includes"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- OutputFile="$(SolutionDir)bin\$(ProjectName).exe"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath="..\testDoubleFft.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/src/signalProcessing/fft/test_FloatFft/testFloatFft.vcproj b/src/signalProcessing/fft/test_FloatFft/testFloatFft.vcproj deleted file mode 100644 index a3291344..00000000 --- a/src/signalProcessing/fft/test_FloatFft/testFloatFft.vcproj +++ /dev/null @@ -1,213 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9,00"
- Name="testFloatFft"
- ProjectGUID="{EDE2F70A-E2A0-45B6-A9C7-E3E62409AF95}"
- RootNamespace="testFloatFft"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../../includes;../../../type;../../includes;../../../operations/includes"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- OutputFile="$(SolutionDir)bin\$(ProjectName).exe"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../../../includes;../../../type;../../includes;../../../operations/includes"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- OutputFile="$(SolutionDir)bin\$(ProjectName).exe"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath="..\testFloatFft.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/src/signalProcessing/fft/test_MatFft/testMatFft.vcproj b/src/signalProcessing/fft/test_MatFft/testMatFft.vcproj deleted file mode 100644 index bcc97722..00000000 --- a/src/signalProcessing/fft/test_MatFft/testMatFft.vcproj +++ /dev/null @@ -1,213 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9,00"
- Name="testMatFft"
- ProjectGUID="{A7A46527-B5F9-4B92-9C46-2416E2432314}"
- RootNamespace="testMatFft"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../../includes;../../../type;../../includes;../../../operations/includes"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- OutputFile="$(SolutionDir)bin\$(ProjectName).exe"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../../../includes;../../../type;../../includes;../../../operations/includes"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- OutputFile="$(SolutionDir)bin\$(ProjectName).exe"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath="..\testMatFft.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/src/signalProcessing/fft/zfftma.c b/src/signalProcessing/fft/zfftma.c deleted file mode 100644 index 67369226..00000000 --- a/src/signalProcessing/fft/zfftma.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab - * Copyright (C) 2008 - INRIA - Allan SIMON - * - * This file must be used under the terms of the CeCILL. - * This source file is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at - * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt - * - */ -#define FFT842 1 -#define DFFT2 0 - -#include <malloc.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, 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, log(rows + 0.5) / log(2.0)) ; - colsTemp = (int) pow(2.0 ,log(cols + 0.5) / log(2.0)) ; - - if ( rows == rowsTemp) - { - if ( rows <= pow(2.0, 15.0)) - { - for ( i = 0 ; i < cols ; i++ ) - { - 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); - -} |