_Region(_Acc const& acc, Val const& __V, subvalue_type const& __R) : _M_acc(acc) { for (size_t __i = 0; __i != __K; ++__i) { _M_low_bounds[__i] = _M_acc(__V,__i) - __R; _M_high_bounds[__i] = _M_acc(__V,__i) + __R; } }
_Region(Val const& __V, subvalue_type const& __R, _Acc const& __acc=_Acc(), const _Cmp& __cmp=_Cmp()) : _M_acc(__acc), _M_cmp(__cmp) { for (size_t __i = 0; __i != __K; ++__i) { _M_low_bounds[__i] = _M_acc(__V,__i) - __R; _M_high_bounds[__i] = _M_acc(__V,__i) + __R; } }
_M_Search_Region(Val const& __Vlo, Val const& __Vhi, _Acc const& __acc=_Acc(), const _Cmp& __cmp=_Cmp()) : _M_acc(__acc), _M_cmp(__cmp) { for (size_t __i = 0; __i != __K; ++__i) { _M_low_bounds[__i] = _M_acc(__Vlo,__i); _M_high_bounds[__i] = _M_acc(__Vhi,__i); } }
bool encloses(value_type const& __V) const { for (size_t __i = 0; __i != __K; ++__i) { if (_M_cmp(_M_acc(__V, __i), _M_low_bounds[__i]) || _M_cmp(_M_high_bounds[__i], _M_acc(__V, __i))) return false; } return true; }
_Region(_Acc const& acc, Val const& __V) : _M_acc(acc) { for (size_t __i = 0; __i != __K; ++__i) { _M_low_bounds[__i] = _M_high_bounds[__i] = _M_acc(__V,__i); } }
_Region& set_high_bound(value_type const& __V, size_t const __L) { _M_high_bounds[__L % __K] = _M_acc(__V, __L % __K); return *this; }
_Region& set_low_bound(value_type const& __V, size_t const __L) throw () { _M_low_bounds[__L % __K] = _M_acc(__V, __L % __K); return *this; }