summaryrefslogtreecommitdiff
path: root/src/statisticsFunctions
diff options
context:
space:
mode:
authortorset2009-01-27 13:37:01 +0000
committertorset2009-01-27 13:37:01 +0000
commit144963c0581158c31732e77e26823f40923c3ecb (patch)
treee6392978e4dd51d0a3a15cf58eca369d2c2687c2 /src/statisticsFunctions
parent389138519aba9337322cb1ac753b01584d50357c (diff)
downloadscilab2c-144963c0581158c31732e77e26823f40923c3ecb.tar.gz
scilab2c-144963c0581158c31732e77e26823f40923c3ecb.tar.bz2
scilab2c-144963c0581158c31732e77e26823f40923c3ecb.zip
Debug Variance(tests without Nono aren't used in the makefile)
Diffstat (limited to 'src/statisticsFunctions')
-rw-r--r--src/statisticsFunctions/variance/Makefile.am14
-rw-r--r--src/statisticsFunctions/variance/Makefile.in97
-rw-r--r--src/statisticsFunctions/variance/ccolumnvariancea.c12
-rw-r--r--src/statisticsFunctions/variance/crowvariancea.c18
-rw-r--r--src/statisticsFunctions/variance/cvariancea.c24
-rw-r--r--src/statisticsFunctions/variance/dcolumnvariancea.c17
-rw-r--r--src/statisticsFunctions/variance/scolumnvariancea.c11
-rw-r--r--src/statisticsFunctions/variance/srowvariancea.c11
-rw-r--r--src/statisticsFunctions/variance/svariancea.c12
-rw-r--r--src/statisticsFunctions/variance/testDoubleVariance.c47
-rw-r--r--src/statisticsFunctions/variance/testDoubleVarianceNono.c407
-rw-r--r--src/statisticsFunctions/variance/testFloatVarianceNono.c353
-rw-r--r--src/statisticsFunctions/variance/zcolumnvariancea.c13
-rw-r--r--src/statisticsFunctions/variance/zrowvariancea.c17
-rw-r--r--src/statisticsFunctions/variance/zvariancea.c21
15 files changed, 783 insertions, 291 deletions
diff --git a/src/statisticsFunctions/variance/Makefile.am b/src/statisticsFunctions/variance/Makefile.am
index 41d2cb9b..4ca50fa3 100644
--- a/src/statisticsFunctions/variance/Makefile.am
+++ b/src/statisticsFunctions/variance/Makefile.am
@@ -73,20 +73,16 @@ check_LDADD = $(top_builddir)/type/libDoubleComplex.la \
$(top_builddir)/auxiliaryFunctions/conj/libConj.la \
@LIBMATH@
-check_PROGRAMS = testFloatVariance testDoubleVariance testDoubleVarianceNono
+check_PROGRAMS = testFloatVarianceNono testDoubleVarianceNono
-TESTS = testFloatVariance testDoubleVariance testDoubleVarianceNono
+TESTS = testFloatVarianceNono testDoubleVarianceNono
#
# -*- Variance Tests -*-
#
-testFloatVariance_SOURCES = testFloatVariance.c
-testFloatVariance_CFLAGS = $(check_INCLUDES)
-testFloatVariance_LDADD = $(check_LDADD)
-
-testDoubleVariance_SOURCES =testDoubleVariance.c
-testDoubleVariance_CFLAGS = $(check_INCLUDES)
-testDoubleVariance_LDADD = $(check_LDADD)
+testFloatVarianceNono_SOURCES = testFloatVarianceNono.c
+testFloatVarianceNono_CFLAGS = $(check_INCLUDES)
+testFloatVarianceNono_LDADD = $(check_LDADD)
testDoubleVarianceNono_SOURCES =testDoubleVarianceNono.c
testDoubleVarianceNono_CFLAGS = $(check_INCLUDES)
diff --git a/src/statisticsFunctions/variance/Makefile.in b/src/statisticsFunctions/variance/Makefile.in
index b02ade09..b58b56fc 100644
--- a/src/statisticsFunctions/variance/Makefile.in
+++ b/src/statisticsFunctions/variance/Makefile.in
@@ -32,10 +32,9 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-check_PROGRAMS = testFloatVariance$(EXEEXT) \
- testDoubleVariance$(EXEEXT) testDoubleVarianceNono$(EXEEXT)
-TESTS = testFloatVariance$(EXEEXT) testDoubleVariance$(EXEEXT) \
+check_PROGRAMS = testFloatVarianceNono$(EXEEXT) \
testDoubleVarianceNono$(EXEEXT)
+TESTS = testFloatVarianceNono$(EXEEXT) testDoubleVarianceNono$(EXEEXT)
subdir = statisticsFunctions/variance
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -70,9 +69,9 @@ libVariance_la_OBJECTS = $(am_libVariance_la_OBJECTS)
libVariance_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libVariance_la_CFLAGS) \
$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-am_testDoubleVariance_OBJECTS = \
- testDoubleVariance-testDoubleVariance.$(OBJEXT)
-testDoubleVariance_OBJECTS = $(am_testDoubleVariance_OBJECTS)
+am_testDoubleVarianceNono_OBJECTS = \
+ testDoubleVarianceNono-testDoubleVarianceNono.$(OBJEXT)
+testDoubleVarianceNono_OBJECTS = $(am_testDoubleVarianceNono_OBJECTS)
am__DEPENDENCIES_1 = $(top_builddir)/type/libDoubleComplex.la \
$(top_builddir)/type/libFloatComplex.la \
$(top_builddir)/operations/addition/libAddition.la \
@@ -97,27 +96,19 @@ am__DEPENDENCIES_1 = $(top_builddir)/type/libDoubleComplex.la \
$(top_builddir)/operations/multiplication/libMultiplication.la \
$(top_builddir)/operations/division/libDivision.la \
$(top_builddir)/auxiliaryFunctions/conj/libConj.la
-testDoubleVariance_DEPENDENCIES = $(am__DEPENDENCIES_1)
-testDoubleVariance_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) \
- $(testDoubleVariance_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-am_testDoubleVarianceNono_OBJECTS = \
- testDoubleVarianceNono-testDoubleVarianceNono.$(OBJEXT)
-testDoubleVarianceNono_OBJECTS = $(am_testDoubleVarianceNono_OBJECTS)
testDoubleVarianceNono_DEPENDENCIES = $(am__DEPENDENCIES_1)
testDoubleVarianceNono_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(testDoubleVarianceNono_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
-am_testFloatVariance_OBJECTS = \
- testFloatVariance-testFloatVariance.$(OBJEXT)
-testFloatVariance_OBJECTS = $(am_testFloatVariance_OBJECTS)
-testFloatVariance_DEPENDENCIES = $(am__DEPENDENCIES_1)
-testFloatVariance_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+am_testFloatVarianceNono_OBJECTS = \
+ testFloatVarianceNono-testFloatVarianceNono.$(OBJEXT)
+testFloatVarianceNono_OBJECTS = $(am_testFloatVarianceNono_OBJECTS)
+testFloatVarianceNono_DEPENDENCIES = $(am__DEPENDENCIES_1)
+testFloatVarianceNono_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) \
- $(testFloatVariance_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
- -o $@
+ $(testFloatVarianceNono_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
@@ -130,10 +121,11 @@ CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
-SOURCES = $(libVariance_la_SOURCES) $(testDoubleVariance_SOURCES) \
- $(testDoubleVarianceNono_SOURCES) $(testFloatVariance_SOURCES)
-DIST_SOURCES = $(libVariance_la_SOURCES) $(testDoubleVariance_SOURCES) \
- $(testDoubleVarianceNono_SOURCES) $(testFloatVariance_SOURCES)
+SOURCES = $(libVariance_la_SOURCES) $(testDoubleVarianceNono_SOURCES) \
+ $(testFloatVarianceNono_SOURCES)
+DIST_SOURCES = $(libVariance_la_SOURCES) \
+ $(testDoubleVarianceNono_SOURCES) \
+ $(testFloatVarianceNono_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -310,12 +302,9 @@ check_LDADD = $(top_builddir)/type/libDoubleComplex.la \
#
# -*- Variance Tests -*-
#
-testFloatVariance_SOURCES = testFloatVariance.c
-testFloatVariance_CFLAGS = $(check_INCLUDES)
-testFloatVariance_LDADD = $(check_LDADD)
-testDoubleVariance_SOURCES = testDoubleVariance.c
-testDoubleVariance_CFLAGS = $(check_INCLUDES)
-testDoubleVariance_LDADD = $(check_LDADD)
+testFloatVarianceNono_SOURCES = testFloatVarianceNono.c
+testFloatVarianceNono_CFLAGS = $(check_INCLUDES)
+testFloatVarianceNono_LDADD = $(check_LDADD)
testDoubleVarianceNono_SOURCES = testDoubleVarianceNono.c
testDoubleVarianceNono_CFLAGS = $(check_INCLUDES)
testDoubleVarianceNono_LDADD = $(check_LDADD)
@@ -388,15 +377,12 @@ clean-checkPROGRAMS:
echo " rm -f $$p $$f"; \
rm -f $$p $$f ; \
done
-testDoubleVariance$(EXEEXT): $(testDoubleVariance_OBJECTS) $(testDoubleVariance_DEPENDENCIES)
- @rm -f testDoubleVariance$(EXEEXT)
- $(testDoubleVariance_LINK) $(testDoubleVariance_OBJECTS) $(testDoubleVariance_LDADD) $(LIBS)
testDoubleVarianceNono$(EXEEXT): $(testDoubleVarianceNono_OBJECTS) $(testDoubleVarianceNono_DEPENDENCIES)
@rm -f testDoubleVarianceNono$(EXEEXT)
$(testDoubleVarianceNono_LINK) $(testDoubleVarianceNono_OBJECTS) $(testDoubleVarianceNono_LDADD) $(LIBS)
-testFloatVariance$(EXEEXT): $(testFloatVariance_OBJECTS) $(testFloatVariance_DEPENDENCIES)
- @rm -f testFloatVariance$(EXEEXT)
- $(testFloatVariance_LINK) $(testFloatVariance_OBJECTS) $(testFloatVariance_LDADD) $(LIBS)
+testFloatVarianceNono$(EXEEXT): $(testFloatVarianceNono_OBJECTS) $(testFloatVarianceNono_DEPENDENCIES)
+ @rm -f testFloatVarianceNono$(EXEEXT)
+ $(testFloatVarianceNono_LINK) $(testFloatVarianceNono_OBJECTS) $(testFloatVarianceNono_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -416,9 +402,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libVariance_la-zcolumnvariancea.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libVariance_la-zrowvariancea.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libVariance_la-zvariancea.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDoubleVariance-testDoubleVariance.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDoubleVarianceNono-testDoubleVarianceNono.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFloatVariance-testFloatVariance.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFloatVarianceNono-testFloatVarianceNono.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -525,20 +510,6 @@ libVariance_la-zcolumnvariancea.lo: zcolumnvariancea.c
@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) $(libVariance_la_CFLAGS) $(CFLAGS) -c -o libVariance_la-zcolumnvariancea.lo `test -f 'zcolumnvariancea.c' || echo '$(srcdir)/'`zcolumnvariancea.c
-testDoubleVariance-testDoubleVariance.o: testDoubleVariance.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleVariance_CFLAGS) $(CFLAGS) -MT testDoubleVariance-testDoubleVariance.o -MD -MP -MF $(DEPDIR)/testDoubleVariance-testDoubleVariance.Tpo -c -o testDoubleVariance-testDoubleVariance.o `test -f 'testDoubleVariance.c' || echo '$(srcdir)/'`testDoubleVariance.c
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/testDoubleVariance-testDoubleVariance.Tpo $(DEPDIR)/testDoubleVariance-testDoubleVariance.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleVariance.c' object='testDoubleVariance-testDoubleVariance.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) $(testDoubleVariance_CFLAGS) $(CFLAGS) -c -o testDoubleVariance-testDoubleVariance.o `test -f 'testDoubleVariance.c' || echo '$(srcdir)/'`testDoubleVariance.c
-
-testDoubleVariance-testDoubleVariance.obj: testDoubleVariance.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleVariance_CFLAGS) $(CFLAGS) -MT testDoubleVariance-testDoubleVariance.obj -MD -MP -MF $(DEPDIR)/testDoubleVariance-testDoubleVariance.Tpo -c -o testDoubleVariance-testDoubleVariance.obj `if test -f 'testDoubleVariance.c'; then $(CYGPATH_W) 'testDoubleVariance.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleVariance.c'; fi`
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/testDoubleVariance-testDoubleVariance.Tpo $(DEPDIR)/testDoubleVariance-testDoubleVariance.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleVariance.c' object='testDoubleVariance-testDoubleVariance.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) $(testDoubleVariance_CFLAGS) $(CFLAGS) -c -o testDoubleVariance-testDoubleVariance.obj `if test -f 'testDoubleVariance.c'; then $(CYGPATH_W) 'testDoubleVariance.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleVariance.c'; fi`
-
testDoubleVarianceNono-testDoubleVarianceNono.o: testDoubleVarianceNono.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleVarianceNono_CFLAGS) $(CFLAGS) -MT testDoubleVarianceNono-testDoubleVarianceNono.o -MD -MP -MF $(DEPDIR)/testDoubleVarianceNono-testDoubleVarianceNono.Tpo -c -o testDoubleVarianceNono-testDoubleVarianceNono.o `test -f 'testDoubleVarianceNono.c' || echo '$(srcdir)/'`testDoubleVarianceNono.c
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/testDoubleVarianceNono-testDoubleVarianceNono.Tpo $(DEPDIR)/testDoubleVarianceNono-testDoubleVarianceNono.Po
@@ -553,19 +524,19 @@ testDoubleVarianceNono-testDoubleVarianceNono.obj: testDoubleVarianceNono.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleVarianceNono_CFLAGS) $(CFLAGS) -c -o testDoubleVarianceNono-testDoubleVarianceNono.obj `if test -f 'testDoubleVarianceNono.c'; then $(CYGPATH_W) 'testDoubleVarianceNono.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleVarianceNono.c'; fi`
-testFloatVariance-testFloatVariance.o: testFloatVariance.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatVariance_CFLAGS) $(CFLAGS) -MT testFloatVariance-testFloatVariance.o -MD -MP -MF $(DEPDIR)/testFloatVariance-testFloatVariance.Tpo -c -o testFloatVariance-testFloatVariance.o `test -f 'testFloatVariance.c' || echo '$(srcdir)/'`testFloatVariance.c
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/testFloatVariance-testFloatVariance.Tpo $(DEPDIR)/testFloatVariance-testFloatVariance.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatVariance.c' object='testFloatVariance-testFloatVariance.o' libtool=no @AMDEPBACKSLASH@
+testFloatVarianceNono-testFloatVarianceNono.o: testFloatVarianceNono.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatVarianceNono_CFLAGS) $(CFLAGS) -MT testFloatVarianceNono-testFloatVarianceNono.o -MD -MP -MF $(DEPDIR)/testFloatVarianceNono-testFloatVarianceNono.Tpo -c -o testFloatVarianceNono-testFloatVarianceNono.o `test -f 'testFloatVarianceNono.c' || echo '$(srcdir)/'`testFloatVarianceNono.c
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/testFloatVarianceNono-testFloatVarianceNono.Tpo $(DEPDIR)/testFloatVarianceNono-testFloatVarianceNono.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatVarianceNono.c' object='testFloatVarianceNono-testFloatVarianceNono.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) $(testFloatVariance_CFLAGS) $(CFLAGS) -c -o testFloatVariance-testFloatVariance.o `test -f 'testFloatVariance.c' || echo '$(srcdir)/'`testFloatVariance.c
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatVarianceNono_CFLAGS) $(CFLAGS) -c -o testFloatVarianceNono-testFloatVarianceNono.o `test -f 'testFloatVarianceNono.c' || echo '$(srcdir)/'`testFloatVarianceNono.c
-testFloatVariance-testFloatVariance.obj: testFloatVariance.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatVariance_CFLAGS) $(CFLAGS) -MT testFloatVariance-testFloatVariance.obj -MD -MP -MF $(DEPDIR)/testFloatVariance-testFloatVariance.Tpo -c -o testFloatVariance-testFloatVariance.obj `if test -f 'testFloatVariance.c'; then $(CYGPATH_W) 'testFloatVariance.c'; else $(CYGPATH_W) '$(srcdir)/testFloatVariance.c'; fi`
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/testFloatVariance-testFloatVariance.Tpo $(DEPDIR)/testFloatVariance-testFloatVariance.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatVariance.c' object='testFloatVariance-testFloatVariance.obj' libtool=no @AMDEPBACKSLASH@
+testFloatVarianceNono-testFloatVarianceNono.obj: testFloatVarianceNono.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatVarianceNono_CFLAGS) $(CFLAGS) -MT testFloatVarianceNono-testFloatVarianceNono.obj -MD -MP -MF $(DEPDIR)/testFloatVarianceNono-testFloatVarianceNono.Tpo -c -o testFloatVarianceNono-testFloatVarianceNono.obj `if test -f 'testFloatVarianceNono.c'; then $(CYGPATH_W) 'testFloatVarianceNono.c'; else $(CYGPATH_W) '$(srcdir)/testFloatVarianceNono.c'; fi`
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/testFloatVarianceNono-testFloatVarianceNono.Tpo $(DEPDIR)/testFloatVarianceNono-testFloatVarianceNono.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatVarianceNono.c' object='testFloatVarianceNono-testFloatVarianceNono.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) $(testFloatVariance_CFLAGS) $(CFLAGS) -c -o testFloatVariance-testFloatVariance.obj `if test -f 'testFloatVariance.c'; then $(CYGPATH_W) 'testFloatVariance.c'; else $(CYGPATH_W) '$(srcdir)/testFloatVariance.c'; fi`
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatVarianceNono_CFLAGS) $(CFLAGS) -c -o testFloatVarianceNono-testFloatVarianceNono.obj `if test -f 'testFloatVarianceNono.c'; then $(CYGPATH_W) 'testFloatVarianceNono.c'; else $(CYGPATH_W) '$(srcdir)/testFloatVarianceNono.c'; fi`
mostlyclean-libtool:
-rm -f *.lo
diff --git a/src/statisticsFunctions/variance/ccolumnvariancea.c b/src/statisticsFunctions/variance/ccolumnvariancea.c
index d5472e6a..8bf55260 100644
--- a/src/statisticsFunctions/variance/ccolumnvariancea.c
+++ b/src/statisticsFunctions/variance/ccolumnvariancea.c
@@ -16,11 +16,19 @@
void ccolumnvariancea(floatComplex *in, int lines, int columns, floatComplex* out){
int i = 0 ;
+
+ floatComplex* transp = (floatComplex*) malloc ( sizeof (double) *(unsigned int) (lines*columns));
-
+
+ ctransposea ( in , lines , columns , transp ) ;
+
+
for ( i = 0; i < lines ; i++)
- out[i] = cvariancea ( in + i*columns , columns ) ;
+ out[i] = cvariancea ( transp + i*columns , columns ) ;
+
+
+ free (transp);
}
diff --git a/src/statisticsFunctions/variance/crowvariancea.c b/src/statisticsFunctions/variance/crowvariancea.c
index 22e05265..586b942e 100644
--- a/src/statisticsFunctions/variance/crowvariancea.c
+++ b/src/statisticsFunctions/variance/crowvariancea.c
@@ -15,24 +15,8 @@
void crowvariancea(floatComplex *in, int lines, int columns, floatComplex* out){
int i = 0 ;
-
-
-
- floatComplex* transp = (floatComplex*) malloc ( sizeof (floatComplex) *(unsigned int) (lines*columns));
- /*FIXME : NEED TO REVIEW TRANSPOSE COMPLEX FONCTIONS , they need to not do the conjugate
- automaticaly */
- ctransposea ( in , lines , columns , transp ) ;
-
- for ( i = 0 ; i < columns *lines ; i++)
- transp[i] = FloatComplex ( creals (transp[i] ) , cimags(transp[i]));
for ( i = 0; i < columns ; i++)
- {
-
-
- out[i] = cvariancea ( transp + i*lines , lines ) ;
- }
-
- free (transp);
+ out[i] = cvariancea ( in + i*lines , lines) ;
}
diff --git a/src/statisticsFunctions/variance/cvariancea.c b/src/statisticsFunctions/variance/cvariancea.c
index 5eb30567..9d43928d 100644
--- a/src/statisticsFunctions/variance/cvariancea.c
+++ b/src/statisticsFunctions/variance/cvariancea.c
@@ -16,35 +16,21 @@ floatComplex cvariancea(floatComplex *in, int size)
{
int i = 0 ;
- /*here sumcis used to compensate the possible round off error to a less
- important degree */
-
floatComplex sum = FloatComplex ( 0 , 0 ) ;
floatComplex temp = FloatComplex ( 0 , 0 ) ;
- floatComplex sumc = FloatComplex ( 0 , 0 ) ;
floatComplex variance = FloatComplex ( 0 , 0 );
floatComplex mean = cmeana ( in , size ) ;
for ( i = 0 ; i < size ; i++)
{
-
temp = cdiffs( in[i] , mean ) ;
- sum = cadds ( sum , cpows ( temp , FloatComplex ( 2.0f, 0) ) );
- sumc = cadds ( sumc , temp );
- printf ( "%d r : %e i : %e\n" , i , creals(in[i]) , cimags (in[i]));
- }
- printf ( "\n\n" ) ;
- /*we don't use sumc if equal to 0 otherwise we would have "nan" */
- if ( fabs ( creals ( sumc)) > 1e-08 || fabs ( cimags ( sumc)) > 1e-08 )
- {
- variance = cpows ( sumc ,FloatComplex (2.0f , 0)) ;
- variance = crdivs ( variance , FloatComplex ((float) size , 0 ) ) ;
- variance = cdiffs ( sum , variance );
- variance = crdivs (variance , FloatComplex ((float) (size - 1),0 ));
+ sum = cadds ( sum , cpows ( temp , FloatComplex ( 2, 0) ) );
}
- else
- variance = crdivs (sum , FloatComplex ((float) (size - 1),0 ));
+
+ variance = crdivs (sum , FloatComplex ( (float)(size - 1),0 ));
return variance ;
+
+
}
diff --git a/src/statisticsFunctions/variance/dcolumnvariancea.c b/src/statisticsFunctions/variance/dcolumnvariancea.c
index 42c12560..2a8e89b0 100644
--- a/src/statisticsFunctions/variance/dcolumnvariancea.c
+++ b/src/statisticsFunctions/variance/dcolumnvariancea.c
@@ -15,27 +15,14 @@
void dcolumnvariancea(double *in, int lines, int columns, double* out){
int i = 0 ;
- int j = 0 ;
double* transp = (double*) malloc ( sizeof (double) *(unsigned int) (lines*columns));
-
-
- for ( i = 0; i < 5 ; i++){
- for ( j = 0; j < 4 ; j++)
- printf("%f ",in[i+j*lines]);
- printf("\n");
- }
+
dtransposea ( in , lines , columns , transp ) ;
-
- for ( i = 0; i < 4 ; i++){
- for ( j = 0; j < 5 ; j++)
- printf("%f ",transp[i+j*columns]);
- printf("\n");
- }
-
+
for ( i = 0; i < lines ; i++)
out[i] = dvariancea ( transp + i*columns , columns ) ;
diff --git a/src/statisticsFunctions/variance/scolumnvariancea.c b/src/statisticsFunctions/variance/scolumnvariancea.c
index c57ed1e2..2c0ec08d 100644
--- a/src/statisticsFunctions/variance/scolumnvariancea.c
+++ b/src/statisticsFunctions/variance/scolumnvariancea.c
@@ -17,9 +17,18 @@
void scolumnvariancea(float *in, int lines, int columns, float* out){
int i = 0 ;
+ float* transp = (float*) malloc ( sizeof (floatComplex) *(unsigned int) (lines*columns));
+
+
+
+ stransposea ( in , lines , columns , transp ) ;
+
for ( i = 0; i < lines ; i++)
- out[i] = svariancea ( in + i*columns , columns ) ;
+ out[i] = svariancea ( transp + i*columns , columns ) ;
+
+
+ free (transp);
}
diff --git a/src/statisticsFunctions/variance/srowvariancea.c b/src/statisticsFunctions/variance/srowvariancea.c
index ad30d54f..5f6ae304 100644
--- a/src/statisticsFunctions/variance/srowvariancea.c
+++ b/src/statisticsFunctions/variance/srowvariancea.c
@@ -15,14 +15,7 @@
void srowvariancea(float *in, int lines, int columns, float* out){
int i = 0 ;
-
- float* transp = (float*) malloc ( sizeof (float) *(unsigned int) (lines*columns));
-
- stransposea ( in , lines , columns , transp ) ;
-
- for ( i = 0; i < columns ; i++)
- out[i] = svariancea ( transp + i*lines , lines ) ;
-
- free (transp);
+ for ( i = 0; i < columns ; i++)
+ out[i] = svariancea ( in + i*lines , lines ) ;
}
diff --git a/src/statisticsFunctions/variance/svariancea.c b/src/statisticsFunctions/variance/svariancea.c
index d5c03205..426fc454 100644
--- a/src/statisticsFunctions/variance/svariancea.c
+++ b/src/statisticsFunctions/variance/svariancea.c
@@ -17,22 +17,18 @@ float svariancea(float *in, int size)
int i = 0 ;
float temp = 0 ;
- float sumc = 0 ;
float variance = 0;
float mean = smeana ( in , size );
for ( i = 0 ; i < size ; i++)
{
-
- temp += spows ( (in[i] - mean ) ,2.0f ) ;
- sumc += (in[i] - mean);
+ temp += spows ( (in[i] - mean ) ,2 ) ;
}
- if ( fabs ( sumc) > 1e-08)
- variance = (float) ( temp - spows( sumc,2.0f)/(float)size)/(float) ( size -1);
- else
- variance = (float) ( temp )/(float) ( size -1);
+
+ variance = ( temp )/ (float)( size -1);
+
return variance ;
}
diff --git a/src/statisticsFunctions/variance/testDoubleVariance.c b/src/statisticsFunctions/variance/testDoubleVariance.c
index 66f313e1..16320479 100644
--- a/src/statisticsFunctions/variance/testDoubleVariance.c
+++ b/src/statisticsFunctions/variance/testDoubleVariance.c
@@ -34,11 +34,14 @@
0.031808692031,0.706323316786,0.008731670678,0.270014822017,0.153652121313}
-#define MATRIXROW {0.168824942350,0.072908122527,0.057987977092,0.149998975703,0.085086319404,\
-0.108508638451,0.096937985957,0.107281660264,0.091363871817,0.128577818421}
-
-#define MATRIXCOL { 0.123307827428,0.123213594199,0.054037725959,0.092551230301,0.055505564488,\
-0.127629921958,0.138516743375 }
+#define MATRIXROW {0.1688249423502767021521 , 0.0729081225272336097554 , 0.0579879770921138057438 , 0.1499989757031960635469 , 0.0850863194040760717485 , 0.1085086384507867873772 , 0.0969379859569881041637 , 0.1072816602642319844252 , 0.0913638718167188862429 , 0.1285778184208021535095 }
+#define MATRIXCOL { 0.1233078274276283442523, \
+ 0.1232135941992091865416 , \
+ 0.0540377259589001762707 , \
+ 0.0925512303008872161403 , \
+ 0.0555055644879708723338 , \
+ 0.1276299219577190779962 , \
+ 0.1385167433745558840386 }
#define IMATRIX {0.05826747464016080,0.99946373142302036,0.85600351681932807,0.62329693790525198,\
@@ -158,7 +161,7 @@ static void zcolumnvariancesTest (void ) {
static void dvarianceaTest ( void){
double mtoTest[] = MATRIX ;
- double result = 0.100753297434;
+ double result = 0.1007532974338590653352;
double out = dvariancea ( mtoTest , LINES*COLUMNS ); ;
@@ -167,7 +170,7 @@ static void dvarianceaTest ( void){
- assert ( fabs ( out - result ) / fabs( out ) < 1e-11 ) ;
+ assert ( fabs ( out - result ) / fabs( out ) < 1e-15 ) ;
}
@@ -177,15 +180,15 @@ static void drowvarianceaTest ( void )
int i = 0 ;
double mtoTest[] = MATRIX ;
- double result[COLUMNS] = MATRIXROW ;
- double out[COLUMNS] ;
+ double result[LINES] = MATRIXCOL ;
+ double out[LINES] ;
- drowvariancea ( mtoTest , LINES , COLUMNS , out ) ;
+ drowvariancea ( mtoTest , COLUMNS , LINES , out ) ;
- for ( i = 0 ; i < COLUMNS ; i++)
+ for ( i = 0 ; i < LINES ; i++)
{
printf ( "ROWout : %1.20f\t result : %1.20f\t\n" , out[i] , result [i] ) ;
- assert ( fabs ( out[i] - result[i] ) / fabs( out[i] ) < 1e-16 ) ;
+ assert ( fabs ( out[i] - result[i] ) / fabs( out[i] ) < 1e-15 ) ;
}
}
@@ -195,19 +198,19 @@ static void dcolumnvarianceaTest ( void )
int i = 0 ;
double mtoTest[] = MATRIX ;
- double result[LINES] = MATRIXCOL ;
- double out[ LINES] ;
+ double result[COLUMNS] = MATRIXROW ;
+ double out[ COLUMNS] ;
- dcolumnvariancea ( mtoTest , LINES , COLUMNS , out ) ;
+ dcolumnvariancea ( mtoTest , COLUMNS, LINES , out ) ;
- for ( i = 0 ; i < LINES ; i++)
+ for ( i = 0 ; i < COLUMNS; i++)
{
printf ( "%dCOLout : %1.20f\t result : %1.20f\t\n" ,i, out[i] , result [i] ) ; }
- for ( i = 0 ; i < LINES ; i++)
+ for ( i = 0 ; i < COLUMNS; i++)
{
- assert ( fabs ( out[i] - result[i] ) / fabs( out[i] ) < 1e-16 ) ;
+ assert ( fabs ( out[i] - result[i] ) / fabs( out[i] ) < 1e-15 ) ;
}
}
@@ -224,8 +227,8 @@ static void zvarianceaTest ( void){
doubleComplex* mtoTest = DoubleComplexMatrix ( rmtoTest , imtoTest , LINES*COLUMNS ) ;
doubleComplex out = zvariancea ( mtoTest , LINES*COLUMNS ); ;
- assert ( fabs( zreals(out) - zreals (Result) ) / fabs (zreals (out)) < 1e-16 );
- assert( fabs( zimags(out) - zimags (Result )) / fabs (zimags (out)) < 1e-16 );
+ assert ( fabs( zreals(out) - zreals (Result) ) / fabs (zreals (out)) < 1e-11 );
+ assert( fabs( zimags(out) - zimags (Result )) / fabs (zimags (out)) < 1e-11 );
}
@@ -275,8 +278,8 @@ static void zcolumnvarianceaTest ( void) {
for ( i = 0 ; i < LINES ; i++)
{
printf ( "%d out : %e %e \t result %e %e \n" , i , zreals(out[i]) , zimags(out[i]), zreals(Result[i]) ,zimags( Result[i]));
- assert ( fabs( zreals(out[i]) - zreals (Result[i]) ) / fabs (zreals (out[i])) < 1e-16 );
- assert( fabs( zimags(out[i]) - zimags (Result[i])) / fabs (zimags (out[i])) < 1e-16);
+ assert ( fabs( zreals(out[i]) - zreals (Result[i]) ) / fabs (zreals (out[i])) < 1e-11 );
+ assert( fabs( zimags(out[i]) - zimags (Result[i])) / fabs (zimags (out[i])) < 1e-11);
}
diff --git a/src/statisticsFunctions/variance/testDoubleVarianceNono.c b/src/statisticsFunctions/variance/testDoubleVarianceNono.c
index 4e1f425a..e1047238 100644
--- a/src/statisticsFunctions/variance/testDoubleVarianceNono.c
+++ b/src/statisticsFunctions/variance/testDoubleVarianceNono.c
@@ -13,107 +13,334 @@
#include "variance.h"
#include "assert.h"
-static int test(void){
- double matrice[20]={1,5,9,4,8,2,6,1,5,9,3,7,2,6,1,4,8,3,7,2};
- double out, *outColumns, *outRows;
- double out2, *outColumns2, *outRows2;
- double result= 7.5026315789473692063893;
- double resultColumns[5]= {1.6666666666666667406815 ,1.6666666666666667406815 ,12.916666666666666074548 ,1.6666666666666667406815 ,16.666666666666667850905};
- double resultRows[4]={10.300000000000000710543 , 10.300000000000000710543 , 6.7000000000000001776357 , 6.7000000000000001776357};
+static int doubleVariance(void){
+
+ int i;
+
+
+ /*test 1 */
+ {
+ double matrice[20]={1,5,9,4,8,2,6,1,5,9,3,7,2,6,1,4,8,3,7,2};
+ double out, *outColumns, *outRows;
+ double result= 7.5026315789473692063893;
+ double resultColumns[5]= {1.6666666666666667406815 ,1.6666666666666667406815 ,12.916666666666666074548 ,1.6666666666666667406815 ,16.666666666666667850905};
+ double resultRows[4]={10.300000000000000710543 , 10.300000000000000710543 , 6.7000000000000001776357 , 6.7000000000000001776357};
+
+
+
+ outColumns= malloc((uint)5*sizeof(double));
+ outRows= malloc((uint)4*sizeof(double));
+
+ out = dvariancea(matrice,20);
+ drowvariancea(matrice,5,4,outRows);
+ dcolumnvariancea(matrice,5,4,outColumns);
+
+
+ printf("Variance \n");
+ printf("%f\n",out);
+ printf("Row Variance \n");
+ for (i=0;i<4;i++) printf("%f\n",outRows[i]);
+ printf("Column Variance \n");
+ for (i=0;i<5;i++) printf("%f\n",outColumns[i]);
+
+
+ assert(fabs(out-result)/fabs(out) <1e-16);
+ for (i=0;i<4;i++)assert(fabs(outRows[i]-resultRows[i])/fabs(outRows[i]) <1e-16);
+
+ for (i=0;i<5;i++)assert(fabs(outColumns[i]-resultColumns[i])/fabs(outColumns[i]) <1e-16);
+
+ }
+
+
+ /* test 2 */
+
+ {
+ double mtovar[70]={0.2113248654641211032867,0.7560438541695475578308,0.0002211346291005611420,
+ 0.3303270917385816574097,0.6653811042197048664093,0.6283917883411049842835,
+ 0.8497452358715236186981,
+ 0.6857310198247432708740,0.8782164813019335269928,0.0683740368112921714783,
+ 0.5608486062847077846527,0.6623569373041391372681,0.7263506767340004444122,
+ 0.1985143842175602912903,
+ 0.5442573162727057933807,0.2320747897028923034668,0.2312237196601927280426,
+ 0.2164632631465792655945,0.8833887814544141292572,0.6525134947150945663452,
+ 0.3076090742833912372589,
+ 0.9329616213217377662659,0.2146007861010730266571,0.3126419968903064727783,
+ 0.3616361008025705814362,0.2922266637906432151794,0.5664248815737664699554,
+ 0.4826471973210573196411,
+ 0.3321718913502991199493,0.5935094701126217842102,0.5015341597609221935272,
+ 0.4368587583303451538086,0.2693124809302389621735,0.6325744865462183952332,
+ 0.4051954015158116817474,
+ 0.9184707831591367721558,0.0437334333546459674835,0.4818508932366967201233,
+ 0.2639556000940501689911,0.4148103706538677215576,0.2806498021818697452545,
+ 0.1280058464035391807556,
+ 0.7783128595910966396332,0.2119030449539422988892,0.1121354666538536548615,
+ 0.6856895955279469490051,0.1531216683797538280487,0.6970850601792335510254,
+ 0.8415518426336348056793,
+ 0.4062024755403399467468,0.4094825475476682186127,0.8784125801175832748413,
+ 0.1138359685428440570831,0.1998337740078568458557,0.5618660743348300457001,
+ 0.5896177329123020172119,
+ 0.6853979662992060184479,0.8906224733218550682068,0.5042212805710732936859,
+ 0.3493615407496690750122,0.3873778772540390491486,0.9222898678854107856751,
+ 0.9488184261135756969452,
+ 0.3435337245464324951172,0.3760118731297552585602,0.7340940563008189201355,
+ 0.2615761472843587398529,0.4993493836373090744019,0.2638578419573605060577,
+ 0.5253563085570931434631};
+ double out2, *outColumns2, *outRows2;
+ double result2= 0.0651863337585355667736 ;
+ double resultColumns2[7]= {0.0650391675869589902526 ,
+ 0.0913789208052724344356 ,
+ 0.0837863718398224738282 ,
+ 0.0281545517812518443501 ,
+ 0.0549594706400152802073 ,
+ 0.0389978730537587012228 ,
+ 0.0796657637071630925218 ,
+ };
+ double resultRows2[10]={0.0988544518240001696130 , 0.0874673050908554156058 , 0.0678199050579095519264, 0.0591380787668954188696 , 0.0175386373980947855855 ,0.0831815708684833926556 , 0.1035239817400336881370 , 0.0657802543744439444096 , 0.0667446022405332184402 , 0.0287884625084994134891};
+
+
+ outColumns2= malloc((uint)7*sizeof(double));
+ outRows2= malloc((uint)10*sizeof(double));
+
+
+
+ out2 = dvariancea(mtovar,70);
+ drowvariancea(mtovar,7,10,outRows2);
+ dcolumnvariancea(mtovar,7,10,outColumns2);
+
+
+ printf("Variance 2 \n");
+ printf("%f\n",out2);
+ printf("Row Variance 2 \n");
+ for (i=0;i<10;i++) printf("%f\n",outRows2[i]);
+ printf("Column Variance 2 \n");
+ for (i=0;i<7;i++) printf("%f\n",outColumns2[i]);
+
+ assert(fabs(out2-result2)/fabs(out2) <1e-16);
+ for (i=0;i<10;i++)assert(fabs(outRows2[i]-resultRows2[i])/fabs(outRows2[i]) <1e-16);
+
+ for (i=0;i<7;i++)assert(fabs(outColumns2[i]-resultColumns2[i])/fabs(outColumns2[i]) <1e-16);
+
+ }
+
+
+ return 0;
+}
+
+
+static int doubleComplexVariance(void){
int i;
- double mtovar[70]={0.2113248654641211032867,0.7560438541695475578308,0.0002211346291005611420,
- 0.3303270917385816574097,0.6653811042197048664093,0.6283917883411049842835,
- 0.8497452358715236186981,
-0.6857310198247432708740,0.8782164813019335269928,0.0683740368112921714783,
- 0.5608486062847077846527,0.6623569373041391372681,0.7263506767340004444122,
- 0.1985143842175602912903,
-0.5442573162727057933807,0.2320747897028923034668,0.2312237196601927280426,
- 0.2164632631465792655945,0.8833887814544141292572,0.6525134947150945663452,
- 0.3076090742833912372589,
-0.9329616213217377662659,0.2146007861010730266571,0.3126419968903064727783,
- 0.3616361008025705814362,0.2922266637906432151794,0.5664248815737664699554,
- 0.4826471973210573196411,
-0.3321718913502991199493,0.5935094701126217842102,0.5015341597609221935272,
- 0.4368587583303451538086,0.2693124809302389621735,0.6325744865462183952332,
- 0.4051954015158116817474,
-0.9184707831591367721558,0.0437334333546459674835,0.4818508932366967201233,
- 0.2639556000940501689911,0.4148103706538677215576,0.2806498021818697452545,
- 0.1280058464035391807556,
-0.7783128595910966396332,0.2119030449539422988892,0.1121354666538536548615,
- 0.6856895955279469490051,0.1531216683797538280487,0.6970850601792335510254,
- 0.8415518426336348056793,
-0.4062024755403399467468,0.4094825475476682186127,0.8784125801175832748413,
- 0.1138359685428440570831,0.1998337740078568458557,0.5618660743348300457001,
- 0.5896177329123020172119,
-0.6853979662992060184479,0.8906224733218550682068,0.5042212805710732936859,
- 0.3493615407496690750122,0.3873778772540390491486,0.9222898678854107856751,
- 0.9488184261135756969452,
-0.3435337245464324951172,0.3760118731297552585602,0.7340940563008189201355,
- 0.2615761472843587398529,0.4993493836373090744019,0.2638578419573605060577,
- 0.5253563085570931434631};
- double result2= 0.0651863337585355667736 ;
- double resultColumns2[7]= {0.0650391675869589902526 ,
- 0.0913789208052724344356 ,
- 0.0837863718398224738282 ,
- 0.0281545517812518443501 ,
- 0.0549594706400152802073 ,
- 0.0389978730537587012228 ,
- 0.0796657637071630925218 ,
- };
- double resultRows2[10]={0.0988544518240001696130 , 0.0874673050908554156058 , 0.0678199050579095519264, 0.0591380787668954188696 , 0.0175386373980947855855 ,0.0831815708684833926556 , 0.1035239817400336881370 , 0.0657802543744439444096 , 0.0667446022405332184402 , 0.0287884625084994134891};
-
- outColumns= malloc((uint)5*sizeof(double));
- outRows= malloc((uint)4*sizeof(double));
- outColumns2= malloc((uint)7*sizeof(double));
- outRows2= malloc((uint)10*sizeof(double));
-
- out = dvariancea(matrice,20);
- drowvariancea(matrice,5,4,outRows);
- dcolumnvariancea(matrice,5,4,outColumns);
-
-
- printf("Variance \n");
- printf("%f\n",out);
- printf("Row Variance \n");
- for (i=0;i<4;i++) printf("%f\n",outRows[i]);
- printf("Column Variance \n");
- for (i=0;i<5;i++) printf("%f\n",outColumns[i]);
-
-
- assert(fabs(out-result)/fabs(out) <1e-16);
- for (i=0;i<4;i++)assert(fabs(outRows[i]-resultRows[i])/fabs(outRows[i]) <1e-16);
-
- for (i=0;i<5;i++)assert(fabs(outColumns[i]-resultColumns[i])/fabs(outColumns[i]) <1e-16);
-
-
-
- out2 = dvariancea(mtovar,70);
- drowvariancea(mtovar,7,10,outRows2);
- dcolumnvariancea(mtovar,7,10,outColumns2);
-
-
- printf("Variance 2 \n");
- printf("%f\n",out2);
- printf("Row Variance 2 \n");
- for (i=0;i<10;i++) printf("%f\n",outRows2[i]);
- printf("Column Variance 2 \n");
- for (i=0;i<7;i++) printf("%f\n",outColumns2[i]);
-
- assert(fabs(out2-result2)/fabs(out2) <1e-16);
- for (i=0;i<10;i++)assert(fabs(outRows2[i]-resultRows2[i])/fabs(outRows2[i]) <1e-16);
-
- for (i=0;i<7;i++)assert(fabs(outColumns2[i]-resultColumns2[i])/fabs(outColumns2[i]) <1e-16);
+ /* test 1 */
+ {
+ double inR[6]={0.9677053210325539112091,0.5068534435704350471497,0.523297640960663557053,0.5596947595477104187012,
+ 0.5617307000793516635895,0.468176002614200115204};
+ double inI[6]={0.7794546722434461116791,0.7901071812957525253296,0.9808542062528431415558,0.8187066102400422096252,
+ 0.4256872381083667278290,0.2461560554802417755127};
+ double varianceR=- 0.0428404140538702279950;
+ double varianceI=0.0257955584577409802183;
+ double rowVarianceR[3]={0.106135488505625180666,- 0.0124835463256454722719,- 0.01173948205902856229};
+ double rowVarianceI[3]={- 0.0049092287964376275095,- 0.0059017052806824826100,0.0167959854763351026929};
+ double colVarianceR[2]={- 0.0183554755457089394111,- 0.1019751767306446843531};
+ double colVarianceI[2]={0.0109267784648201249365,0.0249829946888768111846};
+ doubleComplex *in, *rowVariance, *colVariance;
+ doubleComplex out, *outRow, *outCol;
+
+ in= malloc ((uint)6*sizeof(doubleComplex));
+ outRow= malloc ((uint)3*sizeof(doubleComplex));
+ outCol= malloc ((uint)2*sizeof(doubleComplex));
+
+ in=DoubleComplexMatrix(inR,inI,6);
+ rowVariance=DoubleComplexMatrix(rowVarianceR,rowVarianceI,3);
+ colVariance=DoubleComplexMatrix(colVarianceR,colVarianceI,2);
+
+
+ out=zvariancea(in,6);
+ printf("Variance \n");
+ printf("%f + %f *i\n",zreals(out),zimags(out));
+
+ assert(fabs(zreals(out)-varianceR)/fabs(zreals(out)) <1e-15);
+ assert(fabs(zimags(out)-varianceI)/fabs(zimags(out)) <1e-15);
+
+
+
+
+
+ zrowvariancea(in,2,3,outRow);
+ printf("Row Variance \n");
+ for (i=0;i<3;i++) printf("%1.20f + %1.20f *i\n",zreals(outRow[i]),zimags(outRow[i]));
+
+
+ for (i=0;i<3;i++){
+ assert(fabs(zreals(outRow[i])-rowVarianceR[i])/fabs(zreals(outRow[i])) <1e-15);
+ assert(fabs(zimags(outRow[i])-rowVarianceI[i])/fabs(zimags(outRow[i])) <1e-14);
+ }
+
+
+
+ zcolumnvariancea(in,2,3,outCol);
+ printf("Column Variance \n");
+ for (i=0;i<2;i++) printf("%f + %f *i\n",zreals(outCol[i]),zimags(outCol[i]));
+
+
+ for (i=0;i<2;i++){
+ assert(fabs(zreals(outCol[i])-colVarianceR[i])/fabs(zreals(outCol[i])) <1e-15);
+ assert(fabs(zimags(outCol[i])-colVarianceI[i])/fabs(zimags(outCol[i])) <1e-15);
+ }
+
+
+
+ }
+
+
+ printf("\n");
+ printf("\n");
+ printf("\n");
+ printf("\n");
+
+
+ /* test 2 */
+ {
+ double inR[70]={0.0453502028249204158783,0.2029444333165884017944,0.7844273825176060199738,
+ 0.2637536162510514259338,0.4383276398293673992157,0.866485897451639175415,
+ 0.3792142109014093875885,0.7668716078624129295349,0.6006621322594583034515,
+ 0.7856735605746507644653,
+0.7387115550227463245392,0.5544260339811444282532,0.9929149555973708629608,
+ 0.9757428467273712158203,0.3709622272290289402008,0.3032238213345408439636,
+ 0.9519520117901265621185,0.7127858083695173263550,0.119237006176263093948,
+ 0.5009163180366158485413,
+0.3290053526870906352997,0.4808946810662746429443,0.3303695977665483951569,
+ 0.6304475357756018638611,0.2117190784774720668793,0.4486023131757974624634,
+ 0.5914509710855782032013,0.6806742670014500617981,0.0739296111278235912323,
+ 0.9433694705367088317871,
+0.1286330693401396274567,0.2019080771133303642273,0.1969303428195416927338,
+ 0.8928690161556005477905,0.4617918957956135272980,0.6251291716471314430237,
+ 0.7059706593863666057587,0.7018169648945331573486,0.4087999747134745121002,
+ 0.0636221384629607200623,
+0.0657393387518823146820,0.5331004131585359573364,0.0331581872887909412384,
+ 0.3157835649326443672180,0.3785823243670165538788,0.4619523435831069946289,
+ 0.6287369825877249240875,0.2878515301272273063660,0.3292048736475408077240,
+ 0.4719233047217130661011,
+0.3353769634850323200226,0.5553069720044732093811,0.1196080814115703105927,
+ 0.7613999657332897186279,0.4790988476015627384186,0.2816969295963644981384,
+ 0.2380097783170640468597,0.3294205460697412490845,0.2306728032417595386505,
+ 0.2136296601966023445129,
+0.4054998042993247509003,0.3095371201634407043457,0.6762971603311598300934,
+ 0.970691631548106670380,0.5441796570084989070892,0.0204747971147298812866,
+ 0.8941364963538944721222,0.3490363890305161476135,0.1105365152470767498016,
+ 0.2023377753794193267822};
+ double inI[70]={1.0377217042259871959686,1.9830380710773169994354,-0.6786614381708204746246,
+ -1.7368789152242243289948,0.6849579229019582271576,-1.9756898251362144947052, 0.9018773441202938556671,0.4113956945948302745819,0.0771432374604046344757,
+ -2.6145569621585309505463,
+-0.8694803346879780292511,1.1954508102498948574066,1.0175080369226634502411,
+ -1.86952689336612820625,1.6495719677768647670746,-1.1282413271255791187286,
+ 1.7159116868861019611359,1.3512618443928658962250,1.6467350018210709095001,
+ -4.3247690196149051189423,
+-1.1214177873916923999786,0.3549467395059764385223,1.5090364827774465084076,
+ 0.0271988785825669765472,-0.3927204073406755924225,-2.2866433826275169849396,
+ 2.4531399612314999103546,1.2140426929108798503876,0.1123848785646259784699,
+ -1.2278760573826730251312,
+0.5748759503476321697235,0.1001535071991384029388,0.7154782521538436412811,
+ -0.3598340046592056751251,0.1114491275511682033539,-1.0214430955238640308380,
+ 1.8411546354182064533234,1.3313704966567456722260,0.107393887359648942947,
+ -2.1405860441736876964569,
+-0.1921784919686615467072,-0.0941377175040543079376,-0.3007089742459356784821,
+ -1.6332105011679232120514,-0.9827875629998743534088,-4.0793808070011436939240,
+ 1.6021160488016903400421,0.5996482106857001781464,-1.0103867049328982830048,
+ -1.9795853956602513790131,
+-0.7019297261722385883331,0.1910370937548577785492,0.5148729826323688030243,
+ -1.2210475285537540912628,1.4409833527170121669769,-2.0624672439880669116974,
+ 2.2999203805811703205109,1.6434787488542497158051,-0.0813916879706084728241,
+ -4.3653216282837092876434,
+0.0896512451581656932831,1.4530082489363849163055,-0.1911182911135256290436,
+ -1.5278804996050894260406,-0.8655951828695833683014,-2.6959278550930321216583,
+ 1.089711368549615144730,0.2611377011053264141083,-0.0787748913280665874481,
+ -1.675187868531793355942};
+ double varianceR=- 2.3201230329620456949158;
+ double varianceI=0.0135359053960125846894;
+ double rowVarianceR[7]={- 2.1748250359163439071608,- 4.0055927597555047725564,- 1.9380991813636070375537,- 1.211164632384367667584,
+ - 2.3819157100812309302285,- 3.865411523472068289209,- 1.5488286339908912125907};
+ double rowVarianceI[7]={- 0.5161401892195496277083,- 0.0302397956223948334575,0.0072526988331105511632,0.2035074619460965072992,
+ - 0.0227578793067023492369,0.0176453877563822227048,0.2048099414748655033858};
+ double colVarianceR[10]={ - 0.5673920596394929072304,
+ - 0.6095831761740567733554,
+ - 0.4837275005370789138226,
+ - 0.4518709923747168399899,
+ - 1.1155710732654480210613,
+ - 0.9922425930742954092168,
+ - 0.2615272073355465187738,
+ - 0.2448899237808548345896,
+ - 0.5783271525148965253038,
+ - 1.4662540245146995498970 };
+ double colVarianceI[10]={ - 0.2519451287679840834066,
+ - 0.1132720366896080160801,
+ - 0.0393753052279357945720 ,
+ 0.0678956480014177715665 ,
+ 0.0165011281984272333012 ,
+ 0.1043646242921155153915 ,
+ - 0.0697520473529744805541 ,
+ 0.0395755738577838397929 ,
+ - 0.0906906077772287183558 ,
+ 0.2030521845859689644698 };
+ doubleComplex *in, *rowVariance, *colVariance;
+ doubleComplex out, *outRow, *outCol;
+
+ in= malloc ((uint)70*sizeof(doubleComplex));
+ outRow= malloc ((uint)7*sizeof(doubleComplex));
+ outCol= malloc ((uint)10*sizeof(doubleComplex));
+
+ in=DoubleComplexMatrix(inR,inI,70);
+ rowVariance=DoubleComplexMatrix(rowVarianceR,rowVarianceI,7);
+ colVariance=DoubleComplexMatrix(colVarianceR,colVarianceI,10);
+
+
+ out=zvariancea(in,70);
+ printf("Variance 2 \n");
+ printf("%f + %f *i\n",zreals(out),zimags(out));
+
+ assert(fabs(zreals(out)-varianceR)/fabs(zreals(out)) <1e-15);
+ assert(fabs(zimags(out)-varianceI)/fabs(zimags(out)) <1e-15);
+
+
+
+
+
+ zrowvariancea(in,10,7,outRow);
+ printf("Row Variance 2 \n");
+ for (i=0;i<7;i++) printf("%1.20f + %1.20f *i\n",zreals(outRow[i]),zimags(outRow[i]));
+
+
+ for (i=0;i<7;i++){
+ assert(fabs(zreals(outRow[i])-rowVarianceR[i])/fabs(zreals(outRow[i])) <1e-15);
+ assert(fabs(zimags(outRow[i])-rowVarianceI[i])/fabs(zimags(outRow[i])) <1e-13);
+ }
+
+
+
+ zcolumnvariancea(in,10,7,outCol);
+ printf("Column Variance 2 \n");
+ for (i=0;i<10;i++) printf("%f + %f *i\n",zreals(outCol[i]),zimags(outCol[i]));
+
+
+ for (i=0;i<10;i++){
+ assert(fabs(zreals(outCol[i])-colVarianceR[i])/fabs(zreals(outCol[i])) <1e-15);
+ assert(fabs(zimags(outCol[i])-colVarianceI[i])/fabs(zimags(outCol[i])) <1e-14);
+ }
+
+ }
return 0;
}
+
+
+
static int testDoubleVariance (void) {
printf("\n\n\n\n*********************\n");
printf("***** Double Tests Nono****\n");
printf("*********************\n");
- assert(test()==0);
+ assert(doubleVariance()==0);
+ assert(doubleComplexVariance()==0);
return 0;
diff --git a/src/statisticsFunctions/variance/testFloatVarianceNono.c b/src/statisticsFunctions/variance/testFloatVarianceNono.c
new file mode 100644
index 00000000..dff7d4e1
--- /dev/null
+++ b/src/statisticsFunctions/variance/testFloatVarianceNono.c
@@ -0,0 +1,353 @@
+/*
+ * 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
+ *
+ */
+
+#include "variance.h"
+#include "assert.h"
+
+static int floatVariance(void){
+
+ int i;
+
+
+ /*test 1 */
+ {
+ float matrice[20]={1.0f,5.0f,9.0f,4.0f,8.0f,2.0f,6.0f,1.0f,5.0f,9.0f,3.0f,7.0f,2.0f,6.0f,1.0f,4.0f,8.0f,3.0f,7.0f,2.0f};
+ float out, *outColumns, *outRows;
+ float result= 7.5026315789473692063893f;
+ float resultColumns[5]= {1.6666666666666667406815f ,1.6666666666666667406815f ,12.916666666666666074548f ,1.6666666666666667406815f ,16.666666666666667850905f};
+ float resultRows[4]={10.300000000000000710543f , 10.300000000000000710543f , 6.7000000000000001776357f , 6.7000000000000001776357f};
+
+
+
+ outColumns= malloc((uint)5*sizeof(float));
+ outRows= malloc((uint)4*sizeof(float));
+
+ out = svariancea(matrice,20);
+ srowvariancea(matrice,5,4,outRows);
+ scolumnvariancea(matrice,5,4,outColumns);
+
+
+ printf("Variance \n");
+ printf("%f\n",out);
+ printf("Row Variance \n");
+ for (i=0;i<4;i++) printf("%f\n",outRows[i]);
+ printf("Column Variance \n");
+ for (i=0;i<5;i++) printf("%f\n",outColumns[i]);
+
+
+ assert(fabs(out-result)/fabs(out) <1e-06);
+ for (i=0;i<4;i++)assert(fabs(outRows[i]-resultRows[i])/fabs(outRows[i]) <1e-06);
+
+ for (i=0;i<5;i++)assert(fabs(outColumns[i]-resultColumns[i])/fabs(outColumns[i]) <1e-06);
+
+ }
+
+
+ /* test 2 */
+
+ {
+ float mtovar[70]={0.2113248654641211032867f,0.7560438541695475578308f,0.0002211346291005611420f,
+ 0.3303270917385816574097f,0.6653811042197048664093f,0.6283917883411049842835f,
+ 0.8497452358715236186981f,
+ 0.6857310198247432708740f,0.8782164813019335269928f,0.0683740368112921714783f,
+ 0.5608486062847077846527f,0.6623569373041391372681f,0.7263506767340004444122f,
+ 0.1985143842175602912903f,
+ 0.5442573162727057933807f,0.2320747897028923034668f,0.2312237196601927280426f,
+ 0.2164632631465792655945f,0.8833887814544141292572f,0.6525134947150945663452f,
+ 0.3076090742833912372589f,
+ 0.9329616213217377662659f,0.2146007861010730266571f,0.3126419968903064727783f,
+ 0.3616361008025705814362f,0.2922266637906432151794f,0.5664248815737664699554f,
+ 0.4826471973210573196411f,
+ 0.3321718913502991199493f,0.5935094701126217842102f,0.5015341597609221935272f,
+ 0.4368587583303451538086f,0.2693124809302389621735f,0.6325744865462183952332f,
+ 0.4051954015158116817474f,
+ 0.9184707831591367721558f,0.0437334333546459674835f,0.4818508932366967201233f,
+ 0.2639556000940501689911f,0.4148103706538677215576f,0.2806498021818697452545f,
+ 0.1280058464035391807556f,
+ 0.7783128595910966396332f,0.2119030449539422988892f,0.1121354666538536548615f,
+ 0.6856895955279469490051f,0.1531216683797538280487f,0.6970850601792335510254f,
+ 0.8415518426336348056793f,
+ 0.4062024755403399467468f,0.4094825475476682186127f,0.8784125801175832748413f,
+ 0.1138359685428440570831f,0.1998337740078568458557f,0.5618660743348300457001f,
+ 0.5896177329123020172119f,
+ 0.6853979662992060184479f,0.8906224733218550682068f,0.5042212805710732936859f,
+ 0.3493615407496690750122f,0.3873778772540390491486f,0.9222898678854107856751f,
+ 0.9488184261135756969452f,
+ 0.3435337245464324951172f,0.3760118731297552585602f,0.7340940563008189201355f,
+ 0.2615761472843587398529f,0.4993493836373090744019f,0.2638578419573605060577f,
+ 0.5253563085570931434631f};
+ float out2, *outColumns2, *outRows2;
+ float result2= 0.0651863337585355667736f ;
+ float resultColumns2[7]= {0.0650391675869589902526f ,
+ 0.0913789208052724344356f ,
+ 0.0837863718398224738282f ,
+ 0.0281545517812518443501f ,
+ 0.0549594706400152802073f ,
+ 0.0389978730537587012228f ,
+ 0.0796657637071630925218f ,
+ };
+ float resultRows2[10]={0.0988544518240001696130f , 0.0874673050908554156058f , 0.0678199050579095519264f, 0.0591380787668954188696f , 0.0175386373980947855855f ,0.0831815708684833926556f , 0.1035239817400336881370f, 0.0657802543744439444096f , 0.0667446022405332184402f , 0.0287884625084994134891f};
+
+
+ outColumns2= malloc((uint)7*sizeof(float));
+ outRows2= malloc((uint)10*sizeof(float));
+
+
+
+ out2 = svariancea(mtovar,70);
+ srowvariancea(mtovar,7,10,outRows2);
+ scolumnvariancea(mtovar,7,10,outColumns2);
+
+
+ printf("Variance 2 \n");
+ printf("%f\n",out2);
+ printf("Row Variance 2 \n");
+ for (i=0;i<10;i++) printf("%f\n",outRows2[i]);
+ printf("Column Variance 2 \n");
+ for (i=0;i<7;i++) printf("%f\n",outColumns2[i]);
+
+ assert(fabs(out2-result2)/fabs(out2) <1e-06);
+ for (i=0;i<10;i++)assert(fabs(outRows2[i]-resultRows2[i])/fabs(outRows2[i]) <1e-06);
+
+ for (i=0;i<7;i++)assert(fabs(outColumns2[i]-resultColumns2[i])/fabs(outColumns2[i]) <1e-06);
+
+ }
+
+
+ return 0;
+}
+
+
+static int floatComplexVariance(void){
+ int i;
+
+ /* test 1 */
+ {
+ float inR[6]={0.9677053210325539112091f,0.5068534435704350471497f,0.523297640960663557053f,0.5596947595477104187012f,
+ 0.5617307000793516635895f,0.468176002614200115204f};
+ float inI[6]={0.7794546722434461116791f,0.7901071812957525253296f,0.9808542062528431415558f,0.8187066102400422096252f,
+ 0.4256872381083667278290f,0.2461560554802417755127f};
+ float varianceR=- 0.0428404140538702279950f;
+ float varianceI=0.0257955584577409802183f;
+ float rowVarianceR[3]={0.106135488505625180666f,- 0.0124835463256454722719f,- 0.01173948205902856229f};
+ float rowVarianceI[3]={- 0.0049092287964376275095f,- 0.0059017052806824826100f,0.0167959854763351026929f};
+ float colVarianceR[2]={- 0.0183554755457089394111f,- 0.1019751767306446843531f};
+ float colVarianceI[2]={0.0109267784648201249365f,0.0249829946888768111846f};
+ floatComplex *in, *rowVariance, *colVariance;
+ floatComplex out, *outRow, *outCol;
+
+ in= malloc ((uint)6*sizeof(floatComplex));
+ outRow= malloc ((uint)3*sizeof(floatComplex));
+ outCol= malloc ((uint)2*sizeof(floatComplex));
+
+ in=FloatComplexMatrix(inR,inI,6);
+ rowVariance=FloatComplexMatrix(rowVarianceR,rowVarianceI,3);
+ colVariance=FloatComplexMatrix(colVarianceR,colVarianceI,2);
+
+
+ out=cvariancea(in,6);
+ printf("Variance \n");
+ printf("%f + %f *i\n",creals(out),cimags(out));
+
+ assert(fabs(creals(out)-varianceR)/fabs(creals(out)) <1e-6);
+ assert(fabs(cimags(out)-varianceI)/fabs(cimags(out)) <1e-6);
+
+
+
+
+
+ crowvariancea(in,2,3,outRow);
+ printf("Row Variance \n");
+ for (i=0;i<3;i++) printf("%1.20f + %1.20f *i\n",creals(outRow[i]),cimags(outRow[i]));
+
+
+ for (i=0;i<3;i++){
+ assert(fabs(creals(outRow[i])-rowVarianceR[i])/fabs(creals(outRow[i])) <1e-6);
+ assert(fabs(cimags(outRow[i])-rowVarianceI[i])/fabs(cimags(outRow[i])) <1e-5);
+ }
+
+
+
+ ccolumnvariancea(in,2,3,outCol);
+ printf("Column Variance \n");
+ for (i=0;i<2;i++) printf("%f + %f *i\n",creals(outCol[i]),cimags(outCol[i]));
+
+
+ for (i=0;i<2;i++){
+ assert(fabs(creals(outCol[i])-colVarianceR[i])/fabs(creals(outCol[i])) <1e-6);
+ assert(fabs(cimags(outCol[i])-colVarianceI[i])/fabs(cimags(outCol[i])) <1e-5);
+ }
+
+
+
+ }
+
+
+ printf("\n");
+ printf("\n");
+ printf("\n");
+ printf("\n");
+
+
+ /* test 2 */
+ {
+ float inR[70]={0.0453502028249204158783f,0.2029444333165884017944f,0.7844273825176060199738f,
+ 0.2637536162510514259338f,0.4383276398293673992157f,0.866485897451639175415f,
+ 0.3792142109014093875885f,0.7668716078624129295349f,0.6006621322594583034515f,
+ 0.7856735605746507644653f,
+0.7387115550227463245392f,0.5544260339811444282532f,0.9929149555973708629608f,
+ 0.9757428467273712158203f,0.3709622272290289402008f,0.3032238213345408439636f,
+ 0.9519520117901265621185f,0.7127858083695173263550f,0.119237006176263093948f,
+ 0.5009163180366158485413f,
+0.3290053526870906352997f,0.4808946810662746429443f,0.3303695977665483951569f,
+ 0.6304475357756018638611f,0.2117190784774720668793f,0.4486023131757974624634f,
+ 0.5914509710855782032013f,0.6806742670014500617981f,0.0739296111278235912323f,
+ 0.9433694705367088317871f,
+0.1286330693401396274567f,0.2019080771133303642273f,0.1969303428195416927338f,
+ 0.8928690161556005477905f,0.4617918957956135272980f,0.6251291716471314430237f,
+ 0.7059706593863666057587f,0.7018169648945331573486f,0.4087999747134745121002f,
+ 0.0636221384629607200623f,
+0.0657393387518823146820f,0.5331004131585359573364f,0.0331581872887909412384f,
+ 0.3157835649326443672180f,0.3785823243670165538788f,0.4619523435831069946289f,
+ 0.6287369825877249240875f,0.2878515301272273063660f,0.3292048736475408077240f,
+ 0.4719233047217130661011f,
+0.3353769634850323200226f,0.5553069720044732093811f,0.1196080814115703105927f,
+ 0.7613999657332897186279f,0.4790988476015627384186f,0.2816969295963644981384f,
+ 0.2380097783170640468597f,0.3294205460697412490845f,0.2306728032417595386505f,
+ 0.2136296601966023445129f,
+0.4054998042993247509003f,0.3095371201634407043457f,0.6762971603311598300934f,
+ 0.970691631548106670380f,0.5441796570084989070892f,0.0204747971147298812866f,
+ 0.8941364963538944721222f,0.3490363890305161476135f,0.1105365152470767498016f,
+ 0.2023377753794193267822f};
+ float inI[70]={1.0377217042259871959686f,1.9830380710773169994354f,-0.6786614381708204746246f,
+ -1.7368789152242243289948f,0.6849579229019582271576f,-1.9756898251362144947052f, 0.9018773441202938556671f,0.4113956945948302745819f,0.0771432374604046344757f,
+ -2.6145569621585309505463f,
+-0.8694803346879780292511f,1.1954508102498948574066f,1.0175080369226634502411f,
+ -1.86952689336612820625f,1.6495719677768647670746f,-1.1282413271255791187286f,
+ 1.7159116868861019611359f,1.3512618443928658962250f,1.6467350018210709095001f,
+ -4.3247690196149051189423f,
+-1.1214177873916923999786f,0.3549467395059764385223f,1.5090364827774465084076f,
+ 0.0271988785825669765472f,-0.3927204073406755924225f,-2.2866433826275169849396f,
+ 2.4531399612314999103546f,1.2140426929108798503876f,0.1123848785646259784699f,
+ -1.2278760573826730251312f,
+0.5748759503476321697235f,0.1001535071991384029388f,0.7154782521538436412811f,
+ -0.3598340046592056751251f,0.1114491275511682033539f,-1.0214430955238640308380f,
+ 1.8411546354182064533234f,1.3313704966567456722260f,0.107393887359648942947f,
+ -2.1405860441736876964569f,
+-0.1921784919686615467072f,-0.0941377175040543079376f,-0.3007089742459356784821f,
+ -1.6332105011679232120514f,-0.9827875629998743534088f,-4.0793808070011436939240f,
+ 1.6021160488016903400421f,0.5996482106857001781464f,-1.0103867049328982830048f,
+ -1.9795853956602513790131f,
+-0.7019297261722385883331f,0.1910370937548577785492f,0.5148729826323688030243f,
+ -1.2210475285537540912628f,1.4409833527170121669769f,-2.0624672439880669116974f,
+ 2.2999203805811703205109f,1.6434787488542497158051f,-0.0813916879706084728241f,
+ -4.3653216282837092876434f,
+0.0896512451581656932831f,1.4530082489363849163055f,-0.1911182911135256290436f,
+ -1.5278804996050894260406f,-0.8655951828695833683014f,-2.6959278550930321216583f,
+ 1.089711368549615144730f,0.2611377011053264141083f,-0.0787748913280665874481f,
+ -1.675187868531793355942f};
+ float varianceR=- 2.3201230329620456949158f;
+ float varianceI=0.0135359053960125846894f;
+ float rowVarianceR[7]={- 2.1748250359163439071608f,- 4.0055927597555047725564f,- 1.9380991813636070375537f,- 1.211164632384367667584f,
+ - 2.3819157100812309302285f,- 3.865411523472068289209f,- 1.5488286339908912125907f};
+ float rowVarianceI[7]={- 0.5161401892195496277083f,- 0.0302397956223948334575f,0.0072526988331105511632f,0.2035074619460965072992f,
+ - 0.0227578793067023492369f,0.0176453877563822227048f,0.2048099414748655033858f};
+ float colVarianceR[10]={ - 0.5673920596394929072304f,
+ - 0.6095831761740567733554f,
+ - 0.4837275005370789138226f,
+ - 0.4518709923747168399899f,
+ - 1.1155710732654480210613f,
+ - 0.9922425930742954092168f,
+ - 0.2615272073355465187738f,
+ - 0.2448899237808548345896f,
+ - 0.5783271525148965253038f,
+ - 1.4662540245146995498970f };
+ float colVarianceI[10]={ - 0.2519451287679840834066f,
+ - 0.1132720366896080160801f,
+ - 0.0393753052279357945720f ,
+ 0.0678956480014177715665f ,
+ 0.0165011281984272333012f ,
+ 0.1043646242921155153915f ,
+ - 0.0697520473529744805541f ,
+ 0.0395755738577838397929f ,
+ - 0.0906906077772287183558f ,
+ 0.2030521845859689644698f };
+ floatComplex *in, *rowVariance, *colVariance;
+ floatComplex out, *outRow, *outCol;
+
+ in= malloc ((uint)70*sizeof(floatComplex));
+ outRow= malloc ((uint)7*sizeof(floatComplex));
+ outCol= malloc ((uint)10*sizeof(floatComplex));
+
+ in=FloatComplexMatrix(inR,inI,70);
+ rowVariance=FloatComplexMatrix(rowVarianceR,rowVarianceI,7);
+ colVariance=FloatComplexMatrix(colVarianceR,colVarianceI,10);
+
+
+ out=cvariancea(in,70);
+ printf("Variance 2 \n");
+ printf("%f + %f *i\n",creals(out),cimags(out));
+
+ assert(fabs(creals(out)-varianceR)/fabs(creals(out)) <1e-6);
+ assert(fabs(cimags(out)-varianceI)/fabs(cimags(out)) <1e-5);
+
+
+
+
+
+ crowvariancea(in,10,7,outRow);
+ printf("Row Variance 2 \n");
+ for (i=0;i<7;i++) printf("%1.20f + %1.20f *i\n",creals(outRow[i]),cimags(outRow[i]));
+
+
+ for (i=0;i<7;i++){
+ assert(fabs(creals(outRow[i])-rowVarianceR[i])/fabs(creals(outRow[i])) <1e-6);
+ assert(fabs(cimags(outRow[i])-rowVarianceI[i])/fabs(cimags(outRow[i])) <1e-4);
+ }
+
+
+
+ ccolumnvariancea(in,10,7,outCol);
+ printf("Column Variance 2 \n");
+ for (i=0;i<10;i++) printf("%f + %f *i\n",creals(outCol[i]),cimags(outCol[i]));
+
+
+ for (i=0;i<10;i++){
+ assert(fabs(creals(outCol[i])-colVarianceR[i])/fabs(creals(outCol[i])) <1e-6);
+ assert(fabs(cimags(outCol[i])-colVarianceI[i])/fabs(cimags(outCol[i])) <1e-5);
+ }
+
+ }
+
+ return 0;
+}
+
+
+
+
+
+static int testFloatVariance (void) {
+ printf("\n\n\n\n*********************\n");
+ printf("***** Float Tests Nono****\n");
+ printf("*********************\n");
+ assert(floatVariance()==0);
+ assert(floatComplexVariance()==0);
+
+
+ return 0;
+}
+
+int main(void) {
+ assert(testFloatVariance () == 0);
+ return 0;
+}
+
diff --git a/src/statisticsFunctions/variance/zcolumnvariancea.c b/src/statisticsFunctions/variance/zcolumnvariancea.c
index 793cf3be..bba80303 100644
--- a/src/statisticsFunctions/variance/zcolumnvariancea.c
+++ b/src/statisticsFunctions/variance/zcolumnvariancea.c
@@ -15,11 +15,20 @@
void zcolumnvariancea(doubleComplex *in, int lines, int columns, doubleComplex* out){
-
int i = 0 ;
+ doubleComplex* transp = (doubleComplex*) malloc ( sizeof (doubleComplex) *(unsigned int) (lines*columns));
+
+
+
+ ztransposea ( in , lines , columns , transp ) ;
+
+
for ( i = 0; i < lines ; i++)
- out[i] = zvariancea ( in + i*columns , columns ) ;
+ out[i] = zvariancea ( transp + i*columns , columns ) ;
+
+
+ free (transp);
}
diff --git a/src/statisticsFunctions/variance/zrowvariancea.c b/src/statisticsFunctions/variance/zrowvariancea.c
index a268c0e6..285889aa 100644
--- a/src/statisticsFunctions/variance/zrowvariancea.c
+++ b/src/statisticsFunctions/variance/zrowvariancea.c
@@ -15,22 +15,7 @@
void zrowvariancea(doubleComplex *in, int lines, int columns, doubleComplex* out){
int i = 0 ;
-
-
- doubleComplex* transp = (doubleComplex*) malloc ( sizeof (doubleComplex) *(unsigned int) (lines*columns));
- /*FIXME : NEED TO REVIEW TRANSPOSE COMPLEX FONCTIONS , they need to not do the conjugate
- automaticaly */
- ztransposea ( in , lines , columns , transp ) ;
-
- for ( i = 0 ; i < columns *lines ; i++)
- transp[i] = DoubleComplex ( zreals (transp[i] ) , zimags(transp[i]));
for ( i = 0; i < columns ; i++)
- {
-
-
- out[i] = zvariancea ( transp + i*lines , lines ) ;
- }
-
- free (transp);
+ out[i] = zvariancea ( in + i*lines , lines ) ;
}
diff --git a/src/statisticsFunctions/variance/zvariancea.c b/src/statisticsFunctions/variance/zvariancea.c
index 17dabe59..a1b65278 100644
--- a/src/statisticsFunctions/variance/zvariancea.c
+++ b/src/statisticsFunctions/variance/zvariancea.c
@@ -16,35 +16,20 @@ doubleComplex zvariancea(doubleComplex *in, int size)
{
int i = 0 ;
- /*here sumcis used to compensate the possible round off error to a less
- important degree */
-
doubleComplex sum = DoubleComplex ( 0 , 0 ) ;
doubleComplex temp = DoubleComplex ( 0 , 0 ) ;
- doubleComplex sumc = DoubleComplex ( 0 , 0 ) ;
doubleComplex variance = DoubleComplex ( 0 , 0 );
doubleComplex mean = zmeana ( in , size ) ;
for ( i = 0 ; i < size ; i++)
{
-
temp = zdiffs( in[i] , mean ) ;
sum = zadds ( sum , zpows ( temp , DoubleComplex ( 2, 0) ) );
- sumc = zadds ( sumc , temp );
- printf ( "%d r : %e i : %e\n" , i , zreals(in[i]) , zimags (in[i]));
}
- printf ( "\n\n" ) ;
- /*we don't use sumc if equal to 0 otherwise we would have "nan" */
- if ( fabs ( zreals ( sumc)) > 1e-16 || fabs ( zimags ( sumc)) > 1e-16 )
- {
- variance = zpows ( sumc ,DoubleComplex (2 , 0)) ;
- variance = zrdivs ( variance , DoubleComplex ( size , 0 ) ) ;
- variance = zdiffs ( sum , variance );
- variance = zrdivs (variance , DoubleComplex ( (size - 1),0 ));
- }
- else
- variance = zrdivs (sum , DoubleComplex ( (size - 1),0 ));
+
+ variance = zrdivs (sum , DoubleComplex ( (size - 1),0 ));
return variance ;
+
}