int32_t main() { #ifndef USE_STATIC_INIT arm_matrix_instance_f32 srcA; arm_matrix_instance_f32 srcB; arm_matrix_instance_f32 dstC; /* Input and output matrices initializations */ arm_mat_init_f32(&srcA, numStudents, numSubjects, (float32_t *)testMarks_f32); arm_mat_init_f32(&srcB, numSubjects, 1, (float32_t *)testUnity_f32); arm_mat_init_f32(&dstC, numStudents, 1, testOutput); #else /* Static Initializations of Input and output matrix sizes and array */ arm_matrix_instance_f32 srcA = {NUMSTUDENTS, NUMSUBJECTS, (float32_t *)testMarks_f32}; arm_matrix_instance_f32 srcB = {NUMSUBJECTS, 1, (float32_t *)testUnity_f32}; arm_matrix_instance_f32 dstC = {NUMSTUDENTS, 1, testOutput}; #endif /* ---------------------------------------------------------------------- *Call the Matrix multiplication process function * ------------------------------------------------------------------- */ arm_mat_mult_f32(&srcA, &srcB, &dstC); /* ---------------------------------------------------------------------- ** Call the Max function to calculate max marks among numStudents ** ------------------------------------------------------------------- */ arm_max_f32(testOutput, numStudents, &max_marks, &student_num); /* ---------------------------------------------------------------------- ** Call the Min function to calculate min marks among numStudents ** ------------------------------------------------------------------- */ arm_min_f32(testOutput, numStudents, &min_marks, &student_num); /* ---------------------------------------------------------------------- ** Call the Mean function to calculate mean ** ------------------------------------------------------------------- */ arm_mean_f32(testOutput, numStudents, &mean); /* ---------------------------------------------------------------------- ** Call the std function to calculate standard deviation ** ------------------------------------------------------------------- */ arm_std_f32(testOutput, numStudents, &std); /* ---------------------------------------------------------------------- ** Call the var function to calculate variance ** ------------------------------------------------------------------- */ arm_var_f32(testOutput, numStudents, &var); while(1); /* main function does not return */ }
void Variance ( ) { uint32_t bloacksize = 0; float32_t Vect[ bloacksize ]; float32_t Variance; arm_var_f32( Vect , &bloacksize , &Variance ) ; }
float FloatArray::getVariance(){ float result; /// @note When built for ARM Cortex-M processor series, this method uses the optimized <a href="http://www.keil.com/pack/doc/CMSIS/General/html/index.html">CMSIS library</a> #ifdef ARM_CORTEX arm_var_f32(data, size, &result); #else float sumOfSquares=getPower(); float sum=0; for(int n=0; n<size; n++){ sum+=data[n]; } result=(sumOfSquares - sum*sum/size) / (size - 1); #endif return result; }