c_divr.c 469 B

123456789101112131415161718192021222324252627282930
  1. #include <grass/gis.h>
  2. #include <grass/stats.h>
  3. void c_divr(DCELL * result, DCELL * values, int n, const void *closure)
  4. {
  5. int count;
  6. DCELL prev;
  7. int i;
  8. /* sort the array of values, then count differences */
  9. n = sort_cell(values, n);
  10. if (n == 0) {
  11. *result = 0;
  12. return;
  13. }
  14. count = 1;
  15. prev = values[0];
  16. for (i = 0; i < n; i++)
  17. if (values[i] != prev) {
  18. prev = values[i];
  19. count++;
  20. }
  21. *result = (DCELL) count;
  22. }