26 return create(lval == rval);
28 return create(!(lval == rval));
31 bool less = lval < rval;
43 bool lhsNegative = lval[lval.
width()-1];
44 bool rhsNegative = rval[rval.
width()-1];
47 return create((lhsNegative && ! rhsNegative) || (lhsNegative == rhsNegative &&
less));
49 return create((lhsNegative && ! rhsNegative) || (lhsNegative == rhsNegative &&
less) || lval == rval);
51 return create((! lhsNegative && rhsNegative) || (lhsNegative == rhsNegative && !
less && !(lval == rval)));
53 return create((! lhsNegative && rhsNegative) || (lhsNegative == rhsNegative && !
less));
56 CARL_LOG_WARN(
"carl.bitvector",
"No simplification for " << _relation <<
" BVConstraint.");
64 _constraint->
mId = _id;
#define CARL_LOG_WARN(channel, msg)
carl is the main namespace for the library.
Alternative specialization of std::less for pointer types.
std::size_t mId
The unique id.
void assignId(ConstraintPtr _constraint, std::size_t _id) override
Assigns a unique id to the generated element.
ConstConstraintPtr create(bool _consistent=true)
std::size_t width() const
const BVValue & value() const
std::size_t width() const
ConstElementPtr add(ElementPtr _element)
Adds the given element to the pool, if it does not yet occur in there.