TwiceAsNice  2019-02-18
Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Friends | List of all members
Nice::DynamicBitsetT< Block, BlockVar > Class Template Reference

#include <DynamicBitset.hh>

Inheritance diagram for Nice::DynamicBitsetT< Block, BlockVar >:
Inheritance graph
Collaboration diagram for Nice::DynamicBitsetT< Block, BlockVar >:
Collaboration graph

Classes

class  bit_appender
 
class  reference
 

Public Types

typedef Block block_type
 
typedef std::size_t size_type
 
typedef block_type block_width_type
 
typedef bool const_reference
 
typedef Block block_type
 
typedef std::size_t size_type
 
typedef block_type block_width_type
 
typedef bool const_reference
 

Public Member Functions

 BOOST_STATIC_CONSTANT (block_width_type, bits_per_block=(std::numeric_limits< Block >::digits))
 
 BOOST_STATIC_CONSTANT (size_type, npos=static_cast< size_type >(-1))
 
 DynamicBitsetT ()
 
 DynamicBitsetT (size_type num_bits, unsigned long value=0)
 
 DynamicBitsetT (const std::string &s, size_type pos, size_type n, size_type num_bits=npos)
 
 DynamicBitsetT (const std::string &s, size_type pos=0)
 
template<typename BlockInputIterator >
 DynamicBitsetT (BlockInputIterator first, BlockInputIterator last)
 
template<typename T >
void dispatch_init (T num_bits, unsigned long value, DynamicBitsetImpl::value_to_type< true >)
 
template<typename T >
void dispatch_init (T first, T last, DynamicBitsetImpl::value_to_type< false >)
 
template<typename BlockIter >
void init_from_block_range (BlockIter first, BlockIter last)
 
 DynamicBitsetT (const DynamicBitsetT &b)
 
 ~DynamicBitsetT ()
 
void swap (DynamicBitsetT &b)
 
DynamicBitsetToperator= (const DynamicBitsetT &b)
 
void resize (size_type numbits, bool value=false)
 
void clear ()
 
void push_back (bool bit)
 
void append (Block block)
 
template<typename BlockInputIterator >
void m_append (BlockInputIterator first, BlockInputIterator last, std::input_iterator_tag)
 
template<typename BlockInputIterator >
void m_append (BlockInputIterator first, BlockInputIterator last, std::forward_iterator_tag)
 
template<typename BlockInputIterator >
void append (BlockInputIterator first, BlockInputIterator last)
 
DynamicBitsetToperator &= (const DynamicBitsetT &b)
 
DynamicBitsetToperator|= (const DynamicBitsetT &b)
 
DynamicBitsetToperator^= (const DynamicBitsetT &b)
 
DynamicBitsetToperator-= (const DynamicBitsetT &b)
 
DynamicBitsetToperator<<= (size_type n)
 
DynamicBitsetToperator>>= (size_type n)
 
DynamicBitsetT operator<< (size_type n) const
 
DynamicBitsetT operator>> (size_type n) const
 
DynamicBitsetTset (size_type n, bool val=true)
 
DynamicBitsetTset ()
 
DynamicBitsetTreset (size_type n)
 
DynamicBitsetTreset ()
 
DynamicBitsetTflip (size_type n)
 
DynamicBitsetTflip ()
 
bool test (size_type n) const
 
bool any () const
 
bool none () const
 
DynamicBitsetT operator~ () const
 
size_type count () const
 
reference operator[] (size_type pos)
 
bool operator[] (size_type pos) const
 
unsigned long to_ulong () const
 
size_type size () const
 
size_type num_blocks () const
 
size_type max_size () const
 
bool empty () const
 
bool is_subset_of (const DynamicBitsetT &a) const
 
bool is_proper_subset_of (const DynamicBitsetT &a) const
 
bool intersects (const DynamicBitsetT &a) const
 
size_type find_first () const
 
size_type find_next (size_type pos) const
 
 BOOST_STATIC_CONSTANT (block_width_type, bits_per_block=(std::numeric_limits< Block >::digits))
 
 BOOST_STATIC_CONSTANT (size_type, npos=static_cast< size_type >(-1))
 
 DynamicBitsetT ()
 
 DynamicBitsetT (size_type num_bits, unsigned long value=0)
 
 DynamicBitsetT (const std::string &s, size_type pos, size_type n, size_type num_bits=npos)
 
 DynamicBitsetT (const std::string &s, size_type pos=0)
 
template<typename BlockInputIterator >
 DynamicBitsetT (BlockInputIterator first, BlockInputIterator last)
 
template<typename T >
void dispatch_init (T num_bits, unsigned long value, DynamicBitsetImpl::value_to_type< true >)
 
template<typename T >
void dispatch_init (T first, T last, DynamicBitsetImpl::value_to_type< false >)
 
template<typename BlockIter >
void init_from_block_range (BlockIter first, BlockIter last)
 
 DynamicBitsetT (const DynamicBitsetT &b)
 
 ~DynamicBitsetT ()
 
void swap (DynamicBitsetT &b)
 
DynamicBitsetToperator= (const DynamicBitsetT &b)
 
void resize (size_type numbits, bool value=false)
 
void clear ()
 
void push_back (bool bit)
 
void append (Block block)
 
template<typename BlockInputIterator >
void m_append (BlockInputIterator first, BlockInputIterator last, std::input_iterator_tag)
 
template<typename BlockInputIterator >
void m_append (BlockInputIterator first, BlockInputIterator last, std::forward_iterator_tag)
 
