summaryrefslogtreecommitdiff
path: root/src/c/statisticsFunctions/stdevf/zstdevfa.c
diff options
context:
space:
mode:
authorsimon2009-08-04 14:49:49 +0000
committersimon2009-08-04 14:49:49 +0000
commit3b470c8327bdafb133a11f5e7257ccb270f8c1c9 (patch)
tree41c9438f2a39f7915f75bf3da8b24f626a63d700 /src/c/statisticsFunctions/stdevf/zstdevfa.c
parentbe8c66b26fa69a8078ee369f0af5fb9372f95293 (diff)
downloadscilab2c-3b470c8327bdafb133a11f5e7257ccb270f8c1c9.tar.gz
scilab2c-3b470c8327bdafb133a11f5e7257ccb270f8c1c9.tar.bz2
scilab2c-3b470c8327bdafb133a11f5e7257ccb270f8c1c9.zip
added stdevf functions , interfaces , header, tests , everything
Diffstat (limited to 'src/c/statisticsFunctions/stdevf/zstdevfa.c')
-rw-r--r--src/c/statisticsFunctions/stdevf/zstdevfa.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/c/statisticsFunctions/stdevf/zstdevfa.c b/src/c/statisticsFunctions/stdevf/zstdevfa.c
index f9a2f4c3..2a4f52b7 100644
--- a/src/c/statisticsFunctions/stdevf/zstdevfa.c
+++ b/src/c/statisticsFunctions/stdevf/zstdevfa.c
@@ -12,30 +12,35 @@
#include "stdevf.h"
+
doubleComplex zstdevfa(doubleComplex *in1, int lines, int columns, 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 , lines*columns , in2);
-
+
for(i = 0 ; i < lines*columns ; ++i)
{
- temp = zpows ( zdiffs (in1[i] , meanf ) ,DoubleComplex (2.0, 0.0 ) );
+ temp = zpows ( zdiffs (in1[i] , meanf ) ,DoubleComplex (2.0, 0.0 ) );
temp = zmuls( in2[i] , temp);
accumulate = zadds( temp , accumulate);
- accumulateFre += zreals(in2[i]);
- }
+ accumulateFre = zadds(in2[i ] ,accumulateFre );
+
+ }
if (lines <= 1)
{
+
return zmuls (DoubleComplex(0.0,0.0) , accumulate ) ;
}
else
{
- accumulate = DoubleComplex( zreals(accumulate ) / (accumulateFre - 1) , zimags(accumulate) / (accumulateFre - 1));
- return zsqrts(accumulate);
+
+ accumulate = zrdivs(accumulate, zdiffs(accumulateFre ,DoubleComplex(1.0,0.0) ));
+ return zsqrts(accumulate);
}
}