A dynamic list of packed unsigned integers, with the number of bits per item specified by the <Width> template parameter. More...
#include <PackedList.H>


Classes | |
| class | reference |
| A reference supporting read/write access to an entry. More... | |
| struct | hasher |
| Hashing functor for PackedList. More... | |
Public Types | |
| typedef unsigned int | block_type |
| The storage block type for bit elements. | |
| typedef unsigned int | const_reference |
Public Member Functions | |
| constexpr | PackedList () noexcept |
| Default construct, zero-sized and no allocation. | |
| PackedList (const label numElem) | |
| Construct for given number of elements, initializes values to 0. | |
| PackedList (const label numElem, const unsigned int val) | |
| Construct for given number of elements, and the specified value for each element. | |
| PackedList (Istream &is) | |
| Construct from Istream. | |
| PackedList (const PackedList< Width > &list) | |
| Copy construct. | |
| PackedList (PackedList< Width > &&list) | |
| Move construct. | |
| PackedList (const PackedList< Width > &list, const labelUList &addr) | |
| Copy construct a subset. | |
| template<class Addr> | |
| PackedList (const PackedList< Width > &list, const IndirectListBase< label, Addr > &addr) | |
| Copy construct a subset. | |
| PackedList (const PackedList< Width > &list, const labelRange &range) | |
| Copy construct a subset range. | |
| PackedList (const labelUList &values) | |
| Construct from a list of values. | |
| template<class Addr> | |
| PackedList (const IndirectListBase< label, Addr > &values) | |
| Construct from a indirect list of values. | |
| autoPtr< PackedList< Width > > | clone () const |
| Clone. | |
| void | checkIndex (const label i) const |
| Check index is within valid range [0,size). | |
| bool | empty () const noexcept |
| True if the list is empty (ie, size() is zero). | |
| label | size () const noexcept |
| Number of entries. | |
| label | capacity () const noexcept |
| Number of elements that can be stored without reallocating. | |
| bool | uniform () const |
| True if all entries have identical values (and list is non-empty). | |
| bool | equal (const PackedList< Width > &other) const |
| Test for equality of sizes and the bits set. | |
| unsigned int | get (const label i) const |
| Get value at index i or 0 for out-of-range. | |
| bool | set (const label i, unsigned int val=~0u) |
| Set value at index i, default value set is the max_value. | |
| bool | unset (const label i) |
| Unset the entry at index i. | |
| labelList | values () const |
| Return the values as a list of labels. | |
| template<class IntType = unsigned int> | |
| List< IntType > | unpack () const |
| Return the values as a list of integral type. | |
| template<class IntType = unsigned int> | |
| List< IntType > | unpack (const labelRange &range) const |
| Return the range of values as a list of integral type. | |
| template<class IntType = unsigned int> | |
| List< IntType > | unpack (const labelUList &locations) const |
| Extract the values for the specified locations as a list of integral type. | |
| void | fill (const unsigned int val) |
| Assign all entries to the given value. | |
| bool | trim (label minpos=-1) |
| Trim any trailing zero elements, optionally specifying a a minimum position, below which trimming will not occur. | |
| void | reset () |
| Clear all bits but do not adjust the addressable size. | |
| void | setCapacity (const label numElem) |
| Alter the size of the underlying storage. | |
| void | resize (const label numElem, const unsigned int val=0u) |
| Reset addressable list size, does not shrink the allocated size. | |
| void | resize_nocopy (const label numElem) |
| Currently identical to resize. Subject to future change (Oct-2021). | |
| void | reserve (const label numElem) |
| Reserve allocation space for at least this size (uses a size doubling strategy). | |
| void | reserve_exact (const label numElem) |
| Reserve allocation space for at least this size (uses the specified size without any other resizing strategy). | |
| void | clear () |
| Clear the list, i.e. set addressable size to zero. | |
| void | clearStorage () |
| Clear the list and delete storage. | |
| void | shrink_to_fit () |
| Shrink the allocated space to what is actually used. | |
| void | shrink () |
| Alias for shrink_to_fit(). | |
| void | swap (PackedList< Width > &rhs) |
| Swap contents with argument. | |
| void | transfer (PackedList< Width > &rhs) |
| Transfer the contents of the argument list into this list and annul the argument list. | |
| label | num_blocks () const noexcept |
| The number of internal storage blocks. | |
| const List< block_type > & | storage () const noexcept |
| Return the underlying storage blocks. | |
| List< block_type > & | storage () noexcept |
| Return the underlying storage blocks. | |
| const block_type * | cdata () const noexcept |
| A const pointer to the raw storage. | |
| block_type * | data () noexcept |
| A pointer to the raw storage. | |
| const char * | cdata_bytes () const noexcept |
| A const pointer to the raw storage, reinterpreted as byte data. | |
| char * | data_bytes () noexcept |
| A pointer to the raw storage, reinterpreted as byte data. | |
| std::streamsize | size_data () const noexcept |
| The number of integer blocks addressed in the raw storage. Same as num_blocks(). | |
| std::streamsize | size_bytes () const noexcept |
| The number of bytes addressed in the raw storage including any padding. | |
| std::streamsize | byteSize () const noexcept |
| Same as size_bytes(). | |
| Ostream & | printBits (Ostream &os, bool debugOutput=false) const |
| Print bit patterns, optionally with extra debug. | |
| Istream & | readList (Istream &is) |
| Clear list and read from stream. | |
| Ostream & | writeList (Ostream &os, label shortLen=0) const |
| Write List, with line-breaks in ASCII when length exceeds shortLen. | |
| void | writeEntry (const word &keyword, Ostream &os) const |
| Write as a dictionary entry with keyword. | |
| void | push_back (const unsigned int val) |
| Append a value at the end of the list. | |
| void | pop_back (label n=1) |
| Reduce size by 1 or more elements. Can be called on an empty list. | |
| unsigned int | remove () |
| Remove and return the last element. | |
| unsigned int | operator[] (const label i) const |
| Identical to get() - get value at index. | |
| reference | operator[] (const label i) |
| Non-const access to value at index. | |
| void | operator= (const PackedList< Width > &list) |
| Copy assignment. | |
| void | operator= (PackedList< Width > &&list) |
| Move assignment. | |
| void | operator= (const unsigned int val) |
| Assign all entries to the given value. fill(). | |
| InfoProxy< PackedList< Width > > | info () const noexcept |
| Return info proxy, used to print information to a stream. | |
| void | assign (const unsigned int val) |
| Deprecated(2020-11) use fill(). | |
| void | assign (const PackedList< Width > &rhs) |
| Deprecated(2020-11) use operator=. | |
| void | setSize (const label n, unsigned int val=0u) |
| Alias for resize(). | |
| PackedList< Width > & | append (const unsigned int val) |
| Append a value at the end of the list. | |
| template<class IntType> | |
| Foam::List< IntType > | unpack () const |
| template<class IntType> | |
| Foam::List< IntType > | unpack (const labelRange &range) const |
| template<class IntType> | |
| Foam::List< IntType > | unpack (const labelUList &locations) const |
| Public Member Functions inherited from PackedListCore | |
| ClassNameNoDebug ("PackedList") | |
| Define template name. | |
Static Public Member Functions | |
| static constexpr label | num_blocks (label numElem) noexcept |
| Calculate the number of blocks required to _address_ the requested number of elements. | |
| static constexpr block_type | mask_lower (unsigned elementOffset) |
| Masking for all bits below the element offset. | |
Static Public Attributes | |
| static constexpr unsigned | bits_per_block = (std::numeric_limits<block_type>::digits) |
| The number of bits in a single block. | |
| static constexpr unsigned | element_width = (Width) |
| The width of an individual element (in bits). | |
| static constexpr unsigned | elem_per_block = (bits_per_block / Width) |
| The number of elements stored per data block. | |
| static constexpr block_type | max_value = ((1u << Width) - 1) |
| The max value for an element which is also the bit-mask of the individual element. | |
Protected Types | |
| typedef List< block_type > | block_container |
| The internal container for storing the blocks. | |
Protected Member Functions | |
| void | setPair (Istream &is) |
| Read an index/value pair and set accordingly. | |
| void | writeEntry (Ostream &os) const |
| Write as a dictionary entry. | |
| void | clear_trailing_bits () |
| Clear any partial rubbish in the last addressable block. | |
| void | copyAssign (const PackedList< Width > &rhs) |
| Copy assignment. | |
| label | first_block () const |
| Find the first block with a '1' bit. | |
| label | first_not_block () const |
| Find the first block with a '0' bit. | |
| unsigned int | repeated_value (unsigned val) |
| unsigned int | readValue (Istream &is) |
| void | setPair (Istream &is) |
Static Protected Member Functions | |
| static unsigned int | repeated_value (unsigned val) |
| Enforce non-zero Width to fit within the block storage and require at least 2 items per storage block for general efficiency. | |
| static unsigned int | readValue (Istream &is) |
| Read a list entry (allows for specialization). | |
Protected Attributes | |
| block_container | blocks_ |
| The blocks of raw data. | |
| label | size_ |
| Number of entries used. | |
Friends | |
| Ostream & | operator<< (Ostream &os, const InfoProxy< PackedList< Width > > &info) |
| Istream & | operator>> (Istream &is, PackedList< Width > &list) |
A dynamic list of packed unsigned integers, with the number of bits per item specified by the <Width> template parameter.
Resizing is similar to DynamicList so that clear() and resize() affect the addressed size, but not the allocated size. The reserve() and setCapacity() methods can be used to influence the allocation.
In a non-const context, the '[]' operator returns a reference to an existing value. When accessing out-of-range elements, some caution is required to ensure that the const version of the [] operator is actually being called. The get() method is functionally identical the the '[]' operator, but is always const access.
The set() and unset() methods return a bool if the value changed.
With const access, the get() method and 'operator[]' are identical. With non-const access, the 'operator[]' may be marginally slower get().
The set() method may be marginally faster than using the 'operator[]' supports auto-vivification and also returns a bool if the value changed, which can be useful for branching on changed values.
In a const context, reading an out-of-range element returns zero without affecting the list size. For example,
Also note that all unused internal storage elements are guaranteed to always be bit-wise zero. This property must not be violated by any inheriting classes.
Definition at line 143 of file PackedList.H.
| typedef unsigned int block_type |
The storage block type for bit elements.
Definition at line 156 of file PackedList.H.
|
protected |
The internal container for storing the blocks.
Definition at line 219 of file PackedList.H.
| typedef unsigned int const_reference |
Definition at line 302 of file PackedList.H.
|
inlineconstexprnoexcept |
Default construct, zero-sized and no allocation.
Definition at line 237 of file PackedListI.H.
References blocks_, Foam::noexcept, and size_.
Referenced by append(), assign(), copyAssign(), equal(), info(), PackedList< Width >::hasher::operator()(), operator<<, operator=(), operator=(), operator>>, PackedList(), PackedList(), PackedList(), PackedList(), readList(), swap(), transfer(), and writeList().

