Changeset 17214
- Timestamp:
- Mar 28, 2008, 3:44:13 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/relastro/src/liststats.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/relastro/src/liststats.c
r16040 r17214 1 1 # include "relastro.h" 2 2 3 enum {M_MEAN, M_MEDIAN, M_WT_MEAN, M_INNER_MEAN, 4 M_INNER_WTMEAN, M_CHI_INNER_MEAN, M_CHI_INNER_WTMEAN}; 3 enum {M_MEDIAN, 4 M_MEAN, M_WTMEAN, 5 M_INNER_MEAN, M_INNER_WTMEAN, 6 M_INNER_80_MEAN, M_INNER_80_WTMEAN, 7 M_CHI_INNER_MEAN, M_CHI_INNER_WTMEAN, 8 M_CHI_INNER_80_MEAN, M_CHI_INNER_80_WTMEAN}; 5 9 6 10 static int statmode; … … 11 15 if (!strcmp (mode, "MEAN")) statmode = M_MEAN; 12 16 if (!strcmp (mode, "MEDIAN")) statmode = M_MEDIAN; 13 if (!strcmp (mode, "WT _MEAN")) statmode = M_WT_MEAN;17 if (!strcmp (mode, "WTMEAN")) statmode = M_WTMEAN; 14 18 if (!strcmp (mode, "INNER_MEAN")) statmode = M_INNER_MEAN; 15 19 if (!strcmp (mode, "INNER_WTMEAN")) statmode = M_INNER_WTMEAN; 20 if (!strcmp (mode, "INNER_80_MEAN")) statmode = M_INNER_80_MEAN; 21 if (!strcmp (mode, "INNER_80_WTMEAN")) statmode = M_INNER_80_WTMEAN; 16 22 if (!strcmp (mode, "CHI_INNER_MEAN")) statmode = M_CHI_INNER_MEAN; 17 23 if (!strcmp (mode, "CHI_INNER_WTMEAN")) statmode = M_CHI_INNER_WTMEAN; 24 if (!strcmp (mode, "CHI_INNER_80_MEAN")) statmode = M_CHI_INNER_80_MEAN; 25 if (!strcmp (mode, "CHI_INNER_80_WTMEAN")) statmode = M_CHI_INNER_80_WTMEAN; 18 26 19 27 if (statmode == -1) { … … 38 46 39 47 dsortpair (value, dvalue, N); 40 stats[0].median = value[(int)(0.5*N)]; 48 if (N % 2) { 49 stats[0].median = value[(int)(0.5*N)]; 50 } else { 51 stats[0].median = 0.5*(value[N/2] + value[N/2 - 1]); 52 } 41 53 stats[0].min = value[0]; 42 54 stats[0].max = value[N-1]; … … 51 63 break; 52 64 case M_MEAN: 53 case M_WT _MEAN:65 case M_WTMEAN: 54 66 ks = 0; 55 67 ke = N; … … 66 78 } 67 79 break; 80 case M_INNER_80_MEAN: 81 case M_INNER_80_WTMEAN: 82 case M_CHI_INNER_80_MEAN: 83 case M_CHI_INNER_80_WTMEAN: 84 ks = 0.1*N + 0.1; 85 ke = 0.8*N + 0.1; 86 if (N <= 10) { 87 ks = 0; 88 ke = N; 89 } 90 break; 68 91 } 69 92 70 if ((statmode == M_CHI_INNER_MEAN) || (statmode == M_CHI_INNER_WTMEAN)) { 93 if ((statmode == M_CHI_INNER_MEAN) || 94 (statmode == M_CHI_INNER_WTMEAN) || 95 (statmode == M_CHI_INNER_80_MEAN) || 96 (statmode == M_CHI_INNER_80_WTMEAN)) { 71 97 ALLOCATE (chi, double, N); 72 98 for (i = 0; i < N; i++) { … … 79 105 /* calculating the per-star offset based on the weighted average */ 80 106 M = dM = Nm = 0; 81 if ((statmode == M_WT_MEAN) || (statmode == M_INNER_WTMEAN) || (statmode == M_CHI_INNER_WTMEAN)) { 107 if ((statmode == M_WTMEAN) || 108 (statmode == M_INNER_WTMEAN) || 109 (statmode == M_INNER_80_WTMEAN) || 110 (statmode == M_CHI_INNER_WTMEAN) || 111 (statmode == M_CHI_INNER_80_WTMEAN)) { 82 112 for (i = ks; i < ke; i++) { 83 113 M += value[i] / SQ (dvalue[i]);
Note:
See TracChangeset
for help on using the changeset viewer.
