Witam,
Mam do napisania funkcje obliczajaca srednia i wariancje.
O ile przy sredniej sprawa jest banalna, o tyle mam pytanie nt. szybkosci
obliczania wariancji w przypadku duzej ilosci danych. Kod zamieszczam ponizej:
// definicja funkcji narzucona przez wykladowce
void calcMeanVar(float *data, int size, float *mean, float *var)
{
float sum = 0, * ptr = data; // ustaw ptr na poczatek tablicy danych
for (int i = 0; i < size; i++, ptr++)
sum = *ptr;
*mean = sum / nReps;
sum = 0;
float tmp;
ptr = data; // reset ptr
for (i = 0; i < size; i++, ptr++) { // min dla size jest 2 aby policzyc wariancje
tmp = *ptr - *mean;
/* ktory kod bedzie szybszy jesli w ogole gdy size >= 10E5 */
sum += tmp * tmp;
// tmp *= tmp;
// sum += tmp;
}
*var = sum / (size - 1);
}
Pytanie w komentarzu kodu.
Dzieki za zainteresowanie i info,
mossy