home *** CD-ROM | disk | FTP | other *** search
- /*
- * HIST(ogram evaluation)
- *
- * routines to evaluate statistics and histogram of input data set
- *
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <string.h>
- #include "vora.h"
-
-
- /*
- * determine mean of input data set
- */
- double
- find_mean (data, n)
- float *data;
- int n;
- {
- int i;
- double mean = 0.0;
-
- for (i = 0; i < n; i++)
- mean += *(data + i);
-
- return (mean / (double) n);
- }
-
- /*
- * determine standard deviation of input data set
- */
- double
- find_sigma (data, n, mean)
- float *data;
- int n;
- double mean;
- {
- int i;
- double xi, sigma = 0.0;
-
- for (i = 0; i < n; i++) {
- xi = (double) (*(data + i));
- sigma += (xi - mean) * (xi - mean);
- }
- sigma /= (double) (n - 1);
-
- return (sqrt (sigma));
- }
-
-
-
- /*
- * construct histogram of input data
- */
- void
- construct_hist (n, data, hist, bw, data_base)
- int n;
- float *data, *hist;
- double bw, data_base;
- {
- int i, ibin;
-
- for (i = 0; i < n; i++) {
- if (*(data + i) != 0) {
- ibin = 0;
- while (*(data + i) >= data_base + ibin * bw)
- ibin++;
- *(hist + ibin - 1) += 1;
- }
- }
- }
-
-
- /*
- * construct histogram of sorted(!) input data
- */
- void
- construct_shist (n, data, hist, bw, data_base)
- int n;
- float *data, *hist;
- double bw, data_base;
- {
- int i, ibin;
-
- ibin = 0;
- for (i = 0; i < n; i++) {
- if (*(data + i) != 0) {
- while (*(data + i) >= data_base + ibin * bw)
- ibin++;
- *(hist + ibin - 1) += 1;
- }
- }
- }
-