global.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include <grass/gis.h>
  2. #define NODE_NONE 0
  3. /* According Okabe 2009 */
  4. #define NODE_SIMILAR 1
  5. #define NODE_EQUAL_SPLIT 2
  6. #define NODE_CONTINUOUS_EQUAL_SPLIT 3
  7. #define KERNEL_UNIFORM 0
  8. #define KERNEL_TRIANGULAR 1
  9. #define KERNEL_EPANECHNIKOV 2
  10. #define KERNEL_QUARTIC 3
  11. #define KERNEL_TRIWEIGHT 4
  12. #define KERNEL_GAUSSIAN 5
  13. #define KERNEL_COSINE 6
  14. void setKernelFunction(int function, int dimension, double bandwidth, double *term);
  15. double kernelFunction(double term, double bandwidth, double x);
  16. double euclidean_distance(double *x, double *y, int n);
  17. double gaussian2dBySigma(double d, double sigma);
  18. double gaussianFunction(double x, double sigma, double dimension);
  19. double gaussianKernel(double x, double term);
  20. double invGaussian2d(double sigma, double prob);
  21. double gaussian2dByTerms(double d, double term1, double term2);
  22. double brent_iterate(double (*f) (), double x_lower, double x_upper,
  23. int maxiter);
  24. double kernel1(double d, double rs, double lambda);
  25. double segno(double x);
  26. /* main.c */
  27. int read_points(struct Map_info *In, double ***coordinate, double dsize);
  28. double compute_all_distances(double **coordinate, double **dists, int n,
  29. double dmax);
  30. double compute_all_net_distances(struct Map_info *In, struct Map_info *Net,
  31. double netmax, double **dists, double dmax);
  32. void compute_distance(double N, double E, double sigma, double term,
  33. double *gaussian, double dmax, struct bound_box *box,
  34. struct boxlist *NList);
  35. void compute_net_distance(double x, double y, struct Map_info *In,
  36. struct Map_info *Net, double netmax, double sigma,
  37. double term, double *gaussian, double dmax, int node_method);