23 for(
unsigned i=0; i<fraction.size(); i++)
28 for(
unsigned j=0; j<i; j++)
30 !fraction[fraction.size()-1-j]);
33 equal.push_back(fraction[fraction.size()-1-i]);
62 fraction=new_fraction;
63 exponent=new_exponent;
67 const bvt &src,
unsigned dist)
70 result.resize(src.size());
72 for(
unsigned i=0; i<src.size(); i++)
bvt add(const bvt &op0, const bvt &op1)
static bvt build_constant(const mp_integer &i, std::size_t width)
literalt is_zero(const bvt &op)
void cond_implies_equal(literalt cond, const bvt &a, const bvt &b)
static bvt shift(const bvt &op, const shiftt shift, std::size_t distance)
bvt overapproximating_left_shift(const bvt &src, unsigned dist)
virtual void normalization_shift(bvt &fraction, bvt &exponent)
normalize fraction/exponent pair returns 'zero' if fraction is zero
virtual ~float_approximationt()
virtual literalt land(literalt a, literalt b)=0
virtual bvt new_variables(std::size_t width)
generates a bitvector of given width with new variables
virtual literalt new_variable()=0
Floating Point with under/over-approximation.
std::vector< literalt > bvt
literalt const_literal(bool value)