- Timestamp:
- Feb 23, 2008, 3:16:39 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branch_20080223/Ohana/src/addstar/src/build_links.c
r5239 r16633 2 2 3 3 /* build the initial links assuming the table is sorted, 4 not partial, and has a correct set of average[]. offset,Nm values */4 not partial, and has a correct set of average[].measureOffset,Nm values */ 5 5 int *init_measure_links (Average *average, int Naverage, Measure *measure, int Nmeasure) { 6 6 … … 12 12 ALLOCATE (next, int, Nmeasure); 13 13 for (i = 0; i < Naverage; i++, N++) { 14 for (j = 0; j < average[i].Nm - 1; j++, N++) {14 for (j = 0; j < average[i].Nmeasure - 1; j++, N++) { 15 15 next[N] = N + 1; 16 16 if (N >= Nmeasure) { … … 41 41 ALLOCATE (next, int, Nmissing); 42 42 for (i = 0; i < Naverage; i++) { 43 for (j = 0; j < average[i].N n- 1; j++, N++) {43 for (j = 0; j < average[i].Nmissing - 1; j++, N++) { 44 44 next[N] = N + 1; 45 45 } 46 if (average[i].N n> 0) {46 if (average[i].Nmissing > 0) { 47 47 next[N] = -1; 48 48 if (N >= Nmissing) { … … 57 57 } 58 58 59 /* average[]. offset, average[].Nmare valid within an addstar run */59 /* average[].measureOffset, average[].Nmeasure are valid within an addstar run */ 60 60 int add_meas_link (Average *average, int *next, int Nmeasure, int NMEASURE) { 61 61 … … 63 63 64 64 /* if we have trouble, check validity of next[m] : m < Nmeasure */ 65 m = average[0]. offset;66 67 for (k = 0; k < average[0].Nm - 1; k++) {65 m = average[0].measureOffset; 66 67 for (k = 0; k < average[0].Nmeasure - 1; k++) { 68 68 m = next[m]; 69 69 if (m >= NMEASURE) { … … 79 79 80 80 if (m == -1) { 81 average[0]. offset = Nmeasure;81 average[0].measureOffset = Nmeasure; 82 82 } else { 83 83 next[m] = Nmeasure; … … 95 95 96 96 /* there may be 0 Nmiss; this is not true for Nmeas */ 97 if (average[0].N n< 1) {98 average[0].missing = Nmissing;97 if (average[0].Nmissing < 1) { 98 average[0].missingOffset = Nmissing; 99 99 next[Nmissing] = -1; 100 100 return (TRUE); 101 101 } 102 102 103 m = average[0].missing ;104 for (k = 0; k < average[0].N n- 1; k++) m = next[m];103 m = average[0].missingOffset; 104 for (k = 0; k < average[0].Nmissing - 1; k++) m = next[m]; 105 105 /* set up references */ 106 106 next[Nmissing] = -1; … … 125 125 /* reset the Nm, offset values for average */ 126 126 for (i = 0; i < Naverage; i++) { 127 average[i]. offset = -1;128 average[i].Nm = 0;127 average[i].measureOffset = -1; 128 average[i].Nmeasure = 0; 129 129 } 130 130 131 131 for (Nm = 0; Nm < Nmeasure; Nm++) { 132 132 averef = measure[Nm].averef; 133 m = average[averef]. offset;133 m = average[averef].measureOffset; 134 134 next[Nm] = -1; 135 135 136 136 if (m == -1) { /* no links yet for source */ 137 average[averef]. offset = Nm;138 average[averef].Nm = 1;137 average[averef].measureOffset = Nm; 138 average[averef].Nmeasure = 1; 139 139 continue; 140 140 } … … 147 147 } 148 148 149 average[averef].Nm = k + 2;149 average[averef].Nmeasure = k + 2; 150 150 next[m] = Nm; 151 151 if (m >= Nmeasure) { … … 168 168 ALLOCATE (tmpmeasure, Measure, Nmeasure); 169 169 for (i = 0; i < Naverage; i++) { 170 n = average[i]. offset;171 average[i]. offset = N;172 for (k = 0; k < average[i].Nm ; k++, N++) {170 n = average[i].measureOffset; 171 average[i].measureOffset = N; 172 for (k = 0; k < average[i].Nmeasure; k++, N++) { 173 173 tmpmeasure[N] = measure[n]; 174 174 tmpmeasure[N].averef = i; … … 189 189 ALLOCATE (tmpmissing, Missing, Nmissing); 190 190 for (i = 0; i < Naverage; i++) { 191 n = average[i].missing ;192 average[i].missing = N;193 for (k = 0; k < average[i].N n; k++, N++) {191 n = average[i].missingOffset; 192 average[i].missingOffset = N; 193 for (k = 0; k < average[i].Nmissing; k++, N++) { 194 194 tmpmissing[N] = missing[n]; 195 195 n = next[n];
Note:
See TracChangeset
for help on using the changeset viewer.
