12#ifndef BZLA__BV_BITVECTOR_H
13#define BZLA__BV_BITVECTOR_H
2214std::ostream &
operator<<(std::ostream &out,
const BitVector &bv);
BitVector & ibvsext(const BitVector &bv, uint64_t n)
BitVector bvmodinv() const
static BitVector mk_min_signed(uint64_t size)
BitVector bvumulo(const BitVector &bv) const
BitVector & ibveq(const BitVector &bv0, const BitVector &bv1)
BitVector bvredor() const
BitVector bvshl(uint64_t shift) const
BitVector bvudiv(const BitVector &bv) const
BitVector & ibvpow(const BitVector &base, const mpz_t exp)
uint64_t to_uint64(bool truncate=false) const
BitVector & ibvsdivo(const BitVector &bv0, const BitVector &bv1)
BitVector & ibvule(const BitVector &bv0, const BitVector &bv1)
BitVector bvusubo(const BitVector &bv) const
BitVector bvand(const BitVector &bv) const
BitVector & ibvsrem(const BitVector &bv0, const BitVector &bv1)
BitVector bvroli(uint64_t n) const
BitVector & ibvsub(const BitVector &bv0, const BitVector &bv1)
static BitVector mk_max_signed(uint64_t size)
BitVector bvslt(const BitVector &bv) const
uint64_t count_leading_ones() const
BitVector & ibvult(const BitVector &bv0, const BitVector &bv1)
static BitVector mk_one(uint64_t size)
BitVector & ibvsgt(const BitVector &bv0, const BitVector &bv1)
BitVector & ibvsmod(const BitVector &bv0, const BitVector &bv1)
BitVector & ibvuaddo(const BitVector &bv0, const BitVector &bv1)
BitVector bvextract(uint64_t idx_hi, uint64_t idx_lo) const
BitVector bvshr(uint64_t shift) const
BitVector & ibvzext(const BitVector &bv, uint64_t n)
BitVector bvredand() const
static BitVector from_si(uint64_t size, int64_t value, bool truncate=false)
static uint64_t uint64_fdiv_r_2exp(uint64_t size, uint64_t val)
uint64_t count_trailing_zeros() const
uint64_t count_trailing_ones() const
BitVector bvashr(uint64_t shift) const
bool operator!=(const BitVector &bv) const
bool is_min_signed() const
BitVector bvsle(const BitVector &bv) const
BitVector & ibvrori(const BitVector &bv, uint64_t n)
BitVector bveq(const BitVector &bv) const
BitVector & ibvxor(const BitVector &bv0, const BitVector &bv1)
BitVector bvsub(const BitVector &bv) const
BitVector bvnand(const BitVector &bv) const
BitVector & operator=(const BitVector &other)
bool is_sadd_overflow(const BitVector &bv) const
bool is_uadd_overflow(const BitVector &bv) const
BitVector & ibvnand(const BitVector &bv0, const BitVector &bv1)
static BitVector mk_ones(uint64_t size)
BitVector & ibvite(const BitVector &c, const BitVector &t, const BitVector &e)
BitVector & ibvudiv(const BitVector &bv0, const BitVector &bv1)
BitVector bvsaddo(const BitVector &bv) const
BitVector bvsdiv(const BitVector &bv) const
BitVector & ibvxnor(const BitVector &bv0, const BitVector &bv1)
BitVector bvrori(uint64_t n) const
BitVector bvconcat(const BitVector &bv) const
BitVector & ibvor(const BitVector &bv0, const BitVector &bv1)
BitVector bvule(const BitVector &bv) const
void flip_bit(uint64_t idx)
BitVector bvsext(uint64_t n) const
static BitVector mk_false()
BitVector bvurem(const BitVector &bv) const
bool is_sdiv_overflow(const BitVector &bv) const
void set_bit(uint64_t idx, bool value)
BitVector bvuge(const BitVector &bv) const
bool is_smul_overflow(const BitVector &bv) const
uint64_t get_limb(void *limb, uint64_t nbits_rem, bool zeros) const
uint64_t count_leading_zeros() const
BitVector bvsdivo(const BitVector &bv) const
BitVector & ibvuge(const BitVector &bv0, const BitVector &bv1)
BitVector & ibvextract(const BitVector &bv, uint64_t idx_hi, uint64_t idx_lo)
BitVector & ibvashr(const BitVector &bv, uint64_t shift)
BitVector & ibvsge(const BitVector &bv0, const BitVector &bv1)
static BitVector mk_zero(uint64_t size)
BitVector bvpow(const mpz_t exp) const
BitVector bvzext(uint64_t n) const
BitVector & ibvnor(const BitVector &bv0, const BitVector &bv1)
BitVector bvor(const BitVector &bv) const
void bvudivurem(const BitVector &bv, BitVector *quot, BitVector *rem) const
BitVector bvmul(const BitVector &bv) const
BitVector bvrol(const BitVector &n) const
std::string str(uint32_t base=2) const
BitVector & ibvumulo(const BitVector &bv0, const BitVector &bv1)
int32_t compare(const BitVector &bv) const
uint64_t count_leading(bool zeros) const
BitVector bvssubo(const BitVector &bv) const
BitVector bvxnor(const BitVector &bv) const
static BitVector mk_true()
bool is_power_of_two() const
BitVector bvsge(const BitVector &bv) const
BitVector & ibvsaddo(const BitVector &bv0, const BitVector &bv1)
BitVector & ibvadd(const BitVector &bv0, const BitVector &bv1)
BitVector & ibvsle(const BitVector &bv0, const BitVector &bv1)
BitVector bvnor(const BitVector &bv) const
static BitVector from_ui(uint64_t size, uint64_t value, bool truncate=false)
BitVector bvrepeat(uint64_t n) const
BitVector bvuaddo(const BitVector &bv) const
bool operator==(const BitVector &bv) const
BitVector bvsmulo(const BitVector &bv) const
BitVector bvredxor() const
BitVector & ibvrepeat(const BitVector &bv, uint64_t n)
BitVector & ibvugt(const BitVector &bv0, const BitVector &bv1)
BitVector bvsmod(const BitVector &bv) const
void iset(uint64_t value)
BitVector & ibvsdiv(const BitVector &bv0, const BitVector &bv1)
BitVector & ibvshr(const BitVector &bv, uint64_t shift)
BitVector & ibvslt(const BitVector &bv0, const BitVector &bv1)
BitVector bvadd(const BitVector &bv) const
BitVector & ibvroli(const BitVector &bv, uint64_t n)
BitVector & ibvimplies(const BitVector &bv0, const BitVector &bv1)
BitVector bvugt(const BitVector &bv) const
BitVector & ibvand(const BitVector &bv0, const BitVector &bv1)
BitVector & ibvrol(const BitVector &bv, const BitVector &n)
BitVector & ibvror(const BitVector &bv, const BitVector &n)
BitVector & ibvconcat(const BitVector &bv0, const BitVector &bv1)
BitVector bvimplies(const BitVector &bv) const
BitVector bvsrem(const BitVector &bv) const
bool shift_is_uint64(uint64_t *res) const
bool is_usub_overflow(const BitVector &bv) const
BitVector & ibvsmulo(const BitVector &bv0, const BitVector &bv1)
BitVector bvsgt(const BitVector &bv) const
BitVector bvxor(const BitVector &bv) const
static BitVector bvite(const BitVector &c, const BitVector &t, const BitVector &e)
BitVector bvult(const BitVector &bv) const
BitVector & ibvurem(const BitVector &bv0, const BitVector &bv1)
bool is_max_signed() const
bool is_neg_overflow() const
static constexpr size_t s_native_size
BitVector & ibvssubo(const BitVector &bv0, const BitVector &bv1)
bool is_ssub_overflow(const BitVector &bv) const
BitVector & ibvne(const BitVector &bv0, const BitVector &bv1)
BitVector & ibvusubo(const BitVector &bv0, const BitVector &bv1)
static bool fits_in_size(uint64_t size, const std::string &str, uint32_t base)
const mpz_t & gmp_value() const
int32_t signed_compare(const BitVector &bv) const
BitVector bvror(const BitVector &n) const
BitVector & ibvshl(const BitVector &bv, uint64_t shift)
BitVector bvne(const BitVector &bv) const
BitVector & ibvmul(const BitVector &bv0, const BitVector &bv1)
bool bit(uint64_t idx) const
bool is_umul_overflow(const BitVector &bv) const
std::ostream & operator<<(std::ostream &out, const BitVector &bv)