Changeset 20936 for trunk/Ohana/src/opihi/cmd.data/vstat.c
- Timestamp:
- Dec 7, 2008, 3:31:01 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/cmd.data/vstat.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/cmd.data/vstat.c
r7917 r20936 5 5 int i, N; 6 6 double max, min, sum, var, dvar, mean, stdev; 7 float *X,IgnoreValue;7 float IgnoreValue; 8 8 int Ignore, Quiet; 9 9 … … 41 41 42 42 /* calculate max, min, mean, sum, npix */ 43 X = vec[0].elements;44 43 max = -HUGE_VAL; 45 44 min = HUGE_VAL; 46 45 sum = N = 0; 47 for (i = 0; i < vec[0].Nelements; i++, X++) { 48 if (!finite (*X)) continue; 49 if (Ignore && (*X == IgnoreValue)) continue; 50 max = MAX (*X, max); 51 min = MIN (*X, min); 52 sum += *X; 53 N++; 54 } 46 if (vec[0].type == OPIHI_FLT) { 47 opihi_flt *X = vec[0].elements.Flt; 48 for (i = 0; i < vec[0].Nelements; i++, X++) { 49 if (!finite (*X)) continue; 50 if (Ignore && (*X == IgnoreValue)) continue; 51 max = MAX (*X, max); 52 min = MIN (*X, min); 53 sum += *X; 54 N++; 55 } 56 } else { 57 opihi_int *X = vec[0].elements.Int; 58 for (i = 0; i < vec[0].Nelements; i++, X++) { 59 if (!finite (*X)) continue; 60 if (Ignore && (*X == IgnoreValue)) continue; 61 max = MAX (*X, max); 62 min = MIN (*X, min); 63 sum += *X; 64 N++; 65 } 66 } 55 67 mean = sum / N; 56 68 … … 65 77 ALLOCATE (Nval, int, 1002); 66 78 bzero (Nval, 1000*sizeof(int)); 67 X = vec[0].elements;68 79 var = 0; 69 for (i = 0; i < vec[0].Nelements; i++, X++) { 70 if (!finite (*X)) continue; 71 if (Ignore && (*X == IgnoreValue)) continue; 72 bin = MAX (0, MIN (1000, (*X - min) / dx)); 73 Nval[bin] ++; 74 dvar = (*X - mean); 75 var += dvar*dvar; 76 } 80 if (vec[0].type == OPIHI_FLT) { 81 opihi_flt *X = vec[0].elements.Flt; 82 for (i = 0; i < vec[0].Nelements; i++, X++) { 83 if (!finite (*X)) continue; 84 if (Ignore && (*X == IgnoreValue)) continue; 85 bin = MAX (0, MIN (1000, (*X - min) / dx)); 86 Nval[bin] ++; 87 dvar = (*X - mean); 88 var += dvar*dvar; 89 } 90 } else { 91 opihi_int *X = vec[0].elements.Int; 92 for (i = 0; i < vec[0].Nelements; i++, X++) { 93 if (!finite (*X)) continue; 94 if (Ignore && (*X == IgnoreValue)) continue; 95 bin = MAX (0, MIN (1000, (*X - min) / dx)); 96 Nval[bin] ++; 97 dvar = (*X - mean); 98 var += dvar*dvar; 99 } 100 } 77 101 stdev = sqrt (var / N); 78 102
Note:
See TracChangeset
for help on using the changeset viewer.
