LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
A constant reference to a data range. More...
#include "sparse_vector.h"
Public Types | |
using | iterator = typename datarange_t::iterator |
using | const_iterator = typename datarange_t::const_iterator |
using | less_int_range = typename datarange_t::less_int_range |
Public Member Functions | |
decltype(auto) | begin () |
decltype(auto) | end () |
const vector_t & | data () const |
Return the vector of data values (only constant access). More... | |
~const_datarange_t ()=delete | |
Protected Member Functions | |
decltype(auto) friend | details::make_const_datarange_t (datarange_t &) |
datarange_t const & | base () const |
datarange_t & | base () |
Static Protected Member Functions | |
static void | static_check () |
Private Types | |
typedef range_t< size_type > | base_t |
base class More... | |
typedef size_type | size_type |
type for the indices in the range More... | |
typedef std::ptrdiff_t | difference_type |
type for index difference More... | |
Private Member Functions | |
void | resize (size_type new_size) |
Moves the end of the range to fit the specified size. More... | |
template<typename ITER > | |
datarange_t & | extend (size_type index, ITER first, ITER last) |
Appends the specified elements to this range. More... | |
template<typename ITER > | |
lar::sparse_vector< T >::datarange_t & | extend (size_type index, ITER first, ITER last) |
void | move_head (size_type to_index, value_type def_value=value_zero) |
Moves the begin of this range. More... | |
void | move_head (difference_type shift) |
Moves the begin of the range by the specified amount. More... | |
void | move_tail (size_type to_index, value_type def_value=value_zero) |
Moves the end of this range. More... | |
void | move_tail (difference_type shift) |
Moves the end of the range by the specified amount. More... | |
template<typename Stream > | |
void | dump (Stream &&out) const |
Dumps the content of this data range into a stream. More... | |
void | fit_size_from_data () |
void | set (size_type from, size_type to) |
Sets the borders of the range. More... | |
size_type | begin_index () const |
Returns the first absolute index included in the range. More... | |
size_type | end_index () const |
Returns the first absolute index not included in the range. More... | |
size_type | relative_index (size_type index) const |
Returns the position within the range of the absolute index specified. More... | |
size_type | size () const |
Returns the size of the range. More... | |
bool | empty () const |
Returns whether the range is empty. More... | |
bool | includes (size_type index) const |
Returns whether the specified absolute index is included in this range. More... | |
bool | includes (const range_t &r) const |
Returns whether the specified range is completely included in this one. More... | |
bool | overlap (const range_t &r) const |
Returns if this and the specified range overlap. More... | |
bool | separate (const range_t &r) const |
Returns if there are elements in between this and the specified range. More... | |
bool | borders (size_type index) const |
Returns whether an index is within or immediately after this range. More... | |
bool | operator== (const range_t &as) const |
Returns whether the specified range has our same offset and size. More... | |
bool | is_valid () const |
Returns whether the range is valid (that is, non-negative size) More... | |
iterator | get_iterator (size_type index) |
Returns an iterator to the specified absolute value (no check!) More... | |
const_iterator | get_iterator (size_type index) const |
Returns an iterator to the specified absolute value (no check!) More... | |
const_iterator | get_const_iterator (size_type index) const |
Returns an iterator to the specified absolute value (no check!) More... | |
const_iterator | begin () const |
begin and end iterators More... | |
const_iterator | end () const |
begin and end iterators More... | |
const_iterator | cbegin () const |
begin and end iterators More... | |
const_iterator | cend () const |
begin and end iterators More... | |
void | resize (size_t new_size) |
Resizes the range (optionally filling the new elements with def_value) More... | |
void | resize (size_t new_size, value_type def_value) |
Resizes the range (optionally filling the new elements with def_value) More... | |
value_type & | operator[] (size_type index) |
Returns the value at the specified absolute index. More... | |
const value_type & | operator[] (size_type index) const |
Returns the value at the specified absolute index. More... | |
bool | operator< (const range_t &than) const |
Sort: this range is smaller if its offset is smaller. More... | |
Static Private Member Functions | |
static bool | less (const range_t &a, const range_t &b) |
Returns if a is "less" than b. More... | |
static bool | less (const range_t &a, size_type b) |
Returns if a is "less" than b. More... | |
static bool | less (size_type a, const range_t &b) |
Returns if a is "less" than b. More... | |
Private Attributes | |
vector_t | values |
data in the range More... | |
size_type | offset |
offset (absolute index) of the first element More... | |
size_type | last |
offset (absolute index) after the last element More... | |
A constant reference to a data range.
Values in the range can be modified, but their position and number can not.
Definition at line 1360 of file sparse_vector.h.
|
inherited |
base class
Definition at line 1234 of file sparse_vector.h.
using lar::sparse_vector< T >::const_datarange_t::const_iterator = typename datarange_t::const_iterator |
Definition at line 1363 of file sparse_vector.h.
|
inherited |
type for index difference
Definition at line 206 of file sparse_vector.h.
using lar::sparse_vector< T >::const_datarange_t::iterator = typename datarange_t::iterator |
Definition at line 1362 of file sparse_vector.h.
using lar::sparse_vector< T >::const_datarange_t::less_int_range = typename datarange_t::less_int_range |
Definition at line 1381 of file sparse_vector.h.
|
inherited |
type for the indices in the range
Definition at line 205 of file sparse_vector.h.
|
delete |
|
inlineprotected |
Definition at line 1402 of file sparse_vector.h.
|
inlineprotected |
Definition at line 1403 of file sparse_vector.h.
|
inlineinherited |
begin and end iterators
Definition at line 1270 of file sparse_vector.h.
References util::values().
|
inline |
Definition at line 1385 of file sparse_vector.h.
References util::begin().
|
inlineinherited |
Returns the first absolute index included in the range.
Definition at line 227 of file sparse_vector.h.
|
inlineinherited |
Returns whether an index is within or immediately after this range.
Returns whether the specified absolute index is included in this range or is immediately after it (not before it!)
Definition at line 275 of file sparse_vector.h.
References geo::operator<().
|
inlineinherited |
begin and end iterators
Definition at line 1272 of file sparse_vector.h.
References util::values().
|
inlineinherited |
begin and end iterators
Definition at line 1273 of file sparse_vector.h.
References util::values().
|
inline |
Return the vector of data values (only constant access).
Definition at line 1395 of file sparse_vector.h.
|
protected |
|
inherited |
Dumps the content of this data range into a stream.
Stream | type of stream to sent the dump to |
out | stream to sent the dump to |
The output format is:
[min - max] (size) { values... }
Output is on a single line, which is not terminated.
Definition at line 2390 of file sparse_vector.h.
References util::size(), and util::values().
|
inlineinherited |
Returns whether the range is empty.
Definition at line 248 of file sparse_vector.h.
|
inlineinherited |
begin and end iterators
Definition at line 1271 of file sparse_vector.h.
References util::values().
|
inline |
Definition at line 1386 of file sparse_vector.h.
References util::end().
|
inlineinherited |
Returns the first absolute index not included in the range.
Definition at line 230 of file sparse_vector.h.
|
inherited |
Appends the specified elements to this range.
ITER | type of iterator of the range |
index | the starting point |
first | iterator to the first object to copy |
last | iterator after the last object to copy |
Referenced by lar::sparse_vector< T >::merge_ranges().
|
inherited |
Definition at line 2362 of file sparse_vector.h.
References util::size(), and util::values().
|
inlineprotectedinherited |
Definition at line 1350 of file sparse_vector.h.
|
inlineinherited |
Returns an iterator to the specified absolute value (no check!)
Definition at line 1260 of file sparse_vector.h.
References util::begin(), and util::values().
|
inlineinherited |
Returns an iterator to the specified absolute value (no check!)
Definition at line 1258 of file sparse_vector.h.
|
inlineinherited |
Returns an iterator to the specified absolute value (no check!)
Definition at line 1259 of file sparse_vector.h.
|
inlineinherited |
Returns whether the specified absolute index is included in this range.
Definition at line 251 of file sparse_vector.h.
|
inlineinherited |
Returns whether the specified range is completely included in this one.
Definition at line 254 of file sparse_vector.h.
References lar::range_t< SIZE >::begin_index(), and lar::range_t< SIZE >::end_index().
|
inlineinherited |
Returns whether the range is valid (that is, non-negative size)
Definition at line 286 of file sparse_vector.h.
References lar::range_t< SIZE >::offset.
|
inlinestaticinherited |
Returns if a is "less" than b.
Definition at line 290 of file sparse_vector.h.
|
inlinestaticinherited |
Returns if a is "less" than b.
Definition at line 291 of file sparse_vector.h.
References lar::range_t< SIZE >::offset.
|
inlinestaticinherited |
Returns if a is "less" than b.
Definition at line 292 of file sparse_vector.h.
References lar::range_t< SIZE >::offset.
|
inlineinherited |
Moves the begin of the range by the specified amount.
Definition at line 242 of file sparse_vector.h.
|
inherited |
Moves the begin of this range.
to_index | absolute index to move the head to |
def_value | value to be inserted in case of expansion of the range |
Definition at line 2373 of file sparse_vector.h.
References util::values().
Referenced by lar::sparse_vector< T >::unset_at().
|
inlineinherited |
Moves the end of the range by the specified amount.
Definition at line 245 of file sparse_vector.h.
|
inlineinherited |
Moves the end of this range.
to_index | absolute index to move the tail to |
def_value | value to be inserted in case of expansion of the range |
Definition at line 1328 of file sparse_vector.h.
Referenced by lar::sparse_vector< T >::unset_at().
|
inlineinherited |
Sort: this range is smaller if its offset is smaller.
Definition at line 279 of file sparse_vector.h.
|
inlineinherited |
Returns whether the specified range has our same offset and size.
Definition at line 283 of file sparse_vector.h.
References lar::range_t< SIZE >::last, and lar::range_t< SIZE >::offset.
|
inlineinherited |
Returns the value at the specified absolute index.
Definition at line 1292 of file sparse_vector.h.
|
inlineinherited |
Returns the value at the specified absolute index.
Definition at line 1293 of file sparse_vector.h.
References util::values().
|
inlineinherited |
Returns if this and the specified range overlap.
Definition at line 260 of file sparse_vector.h.
References lar::range_t< SIZE >::begin_index(), and lar::range_t< SIZE >::end_index().
|
inlineinherited |
Returns the position within the range of the absolute index specified.
Definition at line 233 of file sparse_vector.h.
|
inlineinherited |
Moves the end of the range to fit the specified size.
Definition at line 239 of file sparse_vector.h.
|
inlineinherited |
Resizes the range (optionally filling the new elements with def_value)
Definition at line 1278 of file sparse_vector.h.
|
inlineinherited |
Resizes the range (optionally filling the new elements with def_value)
Definition at line 1283 of file sparse_vector.h.
References util::values().
|
inlineinherited |
Returns if there are elements in between this and the specified range.
Definition at line 266 of file sparse_vector.h.
References lar::range_t< SIZE >::begin_index(), and lar::range_t< SIZE >::end_index().
|
inlineinherited |
Sets the borders of the range.
Definition at line 220 of file sparse_vector.h.
|
inlineinherited |
Returns the size of the range.
Definition at line 236 of file sparse_vector.h.
|
inlinestaticprotected |
Definition at line 1405 of file sparse_vector.h.
|
inherited |
offset (absolute index) after the last element
Definition at line 211 of file sparse_vector.h.
|
inherited |
offset (absolute index) of the first element
Definition at line 208 of file sparse_vector.h.
|
protectedinherited |
data in the range
Definition at line 1348 of file sparse_vector.h.