Changeset 41341 for trunk/Ohana/src/opihi/cmd.data/threshold.c
- Timestamp:
- Apr 16, 2020, 2:04:27 PM (6 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/cmd.data/threshold.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/cmd.data/threshold.c
r41340 r41341 25 25 remove_argument (N, &argc, argv); 26 26 BinMax = atoi (argv[N]); 27 remove_argument (N, &argc, argv); 28 } 29 30 float ValMin = NAN; 31 float ValMax = NAN; 32 if ((N = get_argument (argc, argv, "-vrange"))) { 33 remove_argument (N, &argc, argv); 34 ValMin = atof (argv[N]); 35 remove_argument (N, &argc, argv); 36 ValMax = atof (argv[N]); 27 37 remove_argument (N, &argc, argv); 28 38 } … … 64 74 } 65 75 76 // ValMin, ValMax not compatible with BinMin, BinMax 77 if (isfinite(ValMin)) { 78 int binTest = ohana_bisection_double (vecx[0].elements.Flt, vecx[0].Nelements, ValMin); 79 BinMin = (vecx[0].elements.Flt[binTest+1] == ValMin) ? binTest : binTest + 1; 80 // XXX dangerous: check that this does not run off the end, etc 81 } 82 if (isfinite(ValMax)) { 83 int binTest = ohana_bisection_double (vecx[0].elements.Flt, vecx[0].Nelements, ValMax); 84 BinMax = (vecx[0].elements.Flt[binTest+1] == ValMax) ? binTest : binTest + 1; 85 // XXX dangerous: check that this does not run off the end, etc 86 } 87 66 88 // use bisection to find the value 67 89 … … 71 93 72 94 if (!REVERSE) { 95 // this algorithm assumes vecy[BinMax] > threshold, vecy[BinMin] < threshold 96 if (vecy[0].elements.Flt[BinMin] > value) { 97 gprint (GP_ERR, "ERROR: all values above threshold\n"); 98 return FALSE; 99 } 100 if (vecy[0].elements.Flt[BinMax] < value) { 101 gprint (GP_ERR, "ERROR: all values below threshold\n"); 102 return FALSE; 103 } 73 104 while (Nhi - Nlo > 10) { 74 105 N = 0.5*(Nlo + Nhi); … … 89 120 } 90 121 } else { 122 // this algorithm assumes vecy[BinMin] > threshold, vecy[BinMax] < threshold 123 if (vecy[0].elements.Flt[BinMin] < value) { 124 gprint (GP_ERR, "ERROR: all values below threshold\n"); 125 return FALSE; 126 } 127 if (vecy[0].elements.Flt[BinMax] > value) { 128 gprint (GP_ERR, "ERROR: all values above threshold\n"); 129 return FALSE; 130 } 91 131 while (Nhi - Nlo > 10) { 92 132 N = 0.5*(Nlo + Nhi);
Note:
See TracChangeset
for help on using the changeset viewer.
