A packed storage of objects of type <T> using an offset table for access. More...
Public Types | |
typedef T | value_type |
The value type the list contains. More... | |
typedef T * | pointer |
The pointer type for non-const access to value_type items. More... | |
typedef const T * | const_pointer |
The pointer type for const access to value_type items. More... | |
typedef T & | reference |
The type used for storing into value_type objects. More... | |
typedef const T & | const_reference |
The type used for reading from constant value_type objects. More... | |
typedef label | size_type |
The type to represent the size of a CompactListList. More... | |
Public Member Functions | |
CompactListList () noexcept=default | |
Default construct. More... | |
CompactListList (const CompactListList< T > &list) | |
Copy construct. More... | |
CompactListList (CompactListList< T > &&list) | |
Move construct. More... | |
CompactListList (CompactListList< T > &list, bool reuse) | |
Copy/move construct as specified. More... | |
CompactListList (const label mRows, const label nVals) | |
Construct from number of rows and number of values. More... | |
CompactListList (const label mRows, const label nVals, const Foam::zero) | |
Construct from number of rows, number of values initializing all elements to zero. More... | |
CompactListList (const label mRows, const label nVals, const T &) | |
Construct from number of rows, number of values and uniform value for all elements. More... | |
CompactListList (const labelUList &listSizes) | |
Construct given list of row-sizes. More... | |
CompactListList (const labelUList &listSizes, const T &val) | |
Construct given list of row-sizes and a uniform value. More... | |
CompactListList (Istream &is) | |
Construct from Istream. More... | |
autoPtr< CompactListList< T > > | clone () const |
Clone. More... | |
bool | empty () const noexcept |
True if the number of rows/sublists is zero. More... | |
bool | single () const noexcept |
True if content is a single row/sublist only. Such content could be flattened out into a straight list (for example). More... | |
label | length () const noexcept |
The primary size (the number of rows/sublists) More... | |
label | size () const noexcept |
The primary size (the number of rows/sublists) More... | |
label | totalSize () const noexcept |
The total addressed size, which corresponds to the end (back) offset and also the sum of all localSizes. More... | |
const labelList & | offsets () const noexcept |
Return the offset table (= size()+1) More... | |
labelList & | offsets () noexcept |
Return non-const access to the offset table. More... | |
const List< T > & | values () const noexcept |
Return the packed values. More... | |
List< T > & | values () noexcept |
Return non-const access to the packed values. More... | |
const T * | cdata () const noexcept |
Return const pointer to the first data in values() More... | |
T * | data () noexcept |
Return pointer to the first data in values() More... | |
const char * | cdata_bytes () const noexcept |
Return const pointer to underlying values storage, reinterpreted as byte data. More... | |
char * | data_bytes () noexcept |
Return pointer to underlying values storage, reinterpreted as byte data. More... | |
std::streamsize | size_bytes () const noexcept |
Number of contiguous bytes for the values data, no runtime check that the type is actually contiguous. More... | |
std::streamsize | byteSize () const |
Number of contiguous bytes for the values data, runtime FatalError if type is not contiguous. More... | |
labelList | sizes () const |
The local row sizes. Same as localSizes. More... | |
const labelUList | localStarts () const |
The local row starts. More... | |
labelList | localSizes () const |
The local row sizes. More... | |
label | localStart (const label i) const |
Starting offset for given row. More... | |
label | localEnd (const label i) const |
End offset (exclusive) for given row. More... | |
label | localSize (const label i) const |
Size of given row. More... | |
List< labelRange > | ranges () const |
Return start/size ranges for all sub-lists. More... | |
labelRange | range (const label i) const |
Return start/size range for given sub-list. More... | |
label | maxSize () const |
The max row length used. More... | |
void | clear () |
Clear addressing and contents. More... | |
void | resize (const label mRows) |
Reset size of CompactListList. More... | |
void | resize (const label mRows, const label nVals) |
Redimension CompactListList. More... | |
void | resize_nocopy (const label mRows, const label nVals) |
Redimension without preserving existing content. More... | |
void | resize (const label mRows, const label nVals, const T &) |
Redimension CompactListList and fill new elements with value. More... | |
void | resize (const labelUList &listSizes) |
Reset dimensions of CompactListList. More... | |
void | resize_nocopy (const labelUList &listSizes) |
Reset dimensions of CompactListList without preserving existing content. More... | |
void | setLocalSize (const label rowi, const label len) |
Alter local addressing size for given row, does not change content. More... | |
void | swap (CompactListList< T > &other) |
Swap contents. More... | |
void | transfer (CompactListList< T > &list) |
Transfer contents into this and annul the argument. More... | |
label | toGlobal (const label rowi, const label i) const |
From local index on rowi to global (flat) indexing into packed values. More... | |
label | toLocal (const label rowi, const label i) const |
From global to local index on rowi. More... | |
label | findRow (const label i) const |
Find row where global index comes from. Binary search. More... | |
label | whichRow (const label i) const |
Which row does global index come from? Binary search. More... | |
template<class SubListType , class OutputIter > | |
OutputIter | copy_unpack (OutputIter d_iter, const label pos=0, label len=-1) const |
Unpack sub-list copies in the range defined by pos and len with bounding behaviour like List::slice() by copy constructing begin at the destination iterator d_iter . More... | |
template<class SubListType , class OutputIter > | |
OutputIter | copy_unpack (OutputIter d_iter, const labelRange &range) const |
Unpack sub-list copies in the specified range. More... | |
template<class SubListType , class OutputIter > | |
OutputIter | copy_unpack (OutputIter d_iter, const labelUList &indices) const |
Unpack sub-list copies for the specified indices. More... | |
template<class SubListType = List<T>> | |
List< SubListType > | unpack () const |
Return non-compact list of lists. More... | |
template<class SubListType = List<T>> | |
List< SubListType > | unpack (const labelRange &range) const |
Return non-compact list of lists for the range of sub-lists. More... | |
template<class SubListType = List<T>> | |
List< SubListType > | unpack (const labelUList &indices) const |
Return non-compact list of lists for specified indices. More... | |
void | operator= (const CompactListList< T > &list) |
Copy assignment. More... | |
void | operator= (CompactListList< T > &&list) |
Move assignment. More... | |
void | operator= (const T &val) |
Assignment of all entries to the given value. More... | |
void | operator= (const Foam::zero) |
Assignment of all entries to zero. More... | |
const SubList< T > | localList (const label i) const |
Return const access to sub-list (no subscript checking) More... | |
SubList< T > | localList (const label i) |
Return non-const access to sub-list (no subscript checking) More... | |
const SubList< T > | operator[] (const label i) const |
Return const access to sub-list (no subscript checking) More... | |
SubList< T > | operator[] (const label i) |
Return non-const access to sub-list (no subscript checking) More... | |
T & | operator() (const label i, const label j) |
Return subscript-checked element. More... | |
const T & | operator() (const label i, const label j) const |
Return const subscript-checked element. More... | |
Istream & | readList (Istream &is) |
Read CompactListList as offsets/values pair from Istream, discards current list contents. More... | |
Ostream & | writeList (Ostream &os, const label shortLen=0) const |
Write CompactListList as offsets/values pair. More... | |
Ostream & | writeMatrix (Ostream &os, const label shortLen=0) const |
Write CompactListList as a formatted matrix of values (ASCII) More... | |
const List< T > & | m () const noexcept |
Const access to the packed values. More... | |
List< T > & | m () noexcept |
Non-const access to the packed values. More... | |
label | index (const label rowi, const label colj) const |
Return flat index into packed values. More... | |
label | whichColumn (const label rowi, const label i) const |
Get column within specified row that corresponds to global index. More... | |
void | setSize (const label mRows) |
Redimension - same as resize() More... | |
void | setSize (const label mRows, const label nVals) |
Redimension - same as resize() More... | |
void | setSize (const label mRows, const label nVals, const T &val) |
Redimension - same as resize() More... | |
void | setSize (const labelUList &listSizes) |
Reset sizes - same as resize() More... | |
template<class ListListType > | |
Foam::CompactListList< T > | pack_impl (const ListListType &lists, const bool checkOverflow) |
template<class SubListType > | |
Foam::CompactListList< T > | pack (const UList< SubListType > &lists, const bool checkOverflow) |
template<class SubListType , class Addr > | |
Foam::CompactListList< T > | pack (const IndirectListBase< SubListType, Addr > &lists, const bool checkOverflow) |
template<class SubListType > | |
Foam::List< SubListType > | unpack () const |
template<class SubListType > | |
Foam::List< SubListType > | unpack (const labelRange &range) const |
template<class SubListType > | |
Foam::List< SubListType > | unpack (const labelUList &indices) const |
Static Public Member Functions | |
static const CompactListList< T > & | null () noexcept |
Return a null CompactListList (reference to a nullObject). More... | |
template<class SubListType = List<T>> | |
static CompactListList< T > | pack (const UList< SubListType > &lists, const bool checkOverflow=false) |
Construct by packing together the list of lists. More... | |
template<class SubListType , class Addr > | |
static CompactListList< T > | pack (const IndirectListBase< SubListType, Addr > &lists, const bool checkOverflow=false) |
Construct by packing together an indirect list of lists. More... | |
Friends | |
Istream & | operator>> (Istream &, CompactListList< T > &) |
Read CompactListList offsets/values pair from Istream, discarding existing contents. More... | |
Ostream & | operator (Ostream &, const CompactListList< T > &) |
Write CompactListList as offsets/values pair. More... | |
A packed storage of objects of type <T> using an offset table for access.
The offset table is the size of the number of rows+1 whose elements are the accumulated sizes of the rows, i.e.
Note that an empty CompactListList should have empty offsets (not size 1).
Definition at line 97 of file polyTopoChange.H.
typedef T value_type |
The value type the list contains.
Definition at line 137 of file CompactListList.H.
The pointer type for non-const access to value_type items.
Definition at line 142 of file CompactListList.H.
typedef const T* const_pointer |
The pointer type for const access to value_type items.
Definition at line 147 of file CompactListList.H.
The type used for storing into value_type objects.
Definition at line 152 of file CompactListList.H.
typedef const T& const_reference |
The type used for reading from constant value_type objects.
Definition at line 157 of file CompactListList.H.
typedef label size_type |
The type to represent the size of a CompactListList.
Definition at line 162 of file CompactListList.H.
|
defaultnoexcept |
Default construct.
|
inline |
Copy construct.
Definition at line 45 of file CompactListListI.H.
|
inline |
Move construct.
Definition at line 56 of file CompactListListI.H.
|
inline |
Copy/move construct as specified.
Definition at line 67 of file CompactListListI.H.
|
inline |
Construct from number of rows and number of values.
Definition at line 79 of file CompactListListI.H.
|
inline |
Construct from number of rows, number of values initializing all elements to zero.
Definition at line 93 of file CompactListListI.H.
|
inline |
Construct from number of rows, number of values and uniform value for all elements.
Definition at line 108 of file CompactListListI.H.
|
explicit |
Construct given list of row-sizes.
Definition at line 193 of file CompactListList.C.
CompactListList | ( | const labelUList & | listSizes, |
const T & | val | ||
) |
Construct given list of row-sizes and a uniform value.
Definition at line 206 of file CompactListList.C.
|
explicit |
Construct from Istream.
Definition at line 27 of file CompactListListIO.C.
|
inlinestaticnoexcept |
Return a null CompactListList (reference to a nullObject).
Definition at line 170 of file CompactListList.H.
|
static |
Construct by packing together the list of lists.
|
static |
Construct by packing together an indirect list of lists.
|
inline |
Clone.
Definition at line 123 of file CompactListListI.H.
References Foam::New().
|
inlinenoexcept |
True if the number of rows/sublists is zero.
Definition at line 167 of file CompactListListI.H.
Referenced by Foam::calcCellCellsImpl().
|
inlinenoexcept |
True if content is a single row/sublist only. Such content could be flattened out into a straight list (for example).
Definition at line 177 of file CompactListListI.H.
|
inlinenoexcept |
The primary size (the number of rows/sublists)
Definition at line 184 of file CompactListListI.H.
Referenced by CompactListList< T >::writeMatrix().
|
inlinenoexcept |
The primary size (the number of rows/sublists)
Definition at line 192 of file CompactListListI.H.
Referenced by Foam::calcCellCellsImpl(), noDecomp::decompose(), randomDecomp::decompose(), ptscotchDecomp::decompose(), metisLikeDecomp::decompose(), Foam::invertOneToManyCompact(), SloanRenumber::renumber(), randomRenumber::renumber(), and noRenumber::renumber().
|
inlinenoexcept |
The total addressed size, which corresponds to the end (back) offset and also the sum of all localSizes.
Definition at line 207 of file CompactListListI.H.
Referenced by Foam::calcCellCellsImpl().
|
inlinenoexcept |
Return the offset table (= size()+1)
Definition at line 294 of file CompactListList.H.
Referenced by Foam::calcCellCellsImpl(), metisLikeDecomp::decompose(), ptscotchDecomp::decompose(), decompositionInformation::decompositionInformation(), globalIndex::get(), Foam::ensightOutput::Detail::getPolysFacePoints(), Foam::invertOneToManyCompact(), and GAMGAgglomeration::procAgglomerateLduAddressing().
|
inlinenoexcept |
Return non-const access to the offset table.
Definition at line 299 of file CompactListList.H.
Return the packed values.
Definition at line 304 of file CompactListList.H.
Referenced by Foam::calcCellCellsImpl(), metisLikeDecomp::decompose(), ptscotchDecomp::decompose(), decompositionInformation::decompositionInformation(), Foam::ensightOutput::Detail::getPolysFacePoints(), Foam::invertOneToManyCompact(), and GAMGAgglomeration::procAgglomerateLduAddressing().
Return non-const access to the packed values.
Definition at line 309 of file CompactListList.H.
|
inlinenoexcept |
Return const pointer to the first data in values()
Definition at line 132 of file CompactListListI.H.
|
inlinenoexcept |
Return pointer to the first data in values()
Definition at line 139 of file CompactListListI.H.
|
inlinenoexcept |
Return const pointer to underlying values storage, reinterpreted as byte data.
Definition at line 146 of file CompactListListI.H.
|
inlinenoexcept |
Return pointer to underlying values storage, reinterpreted as byte data.
Definition at line 153 of file CompactListListI.H.
|
inlinenoexcept |
Number of contiguous bytes for the values data, no runtime check that the type is actually contiguous.
Definition at line 160 of file CompactListListI.H.
std::streamsize byteSize | ( | ) | const |
Number of contiguous bytes for the values data, runtime FatalError if type is not contiguous.
Definition at line 248 of file CompactListList.C.
References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.
|
inline |
The local row sizes. Same as localSizes.
Definition at line 200 of file CompactListListI.H.
|
inline |
The local row starts.
Definition at line 222 of file CompactListListI.H.
Foam::labelList localSizes | ( | ) | const |
The local row sizes.
Definition at line 335 of file CompactListList.C.
References Foam::HashTableOps::values().
Referenced by GAMGAgglomeration::procAgglomerateLduAddressing().
|
inline |
Starting offset for given row.
Definition at line 233 of file CompactListListI.H.
|
inline |
End offset (exclusive) for given row.
Definition at line 240 of file CompactListListI.H.
|
inline |
Size of given row.
Definition at line 247 of file CompactListListI.H.
Foam::List< Foam::labelRange > ranges | ( | ) | const |
Return start/size ranges for all sub-lists.
Definition at line 269 of file CompactListList.C.
References Foam::HashTableOps::values().
Foam::labelRange range | ( | const label | i | ) | const |
Return start/size range for given sub-list.
Definition at line 261 of file CompactListList.C.
|
inline |
The max row length used.
Definition at line 214 of file CompactListListI.H.
|
inline |
Clear addressing and contents.
Definition at line 326 of file CompactListListI.H.
|
inline |
Reset size of CompactListList.
Definition at line 334 of file CompactListListI.H.
Referenced by CompactListList< T >::setSize().
|
inline |
Redimension CompactListList.
Definition at line 360 of file CompactListListI.H.
|
inline |
Redimension without preserving existing content.
Definition at line 381 of file CompactListListI.H.
Referenced by Foam::calcCellCellsImpl().
|
inline |
Redimension CompactListList and fill new elements with value.
Definition at line 402 of file CompactListListI.H.
void resize | ( | const labelUList & | listSizes | ) |
Reset dimensions of CompactListList.
Definition at line 292 of file CompactListList.C.
void resize_nocopy | ( | const labelUList & | listSizes | ) |
Reset dimensions of CompactListList without preserving existing content.
Definition at line 304 of file CompactListList.C.
void setLocalSize | ( | const label | rowi, |
const label | len | ||
) |
Alter local addressing size for given row, does not change content.
Definition at line 316 of file CompactListList.C.
References delta.
void swap | ( | CompactListList< T > & | other | ) |
Swap contents.
Definition at line 359 of file CompactListList.C.
void transfer | ( | CompactListList< T > & | list | ) |
Transfer contents into this and annul the argument.
Definition at line 375 of file CompactListList.C.
Referenced by CompactListList< T >::operator=().
|
inline |
From local index on rowi to global (flat) indexing into packed values.
Definition at line 271 of file CompactListListI.H.
Referenced by CompactListList< T >::index().
|
inline |
From global to local index on rowi.
Definition at line 282 of file CompactListListI.H.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and Foam::nl.
Referenced by CompactListList< T >::whichColumn().
|
inline |
Find row where global index comes from. Binary search.
Definition at line 302 of file CompactListListI.H.
References Foam::findLower().
|
inline |
Which row does global index come from? Binary search.
FatalError if out-of-bounds
Definition at line 309 of file CompactListListI.H.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and Foam::nl.
OutputIter copy_unpack | ( | OutputIter | d_iter, |
const label | pos = 0 , |
||
label | len = -1 |
||
) | const |
Unpack sub-list copies in the range defined by pos
and len
with bounding behaviour like List::slice() by copy constructing begin at the destination iterator d_iter
.
[out] | d_iter | The output destination |
pos | The start of sub-region to copy (no-op if -ve or out-of-range) | |
len | The length of sub-region to copy (-ve = until the end) |
Definition at line 392 of file CompactListList.C.
References Foam::pos().
OutputIter copy_unpack | ( | OutputIter | d_iter, |
const labelRange & | range | ||
) | const |
Unpack sub-list copies in the specified range.
[out] | d_iter | The output destination |
range | The sub-region to copy |
Definition at line 423 of file CompactListList.C.
References range.
OutputIter copy_unpack | ( | OutputIter | d_iter, |
const labelUList & | indices | ||
) | const |
Unpack sub-list copies for the specified indices.
[out] | d_iter | The output destination |
indices | The sub-regions to copy |
Definition at line 435 of file CompactListList.C.
List<SubListType> unpack | ( | ) | const |
Return non-compact list of lists.
Referenced by multiLevelDecomp::decompose().
List<SubListType> unpack | ( | const labelRange & | range | ) | const |
Return non-compact list of lists for the range of sub-lists.
List<SubListType> unpack | ( | const labelUList & | indices | ) | const |
Return non-compact list of lists for specified indices.
|
inline |
Copy assignment.
Definition at line 426 of file CompactListListI.H.
|
inline |
Move assignment.
Definition at line 442 of file CompactListListI.H.
References CompactListList< T >::transfer().
Assignment of all entries to the given value.
Definition at line 457 of file CompactListListI.H.
|
inline |
Assignment of all entries to zero.
Definition at line 464 of file CompactListListI.H.
|
inline |
Return const access to sub-list (no subscript checking)
Definition at line 255 of file CompactListListI.H.
Referenced by CompactListList< T >::writeMatrix().
|
inline |
Return non-const access to sub-list (no subscript checking)
Definition at line 263 of file CompactListListI.H.
|
inline |
Return const access to sub-list (no subscript checking)
Definition at line 472 of file CompactListListI.H.
|
inline |
Return non-const access to sub-list (no subscript checking)
Definition at line 481 of file CompactListListI.H.
Return subscript-checked element.
Definition at line 490 of file CompactListListI.H.
Return const subscript-checked element.
Definition at line 501 of file CompactListListI.H.
Foam::Istream & readList | ( | Istream & | is | ) |
Read CompactListList as offsets/values pair from Istream, discards current list contents.
Definition at line 39 of file CompactListListIO.C.
Referenced by Foam::operator>>().
Foam::Ostream & writeList | ( | Ostream & | os, |
const label | shortLen = 0 |
||
) | const |
Write CompactListList as offsets/values pair.
Definition at line 50 of file CompactListListIO.C.
References os().
Foam::Ostream & writeMatrix | ( | Ostream & | os, |
const label | shortLen = 0 |
||
) | const |
Write CompactListList as a formatted matrix of values (ASCII)
Definition at line 63 of file CompactListListIO.C.
References IOstreamOption::ASCII, token::BEGIN_LIST, token::END_LIST, IOstreamOption::format(), CompactListList< T >::length(), CompactListList< T >::localList(), Foam::nl, and os().
Const access to the packed values.
Definition at line 668 of file CompactListList.H.
Non-const access to the packed values.
Definition at line 674 of file CompactListList.H.
|
inline |
Return flat index into packed values.
Definition at line 679 of file CompactListList.H.
References CompactListList< T >::toGlobal().
|
inline |
Get column within specified row that corresponds to global index.
Definition at line 687 of file CompactListList.H.
References CompactListList< T >::toLocal().
|
inline |
Redimension - same as resize()
Definition at line 695 of file CompactListList.H.
References CompactListList< T >::resize().
|
inline |
Redimension - same as resize()
Definition at line 703 of file CompactListList.H.
References CompactListList< T >::resize().
|
inline |
Redimension - same as resize()
Definition at line 711 of file CompactListList.H.
References CompactListList< T >::resize().
|
inline |
Reset sizes - same as resize()
Definition at line 719 of file CompactListList.H.
References CompactListList< T >::resize().
Foam::CompactListList<T> pack_impl | ( | const ListListType & | lists, |
const bool | checkOverflow | ||
) |
Definition at line 62 of file CompactListList.C.
References Foam::BitOps::count().
Foam::CompactListList<T> pack | ( | const UList< SubListType > & | lists, |
const bool | checkOverflow | ||
) |
Definition at line 122 of file CompactListList.C.
Foam::CompactListList<T> pack | ( | const IndirectListBase< SubListType, Addr > & | lists, |
const bool | checkOverflow | ||
) |
Definition at line 138 of file CompactListList.C.
Foam::List<SubListType> unpack | ( | ) | const |
Definition at line 458 of file CompactListList.C.
References UList< T >::begin().
Foam::List<SubListType> unpack | ( | const labelRange & | range | ) | const |
Definition at line 471 of file CompactListList.C.
References IndirectListBase< T, Addr >::begin(), and range.
Foam::List<SubListType> unpack | ( | const labelUList & | indices | ) | const |
Definition at line 484 of file CompactListList.C.
References IndirectListBase< T, Addr >::begin(), and UList< T >::size().
|
friend |
Read CompactListList offsets/values pair from Istream, discarding existing contents.
Definition at line 729 of file CompactListList.H.
|
friend |
Write CompactListList as offsets/values pair.