var.c 406 B

1234567891011121314151617181920212223
  1. #include <math.h>
  2. #include <grass/imagery.h>
  3. /* sum: sum of x
  4. * sum2: sum of x squared
  5. * n: number of points
  6. */
  7. double I_variance(double sum, double sum2, int n)
  8. {
  9. if (n < 2)
  10. return ((double)0.0);
  11. else
  12. return ((sum2 - sum * sum / n) / (n - 1));
  13. }
  14. double I_stddev(double sum, double sum2, int n)
  15. {
  16. if (n < 2)
  17. return ((double)-99.0);
  18. else
  19. return sqrt(I_variance(sum, sum2, n));
  20. }