3 #include <grass/arraystats.h>
10 double sum = 0, sumsq = 0, sumabs = 0;
11 double dev = 0, dev2 = 0;
15 stats->max = data[
count - 1];
17 for (i = 0; i <
count; i++) {
19 sumabs += fabs(data[i]);
20 sumsq += data[i] * data[i];
23 stats->sumabs = sumabs;
26 stats->mean = stats->sum / stats->count;
27 stats->meanabs = stats->sumabs / stats->count;
28 for (i = 0; i <
count; i++) {
29 dev2 = dev2 + (data[i] - stats->mean) * (data[i] - stats->mean);
30 dev = dev + (data[i] - stats->mean);
33 stats->var = (dev2 - (dev * dev / stats->count)) / stats->count;
34 stats->stdev = sqrt(stats->var);
39 void AS_eqdrt(
double vectx[],
double vecty[],
int i1,
int i2,
double *a,
42 double x1 = vectx[i1];
43 double y1 = vecty[i1];
44 double x2 = vectx[i2];
45 double y2 = vecty[i2];
63 if (fabs(bd) < GRASS_EPSILON) {
64 if (fabs(bn) < GRASS_EPSILON) {
65 G_debug(3,
"Points are equal\n");
void AS_eqdrt(double vectx[], double vecty[], int i1, int i2, double *a, double *b, double *c)
void AS_basic_stats(const double data[], int count, struct GASTATS *stats)
int G_debug(int level, const char *msg,...)
Print debugging message.