carl  24.04
Computer ARithmetic Library
carl::BVValue Class Reference

#include <BVValue.h>

Public Types

using Base = boost::dynamic_bitset< uint >
 

Public Member Functions

 BVValue ()=default
 
 BVValue (Base &&value)
 
 BVValue (std::size_t _width, uint _value=0)
 
 BVValue (std::size_t _width, const mpz_class &_value)
 
template<typename BlockInputIterator >
 BVValue (BlockInputIterator _first, BlockInputIterator _last)
 
template<typename Char , typename Traits , typename Alloc >
 BVValue (const std::basic_string< Char, Traits, Alloc > &_s, typename std::basic_string< Char, Traits, Alloc >::size_type _pos=0, typename std::basic_string< Char, Traits, Alloc >::size_type _n=std::basic_string< Char, Traits, Alloc >::npos)
 
 operator const Base & () const
 
const Basebase () const
 
std::size_t width () const
 
std::string toString () const
 
bool is_zero () const
 
BVValue rotateLeft (std::size_t _n) const
 
BVValue rotateRight (std::size_t _n) const
 
BVValue repeat (std::size_t _n) const
 
BVValue extendUnsignedBy (std::size_t _n) const
 
BVValue extendSignedBy (std::size_t _n) const
 
Base::reference operator[] (std::size_t _index)
 
bool operator[] (std::size_t _index) const
 
BVValue concat (const BVValue &_other) const
 
BVValue divideSigned (const BVValue &_other) const
 
BVValue remSigned (const BVValue &_other) const
 
BVValue modSigned (const BVValue &_other) const
 
BVValue rightShiftArithmetic (const BVValue &_other) const
 
BVValue extract (std::size_t _highest, std::size_t _lowest) const
 
BVValue shift (const BVValue &_other, bool _left, bool _arithmetic=false) const
 
BVValue divideUnsigned (const BVValue &_other, bool _returnRemainder=false) const
 

Private Member Functions

template<std::size_t len>
 BVValue (const std::array< uint, len > &a)
 

Private Attributes

Base mValue
 

Detailed Description

Definition at line 17 of file BVValue.h.

Member Typedef Documentation

◆ Base

using carl::BVValue::Base = boost::dynamic_bitset<uint>

Definition at line 19 of file BVValue.h.

Constructor & Destructor Documentation

◆ BVValue() [1/7]

template<std::size_t len>
carl::BVValue::BVValue ( const std::array< uint, len > &  a)
inlineexplicitprivate

Definition at line 25 of file BVValue.h.

◆ BVValue() [2/7]

carl::BVValue::BVValue ( )
default
Here is the caller graph for this function:

◆ BVValue() [3/7]

carl::BVValue::BVValue ( Base &&  value)
inlineexplicit

Definition at line 31 of file BVValue.h.

◆ BVValue() [4/7]

carl::BVValue::BVValue ( std::size_t  _width,
uint  _value = 0 
)
inlineexplicit

Definition at line 34 of file BVValue.h.

◆ BVValue() [5/7]

carl::BVValue::BVValue ( std::size_t  _width,
const mpz_class &  _value 
)

Definition at line 5 of file BVValue.cpp.

◆ BVValue() [6/7]

template<typename BlockInputIterator >
carl::BVValue::BVValue ( BlockInputIterator  _first,
BlockInputIterator  _last 
)
inlineexplicit

Definition at line 49 of file BVValue.h.

◆ BVValue() [7/7]

template<typename Char , typename Traits , typename Alloc >
carl::BVValue::BVValue ( const std::basic_string< Char, Traits, Alloc > &  _s,
typename std::basic_string< Char, Traits, Alloc >::size_type  _pos = 0,
typename std::basic_string< Char, Traits, Alloc >::size_type  _n = std::basic_string<Char, Traits, Alloc>::npos 
)
inlineexplicit

Definition at line 54 of file BVValue.h.

Member Function Documentation

◆ base()

const Base& carl::BVValue::base ( ) const
inline

Definition at line 64 of file BVValue.h.

Here is the caller graph for this function:

◆ concat()

BVValue carl::BVValue::concat ( const BVValue _other) const

Definition at line 46 of file BVValue.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ divideSigned()

BVValue carl::BVValue::divideSigned ( const BVValue _other) const

Definition at line 56 of file BVValue.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ divideUnsigned()

BVValue carl::BVValue::divideUnsigned ( const BVValue _other,
bool  _returnRemainder = false 
) const

Definition at line 158 of file BVValue.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ extendSignedBy()

BVValue carl::BVValue::extendSignedBy ( std::size_t  _n) const
inline

Definition at line 112 of file BVValue.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ extendUnsignedBy()

BVValue carl::BVValue::extendUnsignedBy ( std::size_t  _n) const
inline

Definition at line 106 of file BVValue.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ extract()

BVValue carl::BVValue::extract ( std::size_t  _highest,
std::size_t  _lowest 
) const

Definition at line 114 of file BVValue.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_zero()

bool carl::BVValue::is_zero ( ) const
inline

Definition at line 78 of file BVValue.h.

Here is the caller graph for this function:

◆ modSigned()

BVValue carl::BVValue::modSigned ( const BVValue _other) const

Definition at line 90 of file BVValue.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator const Base &()

carl::BVValue::operator const Base & ( ) const
inlineexplicit

Definition at line 60 of file BVValue.h.

◆ operator[]() [1/2]

Base::reference carl::BVValue::operator[] ( std::size_t  _index)
inline

Definition at line 118 of file BVValue.h.

Here is the call graph for this function:

◆ operator[]() [2/2]

bool carl::BVValue::operator[] ( std::size_t  _index) const
inline

Definition at line 123 of file BVValue.h.

Here is the call graph for this function:

◆ remSigned()

BVValue carl::BVValue::remSigned ( const BVValue _other) const

Definition at line 73 of file BVValue.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ repeat()

BVValue carl::BVValue::repeat ( std::size_t  _n) const
inline

Definition at line 96 of file BVValue.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rightShiftArithmetic()

BVValue carl::BVValue::rightShiftArithmetic ( const BVValue _other) const
inline

Definition at line 136 of file BVValue.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rotateLeft()

BVValue carl::BVValue::rotateLeft ( std::size_t  _n) const
inline

Definition at line 82 of file BVValue.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rotateRight()

BVValue carl::BVValue::rotateRight ( std::size_t  _n) const
inline

Definition at line 92 of file BVValue.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ shift()

BVValue carl::BVValue::shift ( const BVValue _other,
bool  _left,
bool  _arithmetic = false 
) const

Definition at line 125 of file BVValue.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toString()

std::string carl::BVValue::toString ( ) const
inline

Definition at line 72 of file BVValue.h.

◆ width()

std::size_t carl::BVValue::width ( ) const
inline

Definition at line 68 of file BVValue.h.

Here is the caller graph for this function:

Field Documentation

◆ mValue

Base carl::BVValue::mValue
private

Definition at line 22 of file BVValue.h.


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