summaryrefslogtreecommitdiff
path: root/src/c/statisticsFunctions/variancef
diff options
context:
space:
mode:
Diffstat (limited to 'src/c/statisticsFunctions/variancef')
-rw-r--r--src/c/statisticsFunctions/variancef/ccolumnvariancefa.c3
-rw-r--r--src/c/statisticsFunctions/variancef/cvariancefa.c11
-rw-r--r--src/c/statisticsFunctions/variancef/dcolumnvariancefa.c1
-rw-r--r--src/c/statisticsFunctions/variancef/dvariancefa.c2
-rw-r--r--src/c/statisticsFunctions/variancef/srowvariancefa.c6
-rw-r--r--src/c/statisticsFunctions/variancef/testDoubleVariancef.c48
-rw-r--r--src/c/statisticsFunctions/variancef/testFloatVariancef.c54
-rw-r--r--src/c/statisticsFunctions/variancef/zcolumnvariancefa.c3
-rw-r--r--src/c/statisticsFunctions/variancef/zrowvariancefa.c2
-rw-r--r--src/c/statisticsFunctions/variancef/zvariancefa.c11
10 files changed, 69 insertions, 72 deletions
diff --git a/src/c/statisticsFunctions/variancef/ccolumnvariancefa.c b/src/c/statisticsFunctions/variancef/ccolumnvariancefa.c
index bda397d9..4b00a087 100644
--- a/src/c/statisticsFunctions/variancef/ccolumnvariancefa.c
+++ b/src/c/statisticsFunctions/variancef/ccolumnvariancefa.c
@@ -12,8 +12,9 @@
#include "variancef.h"
+#include "matrixTranspose.h"
-void ccolumnvariancea(floatComplex *in1, int lines, int columns,floatComplex *in2, floatComplex* out){
+void ccolumnvariancefa(floatComplex *in1, int lines, int columns,floatComplex *in2, floatComplex* out){
int i = 0 ;
diff --git a/src/c/statisticsFunctions/variancef/cvariancefa.c b/src/c/statisticsFunctions/variancef/cvariancefa.c
index 71f29be8..4f4871c6 100644
--- a/src/c/statisticsFunctions/variancef/cvariancefa.c
+++ b/src/c/statisticsFunctions/variancef/cvariancefa.c
@@ -19,18 +19,17 @@ floatComplex cvariancefa(floatComplex *in1, int size, floatComplex *in2)
int i = 0 ;
floatComplex temp = FloatComplex (0.0f, 0.0f );
floatComplex accumulate =FloatComplex (0.0f, 0.0f );
- float accumulateFre = 0.0f;
+ floatComplex accumulateFre = FloatComplex (0.0f, 0.0f );
floatComplex meanf = cmeanfa (in1 , size , in2);
- //printf("\n\tComplex meanf result : %lf \t+ %lf i " ,creals( meanf) ,cimags( meanf)) ;
+
for(i = 0 ; i < size ; ++i)
{
temp = cpows ( cdiffs (in1[i] , meanf ) ,FloatComplex (2.0f, 0.0f ) );
temp = cmuls( in2[i] , temp);
- //printf("\n\tComplex accumulate : %lf \t+ %lf i " ,creals(temp) ,cimags(temp)) ;
+
accumulate = cadds( temp , accumulate);
- accumulateFre += creals(in2[i]);
+ accumulateFre = cadds (in2[i] ,accumulateFre );
}
-//printf("\n\tComplex division result : %lf \t+ %lf i / %lf " ,creals(accumulate) ,cimags(accumulate),accumulateFre) ;
- return FloatComplex( creals(accumulate) /(accumulateFre -1), cimags(accumulate) /(accumulateFre -1));
+ return crdivs (accumulate , cdiffs (accumulateFre ,FloatComplex(1.0f,0.0f)) );
}
diff --git a/src/c/statisticsFunctions/variancef/dcolumnvariancefa.c b/src/c/statisticsFunctions/variancef/dcolumnvariancefa.c
index 39a32565..686e6de4 100644
--- a/src/c/statisticsFunctions/variancef/dcolumnvariancefa.c
+++ b/src/c/statisticsFunctions/variancef/dcolumnvariancefa.c
@@ -11,6 +11,7 @@
*/
#include "variancef.h"
+#include "matrixTranspose.h"
void dcolumnvariancefa(double *in1, int lines, int columns, double *in2, double* out){
diff --git a/src/c/statisticsFunctions/variancef/dvariancefa.c b/src/c/statisticsFunctions/variancef/dvariancefa.c
index 7ca40663..32bd38ca 100644
--- a/src/c/statisticsFunctions/variancef/dvariancefa.c
+++ b/src/c/statisticsFunctions/variancef/dvariancefa.c
@@ -23,7 +23,7 @@ double dvariancefa(double *in1, int size , double * in2)
for(i = 0 ; i < size ; ++i)
{
- temp = spows ( (in1[i] - meanf ) ,2 );
+ temp = dpows ( (in1[i] - meanf ) ,2 );
temp *= in2[i];
accumulate += temp ;
diff --git a/src/c/statisticsFunctions/variancef/srowvariancefa.c b/src/c/statisticsFunctions/variancef/srowvariancefa.c
index 26f55336..36c4783d 100644
--- a/src/c/statisticsFunctions/variancef/srowvariancefa.c
+++ b/src/c/statisticsFunctions/variancef/srowvariancefa.c
@@ -10,12 +10,12 @@
*
*/
-#include "variance.h"
+#include "variancef.h"
-void srowvariancea(float *in, int lines, int columns, float* out){
+void srowvariancefa(float *in1, int lines, int columns, float *in2, float* out){
int i = 0 ;
for ( i = 0; i < columns ; i++)
- out[i] = svariancefa ( in + i*lines , lines ) ;
+ out[i] = svariancefa ( in1 + i*lines , lines,in2 + i*lines ) ;
}
diff --git a/src/c/statisticsFunctions/variancef/testDoubleVariancef.c b/src/c/statisticsFunctions/variancef/testDoubleVariancef.c
index 2e7ecac3..1102ae18 100644
--- a/src/c/statisticsFunctions/variancef/testDoubleVariancef.c
+++ b/src/c/statisticsFunctions/variancef/testDoubleVariancef.c
@@ -21,16 +21,14 @@
#define ERROR(x) printf("diff = %e\n", x)
static int dvariancefsTest(void) {
- double value1 = 3.0;
- double value2 = 1.123456789f;
- double coef1 = 56.0 ;
- double coef2 = 2.0 ;
+
printf("\n>>>> variancef Double Scalar Test\n");
- printf("result : %lf " ,dvariancefs(value1,coef1)) ;
+ printf("result : %e " ,dvariancefs(value1,coef1)) ;
- assert( ( dvariancefs(value1,coef1) ) == 0.0 );
- assert( ( dvariancefs(value2,coef2) ) == 0.0 );
+ assert( ( dvariancefs(3.0,56.0) ) == 0.0 );
+ assert( ( dvariancefs( 1.123456789 ,2.0) ) == 0.0 );
+
return 0;
}
@@ -52,14 +50,14 @@ static int dvariancefaTest(void) {
7.0};
printf("\n>>>> variancef Double Array Test\n");
- printf("result1 : %lf " ,dvariancefa(table1, 3, coef1)) ;
- printf("result2 : %lf " ,dvariancefa(table2, 5, coef2)) ;
+ printf("result1 : %e " ,dvariancefa(table1, 3, coef1)) ;
+ printf("result2 : %e " ,dvariancefa(table2, 5, coef2)) ;
assert((dvariancefa(table1, 3, coef1) - 8.000000000 )/ dvariancefa(table1, 3 ,coef1) < 1e-6);
assert((dvariancefa(table2, 5, coef2) - 1.916666666 )/ dvariancefa(table2, 5 ,coef2) < 1e-6);
return 0;
}
-
+/*
static int dcolumnvariancefaTest(void) {
int i = 0;
double table1[9] = {1.0, 4.0, 7.0, 2.0 , 5.0, 8.0, 3.0, 6.0, 9.0};
@@ -73,7 +71,7 @@ static int dcolumnvariancefaTest(void) {
double columnMeanmedTable2_5_2[5] = {0};
printf("\n>>>> Column Variancef Double Array Test\n");
- /*
+
[ 1 2 3 ] [10 11 12 ]
[ 4 5 6 ].*[ 1 2 3 ] => [ 68 32 146 ]
[ 7 8 9 ] [ 5 6 7 ]
@@ -82,15 +80,15 @@ static int dcolumnvariancefaTest(void) {
assert( ( fabs(columnMeanmedTable1_3_3[0] ) - ( 68.0 / 33.0 ) ) / fabs ( columnMeanmedTable1_3_3[0] ) < 1e-6 );
assert( ( fabs(columnMeanmedTable1_3_3[1] ) - ( 32.0 / 6.0 ) ) / fabs ( columnMeanmedTable1_3_3[1] ) < 1e-6 );
assert( ( fabs(columnMeanmedTable1_3_3[2] ) - ( 146.0 / 18.0 ) ) / fabs ( columnMeanmedTable1_3_3[2] ) < 1e-6 );
-*/
- /*
+
+
[ 1 2 3 4 5 6 7 8 9 ] => [ 45 ]
- */
+
dcolumnvariancefa(table1, 1, 9, coef1 ,columnMeanmedTable1_1_9);
- printf("result qui foire : %lf\n " ,columnMeanmedTable1_1_9[0]) ;
+ printf("result qui foire : %e\n " ,columnMeanmedTable1_1_9[0]) ;
assert( ( fabs(columnMeanmedTable1_1_9[0] ) - ( 1.146666666f ) ) / fabs ( columnMeanmedTable1_1_9[0] ) < 1e-6 );
- /*
+
[ 1 ]
[ 2 ]
[ 3 ]
@@ -135,10 +133,10 @@ static int dcolumnvariancefaTest(void) {
for ( i = 0 ; i < 5 ; ++i) {
printf("columnMeanmedTable2_5_2[%d] = %e\n", i, columnMeanmedTable2_5_2[i]);
}
-*/
+
return 0;
}
-
+*/
/*
static int srowvariancefaTest(void) {
int i = 0;
@@ -209,16 +207,12 @@ static int srowvariancefaTest(void) {
*/
static int zvariancefsTest(void) {
- doubleComplex value1 = DoubleComplex(3.0, 3.0);
- doubleComplex coef1 = DoubleComplex(3.0, 0.0);
- doubleComplex value2 = DoubleComplex(1.123456789, 1.123456789);
- doubleComplex coef2 = DoubleComplex(9.0, 0.0);
printf("\n>>>> Mean Double Complex Scalar Test\n");
- assert( zreals(zvariancefs(value1,coef1)) == 0.0 );
- assert( zimags(zvariancefs(value1,coef1)) == 0.0 );
- assert( zreals(zvariancefs(value2,coef2)) == 0.0 );
- assert( zimags(zvariancefs(value2,coef2)) == 0.0 );
+ assert( zreals(zvariancefs(DoubleComplex(3.0, 0.0),DoubleComplex(3.0, 0.0))) == 0.0 );
+ assert( zimags(zvariancefs(DoubleComplex(3.0, 0.0),DoubleComplex(3.0, 0.0))) == 0.0 );
+ assert( zreals(zvariancefs(DoubleComplex(1.123456789, 1.123456789),DoubleComplex(9.0, 0.0))) == 0.0 );
+ assert( zimags(zvariancefs(DoubleComplex(1.123456789, 1.123456789),DoubleComplex(9.0, 0.0))) == 0.0 );
return 0;
}
@@ -238,7 +232,7 @@ static int zvariancefaTest(void) {
printf("\n>>>> Mean Double Complex Array Test\n");
result = zvariancefa(table1, 9, coef1);
- /*printf("\nresult : %lf \t+ %lf i " ,zreals(result) ,zimags(result)) ;*/
+ /*printf("\nresult : %e \t+ %e i " ,zreals(result) ,zimags(result)) ;*/
assert( fabs(zreals(result) - ( 1.3834586f ) ) / fabs ( zreals(result) ) < 1e-6 );
assert( fabs(zimags(result) - ( 9.6090226f ) ) / fabs ( zimags(result) ) < 1e-6 );
diff --git a/src/c/statisticsFunctions/variancef/testFloatVariancef.c b/src/c/statisticsFunctions/variancef/testFloatVariancef.c
index c4b58c66..4363052e 100644
--- a/src/c/statisticsFunctions/variancef/testFloatVariancef.c
+++ b/src/c/statisticsFunctions/variancef/testFloatVariancef.c
@@ -20,17 +20,22 @@
#define ERROR(x) printf("diff = %e\n", x)
+
+ #define VALUE1 3.0f
+ #define VALUE2 1.123456789f
+ #define COEF1 56.0f
+ #define COEF2 2.0f
+
+
static int svariancefsTest(void) {
- float value1 = 3.0f;
- float value2 = 1.123456789f;
- float coef1 = 56.0f ;
- float coef2 = 2.0f ;
printf("\n>>>> variancef Float Scalar Test\n");
- printf("result : %lf " ,svariancefs(value1,coef1)) ;
+ printf("result : %e " ,svariancefs(VALUE1,COEF1)) ;
+
+ assert( ( svariancefs(VALUE1,COEF1) ) == 0.0f );
+ assert( ( svariancefs(VALUE2,COEF2) ) == 0.0f );
+
- assert( ( svariancefs(value1,coef1) ) == 0.0f );
- assert( ( svariancefs(value2,coef2) ) == 0.0f );
return 0;
}
@@ -52,14 +57,14 @@ static int svariancefaTest(void) {
7.0f};
printf("\n>>>> variancef Float Array Test\n");
- printf("result : %lf " ,svariancefa(table1, 3, coef1)) ;
- printf("result : %lf " ,svariancefa(table2, 5, coef2)) ;
+ printf("result : %e " ,svariancefa(table1, 3, coef1)) ;
+ printf("result : %e " ,svariancefa(table2, 5, coef2)) ;
assert(svariancefa(table1, 3, coef1) == 8.0f);
assert((svariancefa(table2, 5, coef2) - 1.916666666 )/ svariancefa(table2, 5 ,coef2) < 1e-6);
return 0;
}
-
+/*
static int scolumnvariancefaTest(void) {
int i = 0;
float table1[9] = {1.0f, 4.0f, 7.0f, 2.0f , 5.0f, 8.0f, 3.0f, 6.0f, 9.0f};
@@ -73,7 +78,7 @@ static int scolumnvariancefaTest(void) {
float columnMeanmedTable2_5_2[5] = {0};
printf("\n>>>> Column Variancef Float Array Test\n");
- /*
+
[ 1 2 3 ] [10 11 12 ]
[ 4 5 6 ].*[ 1 2 3 ] => [ 68 32 146 ]
[ 7 8 9 ] [ 5 6 7 ]
@@ -82,15 +87,15 @@ static int scolumnvariancefaTest(void) {
assert( ( fabs(columnMeanmedTable1_3_3[0] ) - ( 68.0f / 33.0f ) ) / fabs ( columnMeanmedTable1_3_3[0] ) < 1e-6 );
assert( ( fabs(columnMeanmedTable1_3_3[1] ) - ( 32.0f / 6.0f ) ) / fabs ( columnMeanmedTable1_3_3[1] ) < 1e-6 );
assert( ( fabs(columnMeanmedTable1_3_3[2] ) - ( 146.0f / 18.0f ) ) / fabs ( columnMeanmedTable1_3_3[2] ) < 1e-6 );
-*/
- /*
+
+
[ 1 2 3 4 5 6 7 8 9 ] => [ 45 ]
- */
+
scolumnvariancefa(table1, 1, 9, coef1 ,columnMeanmedTable1_1_9);
- printf("result qui foire : %lf\n " ,columnMeanmedTable1_1_9[0]) ;
+ printf("result qui foire : %e\n " ,columnMeanmedTable1_1_9[0]) ;
assert( ( fabs(columnMeanmedTable1_1_9[0] ) - ( 1.146666666f ) ) / fabs ( columnMeanmedTable1_1_9[0] ) < 1e-6 );
- /*
+
[ 1 ]
[ 2 ]
[ 3 ]
@@ -135,10 +140,10 @@ static int scolumnvariancefaTest(void) {
for ( i = 0 ; i < 5 ; ++i) {
printf("columnMeanmedTable2_5_2[%d] = %e\n", i, columnMeanmedTable2_5_2[i]);
}
-*/
+
return 0;
}
-
+*/
/*
static int srowvariancefaTest(void) {
int i = 0;
@@ -209,16 +214,13 @@ static int srowvariancefaTest(void) {
*/
static int cvariancefsTest(void) {
- floatComplex value1 = FloatComplex(3.0f, 3.0f);
- floatComplex coef1 = FloatComplex(3.0f, 0.0f);
- floatComplex value2 = FloatComplex(1.123456789, 1.123456789);
- floatComplex coef2 = FloatComplex(9.0f, 0.0f);
+
printf("\n>>>> Mean Float Complex Scalar Test\n");
- assert( creals(cvariancefs(value1,coef1)) == 0.0f );
- assert( cimags(cvariancefs(value1,coef1)) == 0.0f );
- assert( creals(cvariancefs(value2,coef2)) == 0.0f );
- assert( cimags(cvariancefs(value2,coef2)) == 0.0f );
+ assert( creals(cvariancefs(FloatComplex(3.0f, 3.0f),FloatComplex(3.0f, 0.0f);)) == 0.0f );
+ assert( cimags(cvariancefs(FloatComplex(3.0f, 3.0f),FloatComplex(3.0f, 0.0f);)) == 0.0f );
+ assert( creals(cvariancefs(FloatComplex(1.123456789f, 1.123456789f),FloatComplex(1.123456789f, 1.123456789f))) == 0.0f );
+ assert( cimags(cvariancefs(FloatComplex(1.123456789f, 1.123456789f),FloatComplex(1.123456789f, 1.123456789f))) == 0.0f );
return 0;
}
diff --git a/src/c/statisticsFunctions/variancef/zcolumnvariancefa.c b/src/c/statisticsFunctions/variancef/zcolumnvariancefa.c
index 40a86bdc..47fee75b 100644
--- a/src/c/statisticsFunctions/variancef/zcolumnvariancefa.c
+++ b/src/c/statisticsFunctions/variancef/zcolumnvariancefa.c
@@ -12,8 +12,9 @@
#include "variancef.h"
+#include "matrixTranspose.h"
-void zcolumnvariancea(doubleComplex *in1, int lines, int columns,doubleComplex *in2 , doubleComplex* out){
+void zcolumnvariancefa(doubleComplex *in1, int lines, int columns,doubleComplex *in2 , doubleComplex* out){
int i = 0 ;
diff --git a/src/c/statisticsFunctions/variancef/zrowvariancefa.c b/src/c/statisticsFunctions/variancef/zrowvariancefa.c
index 644b2ec7..b39b2ee7 100644
--- a/src/c/statisticsFunctions/variancef/zrowvariancefa.c
+++ b/src/c/statisticsFunctions/variancef/zrowvariancefa.c
@@ -12,7 +12,7 @@
#include "variancef.h"
-void zrowvariancea(doubleComplex *in1, int lines, int columns,doubleComplex *in2, doubleComplex* out){
+void zrowvariancefa(doubleComplex *in1, int lines, int columns,doubleComplex *in2, doubleComplex* out){
int i = 0 ;
diff --git a/src/c/statisticsFunctions/variancef/zvariancefa.c b/src/c/statisticsFunctions/variancef/zvariancefa.c
index 6093bacf..6de6f11a 100644
--- a/src/c/statisticsFunctions/variancef/zvariancefa.c
+++ b/src/c/statisticsFunctions/variancef/zvariancefa.c
@@ -19,18 +19,17 @@ doubleComplex zvariancefa(doubleComplex *in1, int size, doubleComplex *in2)
int i = 0 ;
doubleComplex temp = DoubleComplex (0.0, 0.0 );
doubleComplex accumulate =DoubleComplex (0.0, 0.0 );
- double accumulateFre = 0.0;
+ doubleComplex accumulateFre = DoubleComplex (0.0, 0.0 );
doubleComplex meanf = zmeanfa (in1 , size , in2);
- //printf("\n\tComplex meanf result : %lf \t+ %lf i " ,zreals( meanf) ,zimags( meanf)) ;
for(i = 0 ; i < size ; ++i)
{
temp = zpows ( zdiffs (in1[i] , meanf ) ,DoubleComplex (2.0, 0.0 ) );
temp = zmuls( in2[i] , temp);
- //printf("\n\tComplex accumulate : %lf \t+ %lf i " ,zreals(temp) ,zimags(temp)) ;
+
accumulate = zadds( temp , accumulate);
- accumulateFre += zreals(in2[i]);
+ accumulateFre = zadds(in2[i ] ,accumulateFre );
}
-//printf("\n\tComplex division result : %lf \t+ %lf i / %lf " ,zreals(accumulate) ,zimags(accumulate),accumulateFre) ;
- return DoubleComplex( zreals(accumulate) /(accumulateFre -1), zimags(accumulate) /(accumulateFre -1));
+
+ return zrdivs(accumulate, zdiffs(accumulateFre ,DoubleComplex(1.0,0.0) ));
}