carl  24.04
Computer ARithmetic Library
carl::BVTerm Class Reference

#include <BVTerm.h>

Collaboration diagram for carl::BVTerm:

Public Member Functions

 BVTerm ()
 
 BVTerm (BVTermType _type, BVValue _value)
 
 BVTerm (BVTermType _type, const BVVariable &_variable)
 
 BVTerm (BVTermType _type, const BVTerm &_operand, std::size_t _index=0)
 
 BVTerm (BVTermType _type, const BVTerm &_first, const BVTerm &_second)
 
 BVTerm (BVTermType _type, const BVTerm &_operand, std::size_t _first, std::size_t _last)
 
std::size_t hash () const
 
std::size_t width () const
 
BVTermType type () const
 
bool is_constant () const
 
size_t complexity () const
 
void gatherBVVariables (std::set< BVVariable > &vars) const
 
bool isInvalid () const
 
const BVTermoperand () const
 
std::size_t index () const
 
const BVTermfirst () const
 
const BVTermsecond () const
 
std::size_t highest () const
 
std::size_t lowest () const
 
const BVVariablevariable () const
 
const BVValuevalue () const
 
BVTerm substitute (const std::map< BVVariable, BVTerm > &) const
 

Private Attributes

friend BVTermPool
 
const BVTermContentmpContent
 

Friends

std::ostream & operator<< (std::ostream &os, const BVTerm &term)
 
bool operator== (const BVTerm &lhs, const BVTerm &rhs)
 
bool operator< (const BVTerm &lhs, const BVTerm &rhs)
 

Detailed Description

Definition at line 23 of file BVTerm.h.

Constructor & Destructor Documentation

◆ BVTerm() [1/6]

carl::BVTerm::BVTerm ( )

Definition at line 15 of file BVTerm.cpp.

Here is the caller graph for this function:

◆ BVTerm() [2/6]

carl::BVTerm::BVTerm ( BVTermType  _type,
BVValue  _value 
)

Definition at line 19 of file BVTerm.cpp.

◆ BVTerm() [3/6]

carl::BVTerm::BVTerm ( BVTermType  _type,
const BVVariable _variable 
)

Definition at line 23 of file BVTerm.cpp.

◆ BVTerm() [4/6]

carl::BVTerm::BVTerm ( BVTermType  _type,
const BVTerm _operand,
std::size_t  _index = 0 
)

Definition at line 27 of file BVTerm.cpp.

◆ BVTerm() [5/6]

carl::BVTerm::BVTerm ( BVTermType  _type,
const BVTerm _first,
const BVTerm _second 
)

Definition at line 31 of file BVTerm.cpp.

◆ BVTerm() [6/6]

carl::BVTerm::BVTerm ( BVTermType  _type,
const BVTerm _operand,
std::size_t  _first,
std::size_t  _last 
)

Definition at line 35 of file BVTerm.cpp.

Member Function Documentation

◆ complexity()

std::size_t carl::BVTerm::complexity ( ) const
Returns
An approximation of the complexity of this bit vector term.

Definition at line 95 of file BVTerm.cpp.

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

◆ first()

const BVTerm & carl::BVTerm::first ( ) const

Definition at line 71 of file BVTerm.cpp.

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

◆ gatherBVVariables()

void carl::BVTerm::gatherBVVariables ( std::set< BVVariable > &  vars) const

Definition at line 51 of file BVTerm.cpp.

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

◆ hash()

std::size_t carl::BVTerm::hash ( ) const

Definition at line 39 of file BVTerm.cpp.

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

◆ highest()

std::size_t carl::BVTerm::highest ( ) const

Definition at line 79 of file BVTerm.cpp.

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

◆ index()

std::size_t carl::BVTerm::index ( ) const

Definition at line 67 of file BVTerm.cpp.

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

◆ is_constant()

bool carl::BVTerm::is_constant ( ) const
inline

Definition at line 51 of file BVTerm.h.

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

◆ isInvalid()

bool carl::BVTerm::isInvalid ( ) const

Definition at line 55 of file BVTerm.cpp.

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

◆ lowest()

std::size_t carl::BVTerm::lowest ( ) const

Definition at line 83 of file BVTerm.cpp.

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

◆ operand()

const BVTerm & carl::BVTerm::operand ( ) const

Definition at line 59 of file BVTerm.cpp.

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

◆ second()

const BVTerm & carl::BVTerm::second ( ) const

Definition at line 75 of file BVTerm.cpp.

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

◆ substitute()

BVTerm carl::BVTerm::substitute ( const std::map< BVVariable, BVTerm > &  _substitutions) const

Definition at line 99 of file BVTerm.cpp.

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

◆ type()

BVTermType carl::BVTerm::type ( ) const

Definition at line 47 of file BVTerm.cpp.

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

◆ value()

const BVValue & carl::BVTerm::value ( ) const

Definition at line 91 of file BVTerm.cpp.

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

◆ variable()

const BVVariable & carl::BVTerm::variable ( ) const

Definition at line 87 of file BVTerm.cpp.

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

◆ width()

std::size_t carl::BVTerm::width ( ) const

Definition at line 43 of file BVTerm.cpp.

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

Friends And Related Function Documentation

◆ operator<

bool operator< ( const BVTerm lhs,
const BVTerm rhs 
)
friend

Definition at line 133 of file BVTerm.cpp.

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const BVTerm term 
)
friend

Definition at line 137 of file BVTerm.cpp.

◆ operator==

bool operator== ( const BVTerm lhs,
const BVTerm rhs 
)
friend

Definition at line 130 of file BVTerm.cpp.

Field Documentation

◆ BVTermPool

friend carl::BVTerm::BVTermPool
private

Definition at line 24 of file BVTerm.h.

◆ mpContent

const BVTermContent* carl::BVTerm::mpContent
private

Definition at line 30 of file BVTerm.h.


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