12 mpInvalid(add(new
Term))
23 return this->
add(
new Term(_type, std::move(_value)));
28 return this->
add(
new Term(_type, _variable));
57 CARL_LOG_WARN(
"carl.bitvector",
"No simplification for " << _type <<
" BVTerm.");
60 return this->
add(
new Term(_type, _operand, _index));
144 unsigned val = (_first.
value() == _second.
value()) ? 1 : 0;
157 CARL_LOG_WARN(
"carl.bitvector",
"No simplification for " << _type <<
" BVTerm.");
161 return this->
add(
new Term(_type, _first, _second));
170 CARL_LOG_WARN(
"carl.bitvector",
"No simplification for " << _type <<
" BVTerm.");
173 return this->
add(
new Term(_type, _operand, _highest, _lowest));
182 #define BV_TERM_POOL BVTermPool::getInstance()
#define CARL_LOG_WARN(channel, msg)
carl is the main namespace for the library.
std::size_t width() const
const BVTermContent * mpContent
const BVValue & value() const
void assignId(TermPtr _term, std::size_t _id) override
Assigns a unique id to the generated element.
BVValue modSigned(const BVValue &_other) const
BVValue extract(std::size_t _highest, std::size_t _lowest) const
BVValue concat(const BVValue &_other) const
BVValue repeat(std::size_t _n) const
BVValue rotateLeft(std::size_t _n) const
BVValue rotateRight(std::size_t _n) const
BVValue extendSignedBy(std::size_t _n) const
BVValue extendUnsignedBy(std::size_t _n) const
BVValue rightShiftArithmetic(const BVValue &_other) const
BVValue divideSigned(const BVValue &_other) const
BVValue remSigned(const BVValue &_other) const
Represent a BitVector-Variable.
ConstElementPtr add(ElementPtr _element)
Adds the given element to the pool, if it does not yet occur in there.