GRASS GIS 8 Programmer's Manual  8.5.0dev(2024)-bea8435a9e
shapiroe.c
Go to the documentation of this file.
1 #include <stdio.h>
2 #include <math.h>
3 
4 double *Cdhc_shapiro_wilk_exp(double *x, int n)
5 {
6  static double y[2];
7  double mean, b, s1, xs, sum1 = 0.0, sum2 = 0.0;
8  int i;
9  xs = x[0];
10 
11  for (i = 0; i < n; ++i)
12  if (i == 0 || xs > x[i])
13  xs = x[i];
14 
15  for (i = 0; i < n; ++i) {
16  sum1 += x[i];
17  sum2 += x[i] * x[i];
18  }
19 
20  s1 = sum2 - sum1 * sum1 / n;
21  mean = sum1 / n;
22  b = (mean - xs) * sqrt((double)n / (n - 1.0));
23  y[0] = b * b / s1;
24 
25 #ifdef NOISY
26  fprintf(stdout, " TEST15 SW(E) =%10.4f\n", y[0]);
27 #endif /* NOISY */
28 
29  return y;
30 }
float mean(IClass_statistics *statistics, int band)
Helper function for computing mean.
double b
Definition: r_raster.c:39
double * Cdhc_shapiro_wilk_exp(double *x, int n)
Definition: shapiroe.c:4
#define x