forceinline int ValSelRangeMin::val(const Space&, IntView x, int) { if (x.range()) { return (x.width() == 2) ? x.min() : (x.min() + (x.max()-x.min())/2); } else { ViewRanges<View> r(x); return r.max(); } }
forceinline int ValSelRangeMax::val(const Space&, IntView x, int) { if (x.range()) { return (x.width() == 2) ? x.max() : (x.max() - (x.max()-x.min())/2); } else { int min; ViewRanges<IntView> r(x); do { min = r.min(); ++r; } while (r()); return min; } }
forceinline unsigned long long int IntTraceView::slack(IntView x) { return x.width()-1; }