floatComplex ccoths(floatComplex z) { floatComplex out; out = crdivs(FloatComplex(1,0), ctanhs(z)); return out; }
void ccolumnstdevfa(floatComplex *in1, int lines, int columns, floatComplex*in2, floatComplex* out){ int i = 0; int j = 0; floatComplex temp = FloatComplex(0.0f,0.0f); floatComplex accumulate = FloatComplex(0.0f,0.0f); floatComplex accumulateFre = FloatComplex(0.0f,0.0f); ccolumnmeanfa(in1, lines, columns, in2, out ); /*we first multiply each cell of the input matrix by its coefficient*/ for (j = 0; j < lines; ++j) { accumulate = FloatComplex(0.0f,0.0f); accumulateFre = FloatComplex(0.0f,0.0f); temp = FloatComplex(0.0f,0.0f); for ( i = 0 ; i < columns; ++i ) { temp = cpows ( cdiffs (in1[lines*i + j] ,out[j] ) ,FloatComplex (2.0f, 0.0f ) ); temp = cmuls( in2[lines*i + j] , temp); accumulate = cadds( temp , accumulate); accumulateFre = cadds (in2[lines*i + j] ,accumulateFre ); } if (lines <= 1) { out[j] = cmuls (FloatComplex(0.0f,0.0f) , accumulate ) ; } else { if( sabss (creals(accumulate)) <= 3e-6 ) accumulate = FloatComplex(sabss(creals(accumulate)) ,cimags(accumulate)); if( sabss (cimags(accumulate)) <= 3e-6 ) accumulate = FloatComplex(creals(accumulate) ,sabss(cimags(accumulate))); accumulate = crdivs (accumulate , cdiffs (accumulateFre ,FloatComplex(1.0f,0.0f)) ); out[j] =csqrts(accumulate); } } }
void crowmeanfa(floatComplex *in1, int lines, int columns, floatComplex *in2, floatComplex *out) { int i = 0; int j = 0; floatComplex tempCoefSum = FloatComplex(0.0f,0.0f); floatComplex tempMul = FloatComplex(0.0f,0.0f); /*we first multiply each cell of the input matrix by its coefficient*/ for (j = 0; j < columns; ++j) { tempCoefSum = FloatComplex(0.0f,0.0f); out[j]= FloatComplex(0.0f,0.0f); for ( i = 0 ; i < lines; ++i ) { tempMul = cmuls ( in1[lines*j + i] , in2[lines*j + i]); /* we times by the coefficient*/ tempCoefSum = cadds ( in2[lines*j + i] ,tempCoefSum ) ; out[j] = cadds (tempMul, out[j]) ; } out[j] = crdivs(out[j] ,tempCoefSum); } }
floatComplex cvariancea(floatComplex *in, int size) { int i = 0 ; floatComplex sum = FloatComplex ( 0 , 0 ) ; floatComplex temp = 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, 0) ) ); } variance = crdivs (sum , FloatComplex ( (float)(size - 1),0 )); return variance ; }