template<typename BlockInputIterator >
void append (BlockInputIterator first, BlockInputIterator last)
 
DynamicBitsetToperator &= (const DynamicBitsetT &b)
 
DynamicBitsetToperator|= (const DynamicBitsetT &b)
 
DynamicBitsetToperator^= (const DynamicBitsetT &b)
 
DynamicBitsetToperator-= (const DynamicBitsetT &b)
 
DynamicBitsetToperator<<= (size_type n)
 
DynamicBitsetToperator>>= (size_type n)
 
DynamicBitsetT operator<< (size_type n) const
 
DynamicBitsetT operator>> (size_type n) const
 
DynamicBitsetTset (size_type n, bool val=true)
 
DynamicBitsetTset ()
 
DynamicBitsetTreset (size_type n)
 
DynamicBitsetTreset ()
 
DynamicBitsetTflip (size_type n)
 
DynamicBitsetTflip ()
 
bool test (size_type n) const
 
bool any () const
 
bool none () const
 
DynamicBitsetT operator~ () const
 
size_type count () const
 
reference operator[] (size_type pos)
 
bool operator[] (size_type pos) const
 
unsigned long to_ulong () const
 
size_type size () const
 
size_type num_blocks () const
 
size_type max_size () const
 
bool empty () const
 
bool is_subset_of (const DynamicBitsetT &a) const
 
bool is_proper_subset_of (const DynamicBitsetT &a) const
 
bool intersects (const DynamicBitsetT &a) const
 
size_type find_first () const
 
size_type find_next (size_type pos) const
 

Private Types

typedef std::vector< block_typebuffer_type
 
typedef std::vector< block_typebuffer_type
 

Private Member Functions

 BOOST_STATIC_ASSERT ((bool) DynamicBitsetImpl::allowed_block_type< Block >::value)
 
 BOOST_STATIC_CONSTANT (block_width_type, ulong_width=std::numeric_limits< unsigned long >::digits)
 
void m_zero_unused_bits ()
 
bool m_check_invariants () const
 
size_type m_do_find_from (size_type first_block) const
 
block_width_type count_extra_bits () const
 
void init_from_string (const std::string &s, std::string::size_type pos, std::string::size_type n, size_type num_bits)
 
void init_from_unsigned_long (size_type num_bits, unsigned long value)
 
bool m_unchecked_test (size_type pos) const
 
Block & m_highest_block ()
 
const Block & m_highest_block () const
 
 BOOST_STATIC_ASSERT ((bool) DynamicBitsetImpl::allowed_block_type< Block >::value)
 
 BOOST_STATIC_CONSTANT (block_width_type, ulong_width=std::numeric_limits< unsigned long >::digits)
 
void m_zero_unused_bits ()
 
bool m_check_invariants () const
 
size_type m_do_find_from (size_type first_block) const
 
block_width_type count_extra_bits () const
 
void init_from_string (const std::string &s, std::string::size_type pos, std::string::size_type n, size_type num_bits)
 
void init_from_unsigned_long (size_type num_bits, unsigned long value)
 
bool m_unchecked_test (size_type pos) const
 
Block & m_highest_block ()
 
const Block & m_highest_block () const
 

Static Private Member Functions

static size_type block_index (size_type pos)
 
static block_width_type bit_index (size_type pos)
 
static Block bit_mask (size_type pos)
 frb static Block bit_mask(size_type pos) { return Block(1) << bit_index(pos); } More...
 
static size_type calc_num_blocks (size_type numbits)
 
static size_type block_index (size_type pos)
 
static block_width_type bit_index (size_type pos)
 
static Block bit_mask (size_type pos)
 frb static Block bit_mask(size_type pos) { return Block(1) << bit_index(pos); } More...
 
static size_type calc_num_blocks (size_type numbits)
 

Friends

class bit_appender
 
template<typename B , typename BV >
bool operator== (const DynamicBitsetT< B, BV > &a, const DynamicBitsetT< B, BV > &b)
 
template<typename B , typename BV >
bool operator< (const DynamicBitsetT< B, BV > &a, const DynamicBitsetT< B, BV > &b)
 
template<typename B , typename BV , typename BlockOutputIterator >
void to_block_range (const DynamicBitsetT< B, BV > &b, BlockOutputIterator result)
 
template<typename BlockIterator , typename B , typename BV >
void from_block_range (BlockIterator first, BlockIterator last, DynamicBitsetT< B, BV > &result)
 
template<typename B , typename BV >
std::istream & operator>> (std::istream &is, DynamicBitsetT< B, BV > &b)
 
template<typename B , typename BV >
void to_string_helper (const DynamicBitsetT< B, BV > &b, std::string &s, bool dump_all)
 
template<typename B , typename BV >
bool operator== (const DynamicBitsetT< B, BV > &a, const DynamicBitsetT< B, BV > &b)
 
template<typename B , typename BV >
bool operator< (const DynamicBitsetT< B, BV > &a, const DynamicBitsetT< B, BV > &b)
 
template<typename B , typename BV , typename BlockOutputIterator >
void to_block_range (const DynamicBitsetT< B, BV > &b, BlockOutputIterator result)
 
template<typename BlockIterator , typename B , typename BV >
void from_block_range (BlockIterator first, BlockIterator last, DynamicBitsetT< B, BV > &result)
 
template<typename B , typename BV >
std::istream & operator>> (std::istream &is, DynamicBitsetT< B, BV > &b)
 
template<typename B , typename BV >
void to_string_helper (const DynamicBitsetT< B, BV > &b, std::string &s, bool dump_all)
 

Member Typedef Documentation

◆ block_type [1/2]

template<typename Block, typename BlockVar>
typedef Block Nice::DynamicBitsetT< Block, BlockVar >::block_type

◆ block_type [2/2]

template<typename Block, typename BlockVar>
typedef Block Nice::DynamicBitsetT< Block, BlockVar >::block_type

◆ block_width_type [1/2]

template<typename Block, typename BlockVar>
typedef block_type Nice::DynamicBitsetT< Block, BlockVar >::block_width_type

◆ block_width_type [2/2]

template<typename Block, typename BlockVar>
typedef block_type Nice::DynamicBitsetT< Block, BlockVar >::block_width_type

◆ buffer_type [1/2]

template<typename Block, typename BlockVar>
typedef std::vector<block_type> Nice::DynamicBitsetT< Block, BlockVar >::buffer_type
private

◆ buffer_type [2/2]

template<typename Block, typename BlockVar>
typedef std::vector<block_type> Nice::DynamicBitsetT< Block, BlockVar >::buffer_type
private

◆ const_reference [1/2]

template<typename Block, typename BlockVar>
typedef bool Nice::DynamicBitsetT< Block, BlockVar >::const_reference

◆ const_reference [2/2]

template<typename Block, typename BlockVar>
typedef bool Nice::DynamicBitsetT< Block, BlockVar >::const_reference

◆ size_type [1/2]

template<typename Block, typename BlockVar>
typedef std::size_t Nice::DynamicBitsetT< Block, BlockVar >::size_type

◆ size_type [2/2]

template<typename Block, typename BlockVar>
typedef std::size_t Nice::DynamicBitsetT< Block, BlockVar >::size_type

Constructor & Destructor Documentation

◆ DynamicBitsetT() [1/12]

template<typename Block , typename BlockVar >
Nice::DynamicBitsetT< Block, BlockVar >::DynamicBitsetT ( )
explicit

◆ DynamicBitsetT() [2/12]

template<typename Block , typename BlockVar >
Nice::DynamicBitsetT< Block, BlockVar >::DynamicBitsetT ( size_type  num_bits,
unsigned long  value = 0 
)
explicit

◆ DynamicBitsetT() [3/12]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::DynamicBitsetT ( const std::string &  s,
size_type  pos,
size_type  n,
size_type  num_bits = npos 
)
inline

◆ DynamicBitsetT() [4/12]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::DynamicBitsetT ( const std::string &  s,
size_type  pos = 0 
)
inline

◆ DynamicBitsetT() [5/12]

template<typename Block, typename BlockVar>
template<typename BlockInputIterator >
Nice::DynamicBitsetT< Block, BlockVar >::DynamicBitsetT ( BlockInputIterator  first,
BlockInputIterator  last 
)
inline

◆ DynamicBitsetT() [6/12]

template<typename Block , typename BlockVar >
Nice::DynamicBitsetT< Block, BlockVar >::DynamicBitsetT ( const DynamicBitsetT< Block, BlockVar > &  b)
inline

◆ ~DynamicBitsetT() [1/2]

template<typename Block , typename BlockVar >
Nice::DynamicBitsetT< Block, BlockVar >::~DynamicBitsetT ( )
inline

◆ DynamicBitsetT() [7/12]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::DynamicBitsetT ( )
explicit

◆ DynamicBitsetT() [8/12]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::DynamicBitsetT ( size_type  num_bits,
unsigned long  value = 0 
)
explicit

◆ DynamicBitsetT() [9/12]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::DynamicBitsetT ( const std::string &  s,
size_type  pos,
size_type  n,
size_type  num_bits = npos 
)
inline

◆ DynamicBitsetT() [10/12]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::DynamicBitsetT ( const std::string &  s,
size_type  pos = 0 
)
inline

◆ DynamicBitsetT() [11/12]

template<typename Block, typename BlockVar>
template<typename BlockInputIterator >
Nice::DynamicBitsetT< Block, BlockVar >::DynamicBitsetT ( BlockInputIterator  first,
BlockInputIterator  last 
)
inline

◆ DynamicBitsetT() [12/12]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::DynamicBitsetT ( const DynamicBitsetT< Block, BlockVar > &  b)

◆ ~DynamicBitsetT() [2/2]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::~DynamicBitsetT ( )

Member Function Documentation

◆ any() [1/2]

template<typename Block , typename BlockVar >
bool Nice::DynamicBitsetT< Block, BlockVar >::any ( ) const

◆ any() [2/2]

template<typename Block, typename BlockVar>
bool Nice::DynamicBitsetT< Block, BlockVar >::any ( ) const

◆ append() [1/4]

template<typename Block, typename BlockVar>
void Nice::DynamicBitsetT< Block, BlockVar >::append ( Block  block)

◆ append() [2/4]

template<typename Block, typename BlockVar >
void Nice::DynamicBitsetT< Block, BlockVar >::append ( Block  block)

frb BlockVar::mbits.push_back(value >> (bits_per_block - r)); BlockVar::mbits[BlockVar::mbits.size() - 2] |= (value << r); // BlockVar::mbits.size() >= 2

frb BlockVar::mbits.push_back(value >> (bits_per_block - r)); BlockVar::mbits[BlockVar::mbits.size() - 2] |= (value << r); // BlockVar::mbits.size() >= 2

◆ append() [3/4]

