From: <kin...@us...> - 2013-09-07 17:37:27
|
Revision: 6102 http://sourceforge.net/p/teem/code/6102 Author: kindlmann Date: 2013-09-07 17:37:25 +0000 (Sat, 07 Sep 2013) Log Message: ----------- added clarifying comment about airIndex, and removed somewhat cryptic comment in airIndexClamp (before widespread use of unsigned types, histogram bin indices were signed, so too-low values would make negative indices, and clamping on both upper and lower end could be done after index generation) Modified Paths: -------------- teem/trunk/src/air/miscAir.c Modified: teem/trunk/src/air/miscAir.c =================================================================== --- teem/trunk/src/air/miscAir.c 2013-09-06 01:51:32 UTC (rev 6101) +++ teem/trunk/src/air/miscAir.c 2013-09-07 17:37:25 UTC (rev 6102) @@ -433,7 +433,23 @@ /* ******* airIndex ** -** replaces AIR_INDEX macro; see above +** Given a value range [min,max], a single input value val inside the range, +** and a number of intervals N spanning and evenly dividing that range, +** airIndex returns the index of the interval containing val: +** +** input value range: min max +** val somewhere in: |-----|-----|-----|-----| +** N intervals: [ )[ )[ )[ ] (for N=4) +** output index: 0 1 2 3 +** +** This can be used (as in nrrdHisto and other histogramming functions) to +** represent the range [min,max] with N samples between 0 and N-1. Those +** samples are cell-centered, because "0" is logically located (in the +** continuous input range) in the *middle* of the first of the N intervals. +** In contrast, the *endpoints* of the N intervals (the 5 "|" in the picture +** above) form N+1 *node*-centered samples from min to max. +** +** NOTE: This does not do bounds checking; for that use airIndexClamp */ unsigned int airIndex(double min, double val, double max, unsigned int N) { @@ -455,9 +471,6 @@ unsigned int idx; double mnm; - /* NOTE: now that unsigned types are used more widely in Teem, the - clamping that used to happen after index generation now must - happen prior to index generation */ mnm = max - min; if (mnm) { val = AIR_MAX(min, val); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |