- Timestamp:
- Nov 30, 2008, 11:13:15 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/integrate.c
r20839 r20859 3 3 int integrate (int argc, char **argv) { 4 4 5 int i, N, VERBOSE ;5 int i, N, VERBOSE, isFloat; 6 6 opihi_flt *X, *Y; 7 double start, end, value, range ;7 double start, end, value, range, dvalue; 8 8 Vector *vecx, *vecy; 9 9 … … 25 25 end = atof (argv[4]); 26 26 27 X = vecx[0].elements.Flt; 28 Y = vecy[0].elements.Flt; 27 isFloat = vecy[0].type == OPIHI_FLT; 28 Yf = vecy[0].elements.Flt; 29 Yi = vecy[0].elements.Int; 29 30 30 31 value = 0; 31 32 range = 0; 32 for (i = 0; i < vecx[0].Nelements-1; i++, X++, Y++) { 33 if ((*X >= start) && (*X <= end)) { 34 value += *Y * (X[1] - X[0]); 35 range += (X[1] - X[0]); 36 } 37 } 33 34 if (vecx[0].type == OPIHI_FLT) { 35 opihi_flt *X = vecx[0].elements.Flt; 36 for (i = 0; i < vecx[0].Nelements-1; i++, X++, Yi++, Yf++) { 37 if ((*X >= start) && (*X <= end)) { 38 dvalue = (isFloat) ? *Yf : *Yi; 39 value += *Y * (X[1] - X[0]); 40 range += (X[1] - X[0]); 41 } 42 } 43 } else { 44 opihi_int *X = vecx[0].elements.Int; 45 for (i = 0; i < vecx[0].Nelements-1; i++, X++, Yi++, Yf++) { 46 if ((*X >= start) && (*X <= end)) { 47 dvalue = (isFloat) ? *Yf : *Yi; 48 value += *Y * (X[1] - X[0]); 49 range += (X[1] - X[0]); 50 } 51 } 52 } 38 53 39 54 set_variable ("sum", value);
Note:
See TracChangeset
for help on using the changeset viewer.