template<typename Block, typename BlockVar>
template<typename BlockInputIterator >
void Nice::DynamicBitsetT< Block, BlockVar >::append ( BlockInputIterator  first,
BlockInputIterator  last 
)
inline

◆ append() [4/4]

template<typename Block, typename BlockVar>
template<typename BlockInputIterator >
void Nice::DynamicBitsetT< Block, BlockVar >::append ( BlockInputIterator  first,
BlockInputIterator  last 
)
inline

◆ bit_index() [1/2]

template<typename Block, typename BlockVar>
static block_width_type Nice::DynamicBitsetT< Block, BlockVar >::bit_index ( size_type  pos)
inlinestaticprivate

◆ bit_index() [2/2]

template<typename Block, typename BlockVar>
static block_width_type Nice::DynamicBitsetT< Block, BlockVar >::bit_index ( size_type  pos)
inlinestaticprivate

◆ bit_mask() [1/2]

template<typename Block, typename BlockVar>
static Block Nice::DynamicBitsetT< Block, BlockVar >::bit_mask ( size_type  pos)
inlinestaticprivate

frb static Block bit_mask(size_type pos) { return Block(1) << bit_index(pos); }

◆ bit_mask() [2/2]

template<typename Block, typename BlockVar>
static Block Nice::DynamicBitsetT< Block, BlockVar >::bit_mask ( size_type  pos)
inlinestaticprivate

frb static Block bit_mask(size_type pos) { return Block(1) << bit_index(pos); }

◆ block_index() [1/2]

template<typename Block, typename BlockVar>
static size_type Nice::DynamicBitsetT< Block, BlockVar >::block_index ( size_type  pos)
inlinestaticprivate

◆ block_index() [2/2]

template<typename Block, typename BlockVar>
static size_type Nice::DynamicBitsetT< Block, BlockVar >::block_index ( size_type  pos)
inlinestaticprivate

◆ BOOST_STATIC_ASSERT() [1/2]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::BOOST_STATIC_ASSERT ( (bool) DynamicBitsetImpl::allowed_block_type< Block >::value  )
private

◆ BOOST_STATIC_ASSERT() [2/2]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::BOOST_STATIC_ASSERT ( (bool) DynamicBitsetImpl::allowed_block_type< Block >::value  )
private

◆ BOOST_STATIC_CONSTANT() [1/6]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::BOOST_STATIC_CONSTANT ( block_width_type  ,
bits_per_block  = (std::numeric_limits< Block >::digits) 
)

◆ BOOST_STATIC_CONSTANT() [2/6]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::BOOST_STATIC_CONSTANT ( block_width_type  ,
bits_per_block  = (std::numeric_limits< Block >::digits) 
)

◆ BOOST_STATIC_CONSTANT() [3/6]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::BOOST_STATIC_CONSTANT ( size_type  ,
npos  = static_cast< size_type >(-1) 
)

◆ BOOST_STATIC_CONSTANT() [4/6]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::BOOST_STATIC_CONSTANT ( size_type  ,
npos  = static_cast< size_type >(-1) 
)

◆ BOOST_STATIC_CONSTANT() [5/6]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::BOOST_STATIC_CONSTANT ( block_width_type  ,
ulong_width  = std::numeric_limits< unsigned long >::digits 
)
private

◆ BOOST_STATIC_CONSTANT() [6/6]

template<typename Block, typename BlockVar>
Nice::DynamicBitsetT< Block, BlockVar >::BOOST_STATIC_CONSTANT ( block_width_type  ,
ulong_width  = std::numeric_limits< unsigned long >::digits 
)
private

