77 if(type.
id()==ID_floatbv)
80 value.set_sign(
false);
84 else if(type.
id()==ID_signedbv ||
85 type.
id()==ID_unsignedbv)
119 if(type.
id()==ID_floatbv)
125 else if(type.
id()==ID_signedbv ||
126 type.
id()==ID_unsignedbv)
151 if(dest_type==src_type)
164 if(op0.
id()==ID_floatbv_div ||
165 op0.
id()==ID_floatbv_mult ||
166 op0.
id()==ID_floatbv_plus ||
167 op0.
id()==ID_floatbv_minus)
170 op0.
op0().
id()==ID_typecast &&
171 op0.
op1().
id()==ID_typecast &&
179 result.op0()=op0.
op0().
op0();
196 if(src_type.
id()==ID_floatbv)
198 if(dest_type.id()==ID_floatbv)
208 else if(dest_type.id()==ID_signedbv ||
209 dest_type.id()==ID_unsignedbv)
222 else if(src_type.
id()==ID_signedbv ||
223 src_type.
id()==ID_unsignedbv)
228 if(dest_type.id()==ID_floatbv)
244 if(expr.
op0().
id()==ID_if &&
274 if(type.
id()!=ID_floatbv)
283 assert(
ns.
follow(op0.type())==type);
304 if(expr.
id()==ID_floatbv_plus)
306 else if(expr.
id()==ID_floatbv_minus)
308 else if(expr.
id()==ID_floatbv_mult)
310 else if(expr.
id()==ID_floatbv_div)
321 if(expr.
id()==ID_floatbv_div &&
335 assert(expr.
id()==ID_ieee_float_equal ||
336 expr.
id()==ID_ieee_float_notequal);
340 if(expr.
type().
id()!=ID_bool)
343 if(operands.size()!=2)
361 if(expr.
id()==ID_ieee_float_notequal)
363 else if(expr.
id()==ID_ieee_float_equal)
371 if(expr.
op0()==expr.
op1())
377 if(expr.
id()==ID_ieee_float_notequal)
380 else if(expr.
id()==ID_ieee_float_equal)
The type of an expression.
const typet & follow(const typet &src) const
bool simplify_abs(exprt &expr)
bool simplify_sign(exprt &expr)
bool simplify_node(exprt &expr)
constant_exprt to_expr() const
void copy_to_operands(const exprt &expr)
The trinary if-then-else operator.
void make_bool(bool value)
const floatbv_typet & to_floatbv_type(const typet &type)
Cast a generic typet to a floatbv_typet.
void change_spec(const ieee_float_spect &dest_spec)
bool simplify_if(if_exprt &expr)
const irep_idt & id() const
mp_integer to_integer() const
bool ieee_equal(const ieee_floatt &other) const
A generic base class for binary expressions.
bool simplify_floatbv_op(exprt &expr)
API to expression classes.
bool simplify_isinf(exprt &expr)
std::vector< exprt > operandst
bool simplify_floatbv_typecast(exprt &expr)
Base class for all expressions.
bool simplify_ieee_float_relation(exprt &expr)
void from_integer(const mp_integer &i)
bool ieee_not_equal(const ieee_floatt &other) const
rounding_modet rounding_mode
std::size_t integer2size_t(const mp_integer &n)
const constant_exprt & to_constant_expr(const exprt &expr)
Cast a generic exprt to a constant_exprt.
bool simplify_isnormal(exprt &expr)
bool simplify_isnan(exprt &expr)