|
inlineexplicit |
Construct for given number of elements, initializes values to 0.
Definition at line 245 of file PackedListI.H.
References blocks_, num_blocks(), and size_.

|
inline |
Construct for given number of elements, and the specified value for each element.
Definition at line 253 of file PackedListI.H.
References blocks_, num_blocks(), operator=(), and size_.

|
inline |
Construct from Istream.
Definition at line 270 of file PackedListI.H.
|
inline |
Copy construct.
Definition at line 280 of file PackedListI.H.
|
inline |
Move construct.
Definition at line 288 of file PackedListI.H.
References blocks_, PackedList(), and size_.

| PackedList | ( | const PackedList< Width > & | list, |
| const labelUList & | addr ) |
Copy construct a subset.
Definition at line 26 of file PackedList.C.
References get(), PackedList(), set(), size(), and UList< T >::size().

| PackedList | ( | const PackedList< Width > & | list, |
| const IndirectListBase< label, Addr > & | addr ) |
Copy construct a subset.
Definition at line 45 of file PackedList.C.
References get(), PackedList(), set(), IndirectListBase< T, Addr >::size(), and size().

| PackedList | ( | const PackedList< Width > & | list, |
| const labelRange & | range ) |
Copy construct a subset range.
Definition at line 63 of file PackedList.C.
References get(), PackedList(), Foam::pos(), range, set(), and size().

|
inlineexplicit |
Construct from a list of values.
Definition at line 298 of file PackedListI.H.
References blocks_, num_blocks(), size(), size_, and values().

|
inlineexplicit |
Construct from a indirect list of values.
Definition at line 318 of file PackedListI.H.
References blocks_, num_blocks(), set(), size(), size_, and values().

|
inlinestaticconstexprnoexcept |
Calculate the number of blocks required to _address_ the requested number of elements.
We calculate this:
But avoiding the modulus operation
Definition at line 196 of file PackedList.H.
References elem_per_block.
Referenced by equal(), fill(), first_block(), first_not_block(), num_blocks(), PackedList(), PackedList(), PackedList(), PackedList(), printBits(), reserve_exact(), setCapacity(), size_bytes(), size_data(), trim(), and uniform().

|
inlinestaticconstexpr |
Masking for all bits below the element offset.
Ill-defined when elementOffset is out of range.
Definition at line 206 of file PackedList.H.
References bits_per_block.
Referenced by clear_trailing_bits(), and first_not_block().

|
inlinestaticprotected |
Enforce non-zero Width to fit within the block storage and require at least 2 items per storage block for general efficiency.
Thus 1/2 of the base storage size is (sizeof(block_type)*8/2), or (sizeof(block_type) << 2)
A fill value for complete blocks
Definition at line 27 of file PackedListI.H.
References Foam::BitOps::repeat_value().
Referenced by fill(), and uniform().


|
inlinestaticprotected |
Read a list entry (allows for specialization).
Definition at line 34 of file PackedListI.H.
References Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, max_value, and Foam::readLabel().
Referenced by readList().


|
inlineprotected |
Read an index/value pair and set accordingly.
For bool specialization, read a single index value
Definition at line 51 of file PackedListI.H.
References IOstream::check(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, FUNCTION_NAME, max_value, Istream::readBegin(), Istream::readEnd(), Foam::readLabel(), and set().
Referenced by readList().


|
protected |
Write as a dictionary entry.
Definition at line 27 of file PackedListIO.C.
References os().

|
inlineprotected |
Clear any partial rubbish in the last addressable block.
This rubbish may have arisen from block-wise operations etc.
Definition at line 76 of file PackedListI.H.
References blocks_, elem_per_block, mask_lower(), and size().
Referenced by fill().


|
inlineprotected |
Copy assignment.
Definition at line 135 of file PackedListI.H.
References blocks_, PackedList(), Foam::rhs(), and size_.
Referenced by operator=().


|
inlineprotected |
Find the first block with a '1' bit.
Definition at line 144 of file PackedListI.H.
References blocks_, num_blocks(), and size().
Referenced by uniform().


|
inlineprotected |
Find the first block with a '0' bit.
Definition at line 164 of file PackedListI.H.
References blocks_, elem_per_block, mask_lower(), num_blocks(), and size().
Referenced by uniform().


|
inline |
Clone.
Definition at line 341 of file PackedListI.H.
References Foam::New().

|
inline |
Check index is within valid range [0,size).
Definition at line 419 of file PackedListI.H.
References FatalErrorInFunction, and size_.
Referenced by operator[]().

|
inlinenoexcept |
True if the list is empty (ie, size() is zero).
Definition at line 387 of file PackedList.H.
References empty(), Foam::noexcept, and size_.
Referenced by ensightMesh::correct(), PatchTools::edgeNormals(), PatchTools::edgeNormals(), empty(), fill(), addPatchCellLayer::globalEdgeFaces(), PatchTools::pointNormals(), PatchTools::pointNormals(), trim(), and uniform().


|
inlinenoexcept |
Number of entries.
Definition at line 392 of file PackedList.H.
References Foam::noexcept, and size_.
Referenced by AMICache::AMICache(), bitSet::andEq(), Foam::apply(), bitSet::bound(), polyDualMesh::calcFeatures(), meshRefinement::calculateEdgeWeights(), primitiveMesh::checkClosedBoundary(), clear_trailing_bits(), equal(), bitSet::extend(), fill(), addPatchCellLayer::findDuplicatedPoints(), PstreamBuffers::finishedSends(), first_block(), first_not_block(), meshRefinement::gAverage(), bitSet::intersects(), Foam::invert(), bitSet::minusEq(), num_blocks(), noiseModel::octaves(), PackedList< Width >::hasher::operator()(), Foam::operator<<(), bitSet::orEq(), PackedList(), PackedList(), PackedList(), PackedList(), PackedList(), printBits(), ensightCase::printTimeset(), remove(), Foam::reorder(), resize(), set(), addPatchCellLayer::setRefinement(), size_bytes(), size_data(), syncTools::syncEdgeList(), syncTools::syncFaceList(), syncTools::syncPointList(), trim(), uniform(), unset(), meshRefinement::weightedSum(), AMICache::writeData(), writeList(), bitSet::writeListToc(), and bitSet::xorEq().

|
inlinenoexcept |
Number of elements that can be stored without reallocating.
Definition at line 437 of file PackedListI.H.
References blocks_, elem_per_block, and Foam::noexcept.
Referenced by Foam::operator<<().

| bool uniform | ( | ) | const |
True if all entries have identical values (and list is non-empty).
Definition at line 85 of file PackedList.C.
References blocks_, elem_per_block, empty(), first_block(), first_not_block(), get(), max_value, num_blocks(), repeated_value(), and size().
Referenced by writeList().


| bool equal | ( | const PackedList< Width > & | other | ) | const |
Test for equality of sizes and the bits set.
Definition at line 147 of file PackedList.C.
References blocks_, num_blocks(), PackedList(), Foam::rhs(), and size().
Referenced by Foam::operator!=(), and Foam::operator==().


|
inline |
Get value at index i or 0 for out-of-range.
Never auto-vivify entries.
Definition at line 674 of file PackedListI.H.
Referenced by bitSet::bitSet(), bitSet::bitSet(), hexRef8::consistentUnrefinement(), operator[](), PackedList(), PackedList(), PackedList(), uniform(), and writeList().

|
inline |
Set value at index i, default value set is the max_value.
Does auto-vivify for non-existent, non-zero entries.
Definition at line 696 of file PackedListI.H.
References Foam::endl(), size(), size_, and WarningInFunction.
Referenced by PackedList(), PackedList(), PackedList(), PackedList(), readList(), setPair(), syncTools::syncFaceList(), bitSet::test_set(), and fileMonitor::updateStates().


|
inline |
Unset the entry at index i.
Never auto-vivify entries.
Definition at line 728 of file PackedListI.H.
References PackedList< Width >::reference::set(), and size().

| Foam::labelList values | ( | ) | const |
Return the values as a list of labels.
Definition at line 170 of file PackedList.C.
References unpack().
Referenced by PackedList(), and PackedList().


| List< IntType > unpack | ( | const labelRange & | range | ) | const |
| List< IntType > unpack | ( | const labelUList & | locations | ) | const |
Extract the values for the specified locations as a list of integral type.
The default integral type is unsigned int.
References clear(), clearStorage(), fill(), reserve(), reserve_exact(), reset(), resize(), resize_nocopy(), setCapacity(), shrink_to_fit(), trim(), and unpack().

|
inline |
Assign all entries to the given value.
Definition at line 784 of file PackedListI.H.
References blocks_, clear_trailing_bits(), empty(), num_blocks(), repeated_value(), and size().
Referenced by assign(), operator=(), and unpack().


|
inline |
Trim any trailing zero elements, optionally specifying a a minimum position, below which trimming will not occur.
Definition at line 90 of file PackedListI.H.
References blocks_, elem_per_block, empty(), num_blocks(), size(), and size_.
Referenced by Foam::reorder(), and unpack().


|
inline |
Clear all bits but do not adjust the addressable size.
Definition at line 570 of file PackedListI.H.
References blocks_.
Referenced by Foam::calcElementMasks(), dynamicRefineFvMesh::calculateProtectedCells(), distanceSurface::filterRegionProximity(), dynamicMultiMotionSolverFvMesh::init(), multiSolidBodyMotionSolver::multiSolidBodyMotionSolver(), and unpack().

|
inline |
Alter the size of the underlying storage.
The addressed size will be truncated if needed to fit, but will remain otherwise untouched.
Definition at line 517 of file PackedListI.H.
References blocks_, and num_blocks().
Referenced by unpack().


|
inline |
Reset addressable list size, does not shrink the allocated size.
Optionally specify a value for new elements.
Definition at line 454 of file PackedListI.H.
References reserve(), size(), and size_.
Referenced by bitSet::allGather(), Foam::calcElementMasks(), dynamicRefineFvMesh::calculateProtectedCells(), cuttingSurfaceBase::cellSelection(), ensightMesh::correct(), distanceSurface::createGeometry(), distributedTriSurfaceMesh::distribute(), PstreamBuffers::finishedSends(), bitSet::gatherValues(), distributedTriSurfaceMesh::getVolumeType(), dynamicMultiMotionSolverFvMesh::init(), Foam::invertCellSelection(), isoSurfaceTopo::isoSurfaceTopo(), PatchTools::matchEdges(), multiSolidBodyMotionSolver::multiSolidBodyMotionSolver(), fileOperation::nProcs(), cuttingSurfaceBase::performCut(), readList(), bitSet::readListToc(), setSize(), Foam::simpleGeometricFilter(), and unpack().


|
inline |
Currently identical to resize. Subject to future change (Oct-2021).
Definition at line 444 of file PackedListI.H.
References resize().
Referenced by unpack().


|
inline |
Reserve allocation space for at least this size (uses a size doubling strategy).
Never shrinks the allocated size.
Definition at line 532 of file PackedListI.H.
References blocks_.
Referenced by Foam::reorder(), and unpack().

|
inline |
Reserve allocation space for at least this size (uses the specified size without any other resizing strategy).
Never shrinks the allocated size.
Definition at line 551 of file PackedListI.H.
References blocks_, and num_blocks().
Referenced by unpack().


|
inline |
Clear the list, i.e. set addressable size to zero.
Does not adjust the underlying storage
Definition at line 577 of file PackedListI.H.
References reset(), and size_.
Referenced by dynamicRefineFvMesh::calculateProtectedCells(), readList(), bitSet::readListToc(), and unpack().


|
inline |
Clear the list and delete storage.
Definition at line 585 of file PackedListI.H.
References blocks_, and size_.
Referenced by ensightMesh::correct(), distanceSurface::createGeometry(), distanceSurface::filterKeepLargestRegion(), distanceSurface::filterKeepNearestRegions(), distanceSurface::filterRegionProximity(), and unpack().

|
inline |
Shrink the allocated space to what is actually used.
Definition at line 593 of file PackedListI.H.
Referenced by shrink(), and unpack().

|
inline |
Alias for shrink_to_fit().
Definition at line 545 of file PackedList.H.
References shrink(), and shrink_to_fit().
Referenced by shrink().


|
inline |
Swap contents with argument.
Definition at line 647 of file PackedListI.H.
References PackedList(), and Foam::rhs().
Referenced by bitSet::swap().


|
inline |
Transfer the contents of the argument list into this list and annul the argument list.
Definition at line 660 of file PackedListI.H.
References PackedList(), and Foam::rhs().
Referenced by operator=(), and bitSet::transfer().


|
inlinenoexcept |
The number of internal storage blocks.
Definition at line 605 of file PackedListI.H.
References Foam::noexcept, num_blocks(), and size().

|
inlinenoexcept |
Return the underlying storage blocks.
Definition at line 569 of file PackedList.H.
References blocks_, Foam::noexcept, and storage().
Referenced by storage(), and fileMonitor::updateStates().


|
inlinenoexcept |
Return the underlying storage blocks.
Manipulate with utmost caution
Definition at line 576 of file PackedList.H.
References blocks_, and Foam::noexcept.
|
inlinenoexcept |
A const pointer to the raw storage.
Definition at line 581 of file PackedList.H.
References blocks_, and Foam::noexcept.
Referenced by PackedList< Width >::hasher::operator()().

|
inlinenoexcept |
A pointer to the raw storage.
Definition at line 586 of file PackedList.H.
References blocks_, and Foam::noexcept.
|
inlinenoexcept |
A const pointer to the raw storage, reinterpreted as byte data.
Definition at line 612 of file PackedListI.H.
References Foam::noexcept.
Referenced by writeList().

|
inlinenoexcept |
A pointer to the raw storage, reinterpreted as byte data.
Definition at line 619 of file PackedListI.H.
References blocks_, and Foam::noexcept.
Referenced by readList().

|
inlinenoexcept |
The number of integer blocks addressed in the raw storage. Same as num_blocks().
Definition at line 626 of file PackedListI.H.
References Foam::noexcept, num_blocks(), and size().

|
inlinenoexcept |
The number of bytes addressed in the raw storage including any padding.
Definition at line 633 of file PackedListI.H.
References Foam::noexcept, num_blocks(), and size().
Referenced by byteSize(), PackedList< Width >::hasher::operator()(), readList(), and writeList().


|
inlinenoexcept |
Same as size_bytes().
Definition at line 640 of file PackedListI.H.
References Foam::noexcept, and size_bytes().

| Foam::Ostream & printBits | ( | Ostream & | os, |
| bool | debugOutput = false ) const |
Print bit patterns, optionally with extra debug.
Definition at line 36 of file PackedListIO.C.
References token::BEGIN_LIST, blocks_, token::END_LIST, Foam::nl, num_blocks(), os(), Foam::BitOps::print(), and size().

| Foam::Istream & readList | ( | Istream & | is | ) |
Clear list and read from stream.
Definition at line 57 of file PackedListIO.C.
References token::BEGIN_BLOCK, token::BEGIN_LIST, IOstreamOption::BINARY, clear(), data_bytes(), token::END_BLOCK, token::END_LIST, Foam::exit(), IOstream::fatalCheck(), Foam::FatalIOError, FatalIOErrorInFunction, IOstreamOption::format(), FUNCTION_NAME, token::info(), token::isLabel(), token::isPunctuation(), token::labelToken(), Foam::nl, PackedList(), push_back(), Istream::putBack(), Istream::read(), Istream::readBeginList(), Istream::readEndList(), readValue(), resize(), set(), setPair(), and size_bytes().

| Foam::Ostream & writeList | ( | Ostream & | os, |
| label | shortLen = 0 ) const |
Write List, with line-breaks in ASCII when length exceeds shortLen.
Using '0' suppresses line-breaks entirely.
Definition at line 171 of file PackedListIO.C.
References token::BEGIN_BLOCK, token::BEGIN_LIST, IOstreamOption::BINARY, cdata_bytes(), token::END_BLOCK, token::END_LIST, get(), Foam::nl, os(), PackedList(), size(), size_bytes(), token::SPACE, and uniform().
Referenced by Foam::operator<<(), and Foam::operator<<().


Write as a dictionary entry with keyword.
Definition at line 262 of file PackedListIO.C.
References os().

|
inline |
Append a value at the end of the list.
Definition at line 740 of file PackedListI.H.
Referenced by append(), and readList().

|
inline |
Reduce size by 1 or more elements. Can be called on an empty list.
Definition at line 751 of file PackedListI.H.
|
inline |
Remove and return the last element.
Definition at line 765 of file PackedListI.H.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, PackedList< Width >::reference::get(), resize(), and size().

|
inline |
Identical to get() - get value at index.
Never auto-vivify entries.
Definition at line 811 of file PackedListI.H.
References get().

|
inline |
Non-const access to value at index.
Fatal for out-of-range indices
Definition at line 819 of file PackedListI.H.
References checkIndex().

|
inline |
Copy assignment.
Definition at line 829 of file PackedListI.H.
References copyAssign(), PackedList(), and Foam::rhs().
Referenced by bitSet::operator=(), and PackedList().


|
inline |
Move assignment.
Definition at line 836 of file PackedListI.H.
References PackedList(), Foam::rhs(), and transfer().

|
inline |
Assign all entries to the given value. fill().
Definition at line 843 of file PackedListI.H.
References fill().

|
inlinenoexcept |
Return info proxy, used to print information to a stream.
Definition at line 761 of file PackedList.H.
References info(), Foam::noexcept, and PackedList().
Referenced by info(), and operator<<.


|
inline |
Deprecated(2020-11) use fill().
Definition at line 807 of file PackedList.H.
References fill().

|
inline |
Deprecated(2020-11) use operator=.
Definition at line 814 of file PackedList.H.
References PackedList(), and Foam::rhs().

|
inline |
Alias for resize().
Definition at line 819 of file PackedList.H.
Referenced by meshRefinement::markOutsideFaces().


|
inline |
Append a value at the end of the list.
FOAM_DEPRECATED_FOR(2022-10, "push_back()")
Definition at line 826 of file PackedList.H.
References PackedList(), and push_back().

Definition at line 179 of file PackedList.C.
| Foam::List< IntType > unpack | ( | const labelRange & | range | ) | const |
Definition at line 235 of file PackedList.C.
| Foam::List< IntType > unpack | ( | const labelUList & | locations | ) | const |
Definition at line 269 of file PackedList.C.
|
inlineprotected |
Definition at line 216 of file PackedListI.H.
|
inlineprotected |
Definition at line 221 of file PackedListI.H.
|
inlineprotected |
Definition at line 226 of file PackedListI.H.
|
friend |
References info(), os(), and PackedList().
|
friend |
References PackedList().
|
staticconstexpr |
The number of bits in a single block.
Definition at line 163 of file PackedList.H.
Referenced by mask_lower().
|
staticconstexpr |
The width of an individual element (in bits).
Definition at line 169 of file PackedList.H.
|
staticconstexpr |
The number of elements stored per data block.
Definition at line 174 of file PackedList.H.
Referenced by bitSet::assign(), capacity(), clear_trailing_bits(), first_not_block(), num_blocks(), trim(), and uniform().
|
staticconstexpr |
The max value for an element which is also the bit-mask of the individual element.
Eg, for Width=2: ((1 << 2) - 1) == 0b0011
Definition at line 182 of file PackedList.H.
Referenced by PackedList< Width >::reference::get(), readValue(), PackedList< Width >::reference::set(), setPair(), uniform(), and PackedList< 1 >::unpack().
|
protected |
The blocks of raw data.
Definition at line 224 of file PackedList.H.
Referenced by bitSet::andEq(), capacity(), cdata(), clear_trailing_bits(), clearStorage(), copyAssign(), data(), data_bytes(), equal(), fill(), first_block(), first_not_block(), bitSet::intersects(), bitSet::minusEq(), bitSet::orEq(), PackedList(), PackedList(), PackedList(), PackedList(), PackedList(), PackedList(), PackedList(), printBits(), reserve(), reserve_exact(), reset(), setCapacity(), storage(), storage(), trim(), uniform(), and bitSet::xorEq().
|
protected |
Number of entries used.
Definition at line 229 of file PackedList.H.
Referenced by checkIndex(), clear(), clearStorage(), copyAssign(), empty(), PackedList(), PackedList(), PackedList(), PackedList(), PackedList(), PackedList(), PackedList(), resize(), set(), size(), and trim().