◆ calc_num_blocks() [1/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar >::size_type Nice::DynamicBitsetT< Block, BlockVar >::calc_num_blocks ( size_type  numbits)
inlinestaticprivate

◆ calc_num_blocks() [2/2]

template<typename Block, typename BlockVar>
static size_type Nice::DynamicBitsetT< Block, BlockVar >::calc_num_blocks ( size_type  numbits)
staticprivate

◆ clear() [1/2]

template<typename Block, typename BlockVar>
void Nice::DynamicBitsetT< Block, BlockVar >::clear ( )

◆ clear() [2/2]

template<typename Block , typename BlockVar >
void Nice::DynamicBitsetT< Block, BlockVar >::clear ( )

◆ count() [1/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar >::size_type Nice::DynamicBitsetT< Block, BlockVar >::count ( ) const

◆ count() [2/2]

template<typename Block, typename BlockVar>
size_type Nice::DynamicBitsetT< Block, BlockVar >::count ( ) const

◆ count_extra_bits() [1/2]

template<typename Block, typename BlockVar>
block_width_type Nice::DynamicBitsetT< Block, BlockVar >::count_extra_bits ( ) const
inlineprivate

◆ count_extra_bits() [2/2]

template<typename Block, typename BlockVar>
block_width_type Nice::DynamicBitsetT< Block, BlockVar >::count_extra_bits ( ) const
inlineprivate

◆ dispatch_init() [1/4]

template<typename Block, typename BlockVar>
template<typename T >
void Nice::DynamicBitsetT< Block, BlockVar >::dispatch_init ( num_bits,
unsigned long  value,
DynamicBitsetImpl::value_to_type< true  
)
inline

◆ dispatch_init() [2/4]

template<typename Block, typename BlockVar>
template<typename T >
void Nice::DynamicBitsetT< Block, BlockVar >::dispatch_init ( num_bits,
unsigned long  value,
DynamicBitsetImpl::value_to_type< true  
)
inline

◆ dispatch_init() [3/4]

template<typename Block, typename BlockVar>
template<typename T >
void Nice::DynamicBitsetT< Block, BlockVar >::dispatch_init ( first,
last,
DynamicBitsetImpl::value_to_type< false  
)
inline

◆ dispatch_init() [4/4]

template<typename Block, typename BlockVar>
template<typename T >
void Nice::DynamicBitsetT< Block, BlockVar >::dispatch_init ( first,
last,
DynamicBitsetImpl::value_to_type< false  
)
inline

◆ empty() [1/2]

template<typename Block , typename BlockVar >
bool Nice::DynamicBitsetT< Block, BlockVar >::empty ( ) const
inline

◆ empty() [2/2]

template<typename Block, typename BlockVar>
bool Nice::DynamicBitsetT< Block, BlockVar >::empty ( ) const

◆ find_first() [1/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar >::size_type Nice::DynamicBitsetT< Block, BlockVar >::find_first ( ) const

◆ find_first() [2/2]

template<typename Block, typename BlockVar>
size_type Nice::DynamicBitsetT< Block, BlockVar >::find_first ( ) const

◆ find_next() [1/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar >::size_type Nice::DynamicBitsetT< Block, BlockVar >::find_next ( size_type  pos) const

◆ find_next() [2/2]

template<typename Block, typename BlockVar>
size_type Nice::DynamicBitsetT< Block, BlockVar >::find_next ( size_type  pos) const

◆ flip() [1/4]

template<typename Block, typename BlockVar>
DynamicBitsetT& Nice::DynamicBitsetT< Block, BlockVar >::flip ( size_type  n)

◆ flip() [2/4]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar > & Nice::DynamicBitsetT< Block, BlockVar >::flip ( size_type  n)

◆ flip() [3/4]

template<typename Block, typename BlockVar>
DynamicBitsetT& Nice::DynamicBitsetT< Block, BlockVar >::flip ( )

◆ flip() [4/4]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar > & Nice::DynamicBitsetT< Block, BlockVar >::flip ( )

◆ init_from_block_range() [1/2]

template<typename Block, typename BlockVar>
template<typename BlockIter >
void Nice::DynamicBitsetT< Block, BlockVar >::init_from_block_range ( BlockIter  first,
BlockIter  last 
)
inline

frb BlockVar::mnumbits = BlockVar::mbits.size() * bits_per_block;

◆ init_from_block_range() [2/2]

template<typename Block, typename BlockVar>
template<typename BlockIter >
void Nice::DynamicBitsetT< Block, BlockVar >::init_from_block_range ( BlockIter  first,
BlockIter  last 
)
inline

frb BlockVar::mnumbits = BlockVar::mbits.size() * bits_per_block;

◆ init_from_string() [1/2]

template<typename Block, typename BlockVar>
void Nice::DynamicBitsetT< Block, BlockVar >::init_from_string ( const std::string &  s,
std::string::size_type  pos,
std::string::size_type  n,
size_type  num_bits 
)
inlineprivate

◆ init_from_string() [2/2]

template<typename Block, typename BlockVar>
void Nice::DynamicBitsetT< Block, BlockVar >::init_from_string ( const std::string &  s,
std::string::size_type  pos,
std::string::size_type  n,
size_type  num_bits 
)
inlineprivate

◆ init_from_unsigned_long() [1/2]

template<typename Block, typename BlockVar>
void Nice::DynamicBitsetT< Block, BlockVar >::init_from_unsigned_long ( size_type  num_bits,
unsigned long  value 
)
inlineprivate

frb BlockVar::mnumbits = num_bits;

◆ init_from_unsigned_long() [2/2]

template<typename Block, typename BlockVar>
void Nice::DynamicBitsetT< Block, BlockVar >::init_from_unsigned_long ( size_type  num_bits,
unsigned long  value 
)
inlineprivate

frb BlockVar::mnumbits = num_bits;

◆ intersects() [1/2]

template<typename Block , typename BlockVar >
bool Nice::DynamicBitsetT< Block, BlockVar >::intersects ( const DynamicBitsetT< Block, BlockVar > &  a) const

◆ intersects() [2/2]

template<typename Block, typename BlockVar>
bool Nice::DynamicBitsetT< Block, BlockVar >::intersects ( const DynamicBitsetT< Block, BlockVar > &  a) const

◆ is_proper_subset_of() [1/2]

template<typename Block , typename BlockVar >
bool Nice::DynamicBitsetT< Block, BlockVar >::is_proper_subset_of ( const DynamicBitsetT< Block, BlockVar > &  a) const

◆ is_proper_subset_of() [2/2]

template<typename Block, typename BlockVar>
bool Nice::DynamicBitsetT< Block, BlockVar >::is_proper_subset_of ( const DynamicBitsetT< Block, BlockVar > &  a) const

◆ is_subset_of() [1/2]

template<typename Block, typename BlockVar>
bool Nice::DynamicBitsetT< Block, BlockVar >::is_subset_of ( const DynamicBitsetT< Block, BlockVar > &  a) const

◆ is_subset_of() [2/2]

template<typename Block , typename BlockVar >
bool Nice::DynamicBitsetT< Block, BlockVar >::is_subset_of ( const DynamicBitsetT< Block, BlockVar > &  a) const

◆ m_append() [1/4]

template<typename Block, typename BlockVar>
template<typename BlockInputIterator >
void Nice::DynamicBitsetT< Block, BlockVar >::m_append ( BlockInputIterator  first,
BlockInputIterator  last,
std::input_iterator_tag   
)
inline

◆ m_append() [2/4]

template<typename Block, typename BlockVar>
template<typename BlockInputIterator >
void Nice::DynamicBitsetT< Block, BlockVar >::m_append ( BlockInputIterator  first,
BlockInputIterator  last,
std::input_iterator_tag   
)
inline

◆ m_append() [3/4]

template<typename Block, typename BlockVar>
template<typename BlockInputIterator >
void Nice::DynamicBitsetT< Block, BlockVar >::m_append ( BlockInputIterator  first,
BlockInputIterator  last,
std::forward_iterator_tag   
)
inline

◆ m_append() [4/4]

template<typename Block, typename BlockVar>
template<typename BlockInputIterator >
void Nice::DynamicBitsetT< Block, BlockVar >::m_append ( BlockInputIterator  first,
BlockInputIterator  last,
std::forward_iterator_tag   
)
inline

◆ m_check_invariants() [1/2]

template<typename Block , typename BlockVar >
bool Nice::DynamicBitsetT< Block, BlockVar >::m_check_invariants ( ) const
private

frb block_type const mask = (~static_cast<Block>(0) << extra_bits);

frb block_type const mask = (~static_cast<Block>(0) << extra_bits);

◆ m_check_invariants() [2/2]

template<typename Block, typename BlockVar>
bool Nice::DynamicBitsetT< Block, BlockVar >::m_check_invariants ( ) const
private

◆ m_do_find_from() [1/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar >::size_type Nice::DynamicBitsetT< Block, BlockVar >::m_do_find_from ( size_type  first_block) const
private

◆ m_do_find_from() [2/2]

template<typename Block, typename BlockVar>
size_type Nice::DynamicBitsetT< Block, BlockVar >::m_do_find_from ( size_type  first_block) const
private

◆ m_highest_block() [1/4]

template<typename Block, typename BlockVar>
Block& Nice::DynamicBitsetT< Block, BlockVar >::m_highest_block ( )
private

◆ m_highest_block() [2/4]

template<typename Block , typename BlockVar >
Block & Nice::DynamicBitsetT< Block, BlockVar >::m_highest_block ( )
inlineprivate

◆ m_highest_block() [3/4]

template<typename Block, typename BlockVar>
const Block& Nice::DynamicBitsetT< Block, BlockVar >::m_highest_block ( ) const
private

◆ m_highest_block() [4/4]

template<typename Block , typename BlockVar >
const Block & Nice::DynamicBitsetT< Block, BlockVar >::m_highest_block ( ) const
inlineprivate

◆ m_unchecked_test() [1/2]

template<typename Block , typename BlockVar >
bool Nice::DynamicBitsetT< Block, BlockVar >::m_unchecked_test ( size_type  pos) const
private

◆ m_unchecked_test() [2/2]

template<typename Block, typename BlockVar>
bool Nice::DynamicBitsetT< Block, BlockVar >::m_unchecked_test ( size_type  pos) const
private

◆ m_zero_unused_bits() [1/2]

template<typename Block , typename BlockVar >
void Nice::DynamicBitsetT< Block, BlockVar >::m_zero_unused_bits ( )
inlineprivate

frb m_highest_block() &= ~(~static_cast<Block>(0) << extra_bits);

frb m_highest_block() &= ~(~static_cast<Block>(0) << extra_bits);

◆ m_zero_unused_bits() [2/2]

template<typename Block, typename BlockVar>
void Nice::DynamicBitsetT< Block, BlockVar >::m_zero_unused_bits ( )
private

◆ max_size() [1/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar >::size_type Nice::DynamicBitsetT< Block, BlockVar >::max_size ( ) const
inline

◆ max_size() [2/2]

template<typename Block, typename BlockVar>
size_type Nice::DynamicBitsetT< Block, BlockVar >::max_size ( ) const

◆ none() [1/2]

template<typename Block , typename BlockVar >
bool Nice::DynamicBitsetT< Block, BlockVar >::none ( ) const
inline

◆ none() [2/2]

template<typename Block, typename BlockVar>
bool Nice::DynamicBitsetT< Block, BlockVar >::none ( ) const

◆ num_blocks() [1/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar >::size_type Nice::DynamicBitsetT< Block, BlockVar >::num_blocks ( ) const
inline

◆ num_blocks() [2/2]

template<typename Block, typename BlockVar>
size_type Nice::DynamicBitsetT< Block, BlockVar >::num_blocks ( ) const

◆ operator &=() [1/2]

template<typename Block, typename BlockVar>
DynamicBitsetT& Nice::DynamicBitsetT< Block, BlockVar >::operator&= ( const DynamicBitsetT< Block, BlockVar > &  b)

◆ operator &=() [2/2]

template<typename Block, typename BlockVar>
DynamicBitsetT& Nice::DynamicBitsetT< Block, BlockVar >::operator&= ( const DynamicBitsetT< Block, BlockVar > &  b)

◆ operator-=() [1/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar > & Nice::DynamicBitsetT< Block, BlockVar >::operator-= ( const DynamicBitsetT< Block, BlockVar > &  b)

◆ operator-=() [2/2]

template<typename Block, typename BlockVar>
DynamicBitsetT& Nice::DynamicBitsetT< Block, BlockVar >::operator-= ( const DynamicBitsetT< Block, BlockVar > &  b)

◆ operator<<() [1/2]

template<typename Block, typename BlockVar>
DynamicBitsetT Nice::DynamicBitsetT< Block, BlockVar >::operator<< ( size_type  n) const

◆ operator<<() [2/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar > Nice::DynamicBitsetT< Block, BlockVar >::operator<< ( size_type  n) const

◆ operator<<=() [1/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar > & Nice::DynamicBitsetT< Block, BlockVar >::operator<<= ( size_type  n)

◆ operator<<=() [2/2]

template<typename Block, typename BlockVar>
DynamicBitsetT& Nice::DynamicBitsetT< Block, BlockVar >::operator<<= ( size_type  n)

◆ operator=() [1/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar > & Nice::DynamicBitsetT< Block, BlockVar >::operator= ( const DynamicBitsetT< Block, BlockVar > &  b)

◆ operator=() [2/2]

template<typename Block, typename BlockVar>
DynamicBitsetT& Nice::DynamicBitsetT< Block, BlockVar >::operator= ( const DynamicBitsetT< Block, BlockVar > &  b)

◆ operator>>() [1/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar > Nice::DynamicBitsetT< Block, BlockVar >::operator>> ( size_type  n) const

◆ operator>>() [2/2]

template<typename Block, typename BlockVar>
DynamicBitsetT Nice::DynamicBitsetT< Block, BlockVar >::operator>> ( size_type  n) const

◆ operator>>=() [1/2]

template<typename Block, typename BlockVar>
DynamicBitsetT& Nice::DynamicBitsetT< Block, BlockVar >::operator>>= ( size_type  n)

◆ operator>>=() [2/2]

template<typename B , typename BV >
DynamicBitsetT< B, BV > & Nice::DynamicBitsetT< B, BV >::operator>>= ( size_type  n)

frb block_width_type const ls = bits_per_block - r;

frb b[i-div] = (b[i] >> r) | (b[i+1] << ls);

frb b[last-div] = b[last] >> r;

frb block_width_type const ls = bits_per_block - r;

frb b[i-div] = (b[i] >> r) | (b[i+1] << ls);

frb b[last-div] = b[last] >> r;

◆ operator[]() [1/4]

template<typename Block, typename BlockVar>
reference Nice::DynamicBitsetT< Block, BlockVar >::operator[] ( size_type  pos)
inline

◆ operator[]() [2/4]

template<typename Block, typename BlockVar>
reference Nice::DynamicBitsetT< Block, BlockVar >::operator[] ( size_type  pos)
inline

◆ operator[]() [3/4]

template<typename Block, typename BlockVar>
bool Nice::DynamicBitsetT< Block, BlockVar >::operator[] ( size_type  pos) const
inline

◆ operator[]() [4/4]

template<typename Block, typename BlockVar>
bool Nice::DynamicBitsetT< Block, BlockVar >::operator[] ( size_type  pos) const
inline

◆ operator^=() [1/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar > & Nice::DynamicBitsetT< Block, BlockVar >::operator^= ( const DynamicBitsetT< Block, BlockVar > &  b)

◆ operator^=() [2/2]

template<typename Block, typename BlockVar>
DynamicBitsetT& Nice::DynamicBitsetT< Block, BlockVar >::operator^= ( const DynamicBitsetT< Block, BlockVar > &  b)

◆ operator|=() [1/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar > & Nice::DynamicBitsetT< Block, BlockVar >::operator|= ( const DynamicBitsetT< Block, BlockVar > &  b)

◆ operator|=() [2/2]

template<typename Block, typename BlockVar>
DynamicBitsetT& Nice::DynamicBitsetT< Block, BlockVar >::operator|= ( const DynamicBitsetT< Block, BlockVar > &  b)

◆ operator~() [1/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar > Nice::DynamicBitsetT< Block, BlockVar >::operator~ ( ) const

◆ operator~() [2/2]

template<typename Block, typename BlockVar>
DynamicBitsetT Nice::DynamicBitsetT< Block, BlockVar >::operator~ ( ) const

◆ push_back() [1/2]

template<typename Block, typename BlockVar>
void Nice::DynamicBitsetT< Block, BlockVar >::push_back ( bool  bit)

◆ push_back() [2/2]

template<typename Block , typename BlockVar >
void Nice::DynamicBitsetT< Block, BlockVar >::push_back ( bool  bit)

◆ reset() [1/4]

template<typename Block, typename BlockVar>
DynamicBitsetT& Nice::DynamicBitsetT< Block, BlockVar >::reset ( size_type  n)

◆ reset() [2/4]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar > & Nice::DynamicBitsetT< Block, BlockVar >::reset ( size_type  n)

frb BlockVar::mbits[block_index(pos)] &= ~bit_mask(pos);

frb BlockVar::mbits[block_index(pos)] &= ~bit_mask(pos);

◆ reset() [3/4]

template<typename Block, typename BlockVar>
DynamicBitsetT& Nice::DynamicBitsetT< Block, BlockVar >::reset ( )

◆ reset() [4/4]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar > & Nice::DynamicBitsetT< Block, BlockVar >::reset ( )

◆ resize() [1/2]

template<typename Block , typename BlockVar >
void Nice::DynamicBitsetT< Block, BlockVar >::resize ( size_type  numbits,
bool  value = false 
)

frb BlockVar::mbits[old_num_blocks - 1] |= (v << extra_bits);

frb BlockVar::mnumbits = num_bits;

frb BlockVar::mbits[old_num_blocks - 1] |= (v << extra_bits);

frb BlockVar::mnumbits = num_bits;

◆ resize() [2/2]

template<typename Block, typename BlockVar>
void Nice::DynamicBitsetT< Block, BlockVar >::resize ( size_type  numbits,
bool  value = false 
)

◆ set() [1/4]

template<typename Block, typename BlockVar>
DynamicBitsetT& Nice::DynamicBitsetT< Block, BlockVar >::set ( size_type  n,
bool  val = true 
)

◆ set() [2/4]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar > & Nice::DynamicBitsetT< Block, BlockVar >::set ( size_type  n,
bool  val = true 
)

frb BlockVar::mbits[block_index(pos)] |= bit_mask(pos);

frb BlockVar::mbits[block_index(pos)] |= bit_mask(pos);

◆ set() [3/4]

template<typename Block, typename BlockVar>
DynamicBitsetT& Nice::DynamicBitsetT< Block, BlockVar >::set ( )

◆ set() [4/4]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar > & Nice::DynamicBitsetT< Block, BlockVar >::set ( )

◆ size() [1/2]

template<typename Block, typename BlockVar>
size_type Nice::DynamicBitsetT< Block, BlockVar >::size ( ) const

◆ size() [2/2]

template<typename Block , typename BlockVar >
DynamicBitsetT< Block, BlockVar >::size_type Nice::DynamicBitsetT< Block, BlockVar >::size ( ) const
inline

◆ swap() [1/2]

template<typename Block , typename BlockVar >
void Nice::DynamicBitsetT< Block, BlockVar >::swap ( DynamicBitsetT< Block, BlockVar > &  b)
inline

◆ swap() [2/2]

template<typename Block, typename BlockVar>
void Nice::DynamicBitsetT< Block, BlockVar >::swap ( DynamicBitsetT< Block, BlockVar > &  b)

◆ test() [1/2]

template<typename Block, typename BlockVar>
bool Nice::DynamicBitsetT< Block, BlockVar >::test ( size_type  n) const

◆ test() [2/2]

template<typename Block , typename BlockVar >
bool Nice::DynamicBitsetT< Block, BlockVar >::test ( size_type  n) const

◆ to_ulong() [1/2]

template<typename Block , typename BlockVar >
unsigned long Nice::DynamicBitsetT< Block, BlockVar >::to_ulong ( ) const

◆ to_ulong() [2/2]

template<typename Block, typename BlockVar>
unsigned long Nice::DynamicBitsetT< Block, BlockVar >::to_ulong ( ) const

Friends And Related Function Documentation

◆ bit_appender

template<typename Block, typename BlockVar>
bit_appender
friend

◆ from_block_range [1/2]

template<typename Block, typename BlockVar>
template<typename BlockIterator , typename B , typename BV >
void from_block_range ( BlockIterator  first,
BlockIterator  last,
DynamicBitsetT< B, BV > &  result 
)
friend

◆ from_block_range [2/2]

template<typename Block, typename BlockVar>
template<typename BlockIterator , typename B , typename BV >
void from_block_range ( BlockIterator  first,
BlockIterator  last,
DynamicBitsetT< B, BV > &  result 
)
friend

◆ operator< [1/2]

template<typename Block, typename BlockVar>
template<typename B , typename BV >
bool operator< ( const DynamicBitsetT< B, BV > &  a,
const DynamicBitsetT< B, BV > &  b 
)
friend

◆ operator< [2/2]

template<typename Block, typename BlockVar>
template<typename B , typename BV >
bool operator< ( const DynamicBitsetT< B, BV > &  a,
const DynamicBitsetT< B, BV > &  b 
)
friend

◆ operator== [1/2]

template<typename Block, typename BlockVar>
template<typename B , typename BV >
bool operator== ( const DynamicBitsetT< B, BV > &  a,
const DynamicBitsetT< B, BV > &  b 
)
friend

◆ operator== [2/2]

template<typename Block, typename BlockVar>
template<typename B , typename BV >
bool operator== ( const DynamicBitsetT< B, BV > &  a,
const DynamicBitsetT< B, BV > &  b 
)
friend

◆ operator>> [1/2]

template<typename Block, typename BlockVar>
template<typename B , typename BV >
std::istream& operator>> ( std::istream &  is,
DynamicBitsetT< B, BV > &  b 
)
friend

◆ operator>> [2/2]

template<typename Block, typename BlockVar>
template<typename B , typename BV >
std::istream& operator>> ( std::istream &  is,
DynamicBitsetT< B, BV > &  b 
)
friend

◆ to_block_range [1/2]

template<typename Block, typename BlockVar>
template<typename B , typename BV , typename BlockOutputIterator >
void to_block_range ( const DynamicBitsetT< B, BV > &  b,
BlockOutputIterator  result 
)
friend

◆ to_block_range [2/2]

template<typename Block, typename BlockVar>
template<typename B , typename BV , typename BlockOutputIterator >
void to_block_range ( const DynamicBitsetT< B, BV > &  b,
BlockOutputIterator  result 
)
friend

◆ to_string_helper [1/2]

template<typename Block, typename BlockVar>
template<typename B , typename BV >
void to_string_helper ( const DynamicBitsetT< B, BV > &  b,
std::string &  s,
bool  dump_all 
)
friend

◆ to_string_helper [2/2]

template<typename Block, typename BlockVar>
template<typename B , typename BV >
void to_string_helper ( const DynamicBitsetT< B, BV > &  b,
std::string &  s,
bool  dump_all 
)
friend

The documentation for this class was generated from the following file: