www.pudn.com > eval-1.2.zip > misc.c
#include#include #include #include #include #include #include "misc.h" int ToLower(int c) { static const char lower[] = "abcdefghijklmnopqrstuvwxyzäöü"; static const char upper[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ"; char *p = strchr(upper, c); return p ? lower[p - upper] : c; } int Max(unsigned ar[], int n, unsigned max_lim) { int i, imax = 0; unsigned max = ar[0]; for (i=1; i max) { max = ar[i]; imax = i; } return imax; } int Min(unsigned ar[], int n, unsigned min_lim) { int i, imin = 0; unsigned min = ar[0]; for (i=1; i min_lim && ar[i] < min) { min = ar[i]; imin = i; } return imin; } unsigned Sum(unsigned ar[], int n) { unsigned sum = 0; int i; for (i=0; i >= 1) ; return l; } void MeanBits(char **buf, unsigned l, char *c, unsigned size) { unsigned i, j, k, n; for (i=0; i l/2) SETBIT(c[i], j); } } void ClearPacks(unsigned char **pack, unsigned num, unsigned size) { unsigned i, j; for (i=0; i<=num; i++) for (j=0; j num/2; } for (n=0, i=0; i = 0 && pD[start].tr[dir] - pD[i].tr[dir] < off) { if (!pD[i].lost[dir]) { sum += pD[i].signal[dir]; j++; } i--; } return j ? sum / j : 0; } double Std(tcpdump_t *pD, DIR dir, int start, double off, double avg) { int i = start, j = 0; double v = 0; if (avg == DBL_MAX) avg = Avg(pD, dir, start, off); while (i >= 0 && pD[start].tr[dir] - pD[i].tr[dir] < off) { if (!pD[i].lost[dir]) { v += (pD[i].signal[dir] - avg) * (pD[i].signal[dir] - avg); j++; } i--; } return sqrt(j - 1 ? v / (j - 1) : 0); } void LinApprox(double *x, double *y, unsigned l, unsigned num, double *a, double *b) { unsigned i; double sx = 0, sy = 0, sxx = 0, sxy = 0; if (num > l) num = l; for (i=l-num; i