|
CBMC
|
#include <float_bv.h>
Classes | |
| struct | biased_floatt |
| struct | rounding_mode_bitst |
| struct | unbiased_floatt |
| struct | unpacked_floatt |
Public Types | |
| enum class | relt { LT , LE , EQ , GT , GE } |
Public Member Functions | |
| exprt | operator() (const exprt &src) const |
| exprt | convert (const exprt &) const |
| exprt | add_sub (bool subtract, const exprt &, const exprt &, const exprt &rm, const ieee_float_spect &) const |
| exprt | mul (const exprt &, const exprt &, const exprt &rm, const ieee_float_spect &) const |
| exprt | div (const exprt &, const exprt &, const exprt &rm, const ieee_float_spect &) const |
| exprt | fma (const exprt &multiply_lhs, const exprt &multiply_rhs, const exprt &addend, const exprt &rm, const ieee_float_spect &) const |
| Fused multiply-add: round(multiply_lhs * multiply_rhs + addend) with a single rounding step. | |
| exprt | from_unsigned_integer (const exprt &, const exprt &rm, const ieee_float_spect &) const |
| exprt | from_signed_integer (const exprt &, const exprt &rm, const ieee_float_spect &) const |
| exprt | conversion (const exprt &src, const exprt &rm, const ieee_float_spect &src_spec, const ieee_float_spect &dest_spec) const |
Static Public Member Functions | |
| static exprt | negation (const exprt &, const ieee_float_spect &) |
| static exprt | abs (const exprt &, const ieee_float_spect &) |
| static exprt | is_equal (const exprt &, const exprt &, const ieee_float_spect &) |
| static exprt | is_zero (const exprt &) |
| static exprt | isnan (const exprt &, const ieee_float_spect &) |
| static exprt | isinf (const exprt &, const ieee_float_spect &) |
| static exprt | isnormal (const exprt &, const ieee_float_spect &) |
| static exprt | isfinite (const exprt &, const ieee_float_spect &) |
| static exprt | to_signed_integer (const exprt &src, std::size_t dest_width, const exprt &rm, const ieee_float_spect &) |
| static exprt | to_unsigned_integer (const exprt &src, std::size_t dest_width, const exprt &rm, const ieee_float_spect &) |
| static exprt | to_integer (const exprt &src, std::size_t dest_width, bool is_signed, const exprt &rm, const ieee_float_spect &) |
| static exprt | relation (const exprt &, relt rel, const exprt &, const ieee_float_spect &) |
Private Member Functions | |
| exprt | rounder (const unbiased_floatt &, const exprt &rm, const ieee_float_spect &) const |
Definition at line 16 of file float_bv.h.
|
strong |
| Enumerator | |
|---|---|
| LT | |
| LE | |
| EQ | |
| GT | |
| GE | |
Definition at line 97 of file float_bv.h.
|
static |
Definition at line 202 of file float_bv.cpp.
|
staticprivate |
Definition at line 1520 of file float_bv.cpp.
| exprt float_bvt::add_sub | ( | bool | subtract, |
| const exprt & | op0, | ||
| const exprt & | op1, | ||
| const exprt & | rm, | ||
| const ieee_float_spect & | spec | ||
| ) | const |
Definition at line 528 of file float_bv.cpp.
|
staticprivate |
takes an unbiased float, and applies the bias
Definition at line 1488 of file float_bv.cpp.
| exprt float_bvt::conversion | ( | const exprt & | src, |
| const exprt & | rm, | ||
| const ieee_float_spect & | src_spec, | ||
| const ieee_float_spect & | dest_spec | ||
| ) | const |
Definition at line 425 of file float_bv.cpp.
Definition at line 19 of file float_bv.cpp.
|
staticprivate |
make sure exponent is not too small; the exponent is unbiased
Definition at line 1131 of file float_bv.cpp.
| exprt float_bvt::div | ( | const exprt & | src1, |
| const exprt & | src2, | ||
| const exprt & | rm, | ||
| const ieee_float_spect & | spec | ||
| ) | const |
Definition at line 748 of file float_bv.cpp.
|
staticprivate |
Definition at line 260 of file float_bv.cpp.
|
staticprivate |
Definition at line 269 of file float_bv.cpp.
| exprt float_bvt::fma | ( | const exprt & | multiply_lhs, |
| const exprt & | multiply_rhs, | ||
| const exprt & | addend, | ||
| const exprt & | rm, | ||
| const ieee_float_spect & | spec | ||
| ) | const |
Fused multiply-add: round(multiply_lhs * multiply_rhs + addend) with a single rounding step.
| multiply_lhs | left-hand side of the multiplication |
| multiply_rhs | right-hand side of the multiplication |
| addend | value added to the product |
| rm | IEEE 754 rounding mode |
| spec | floating-point format specification |
Definition at line 837 of file float_bv.cpp.
|
staticprivate |
Definition at line 278 of file float_bv.cpp.
|
staticprivate |
rounding decision for fraction using sticky bit
Definition at line 1252 of file float_bv.cpp.
| exprt float_bvt::from_signed_integer | ( | const exprt & | src, |
| const exprt & | rm, | ||
| const ieee_float_spect & | spec | ||
| ) | const |
Definition at line 313 of file float_bv.cpp.
| exprt float_bvt::from_unsigned_integer | ( | const exprt & | src, |
| const exprt & | rm, | ||
| const ieee_float_spect & | spec | ||
| ) | const |
Definition at line 337 of file float_bv.cpp.
|
staticprivate |
Gets the unbiased exponent in a floating-point bit-vector.
Definition at line 1056 of file float_bv.cpp.
|
staticprivate |
Gets the fraction without hidden bit in a floating-point bit-vector src.
Definition at line 1064 of file float_bv.cpp.
|
staticprivate |
Definition at line 196 of file float_bv.cpp.
|
static |
Definition at line 222 of file float_bv.cpp.
Definition at line 244 of file float_bv.cpp.
|
static |
Definition at line 1048 of file float_bv.cpp.
|
static |
Definition at line 1039 of file float_bv.cpp.
|
static |
Definition at line 1071 of file float_bv.cpp.
|
static |
Definition at line 499 of file float_bv.cpp.
|
staticprivate |
Limits the shift distance.
Definition at line 674 of file float_bv.cpp.
| exprt float_bvt::mul | ( | const exprt & | src1, |
| const exprt & | src2, | ||
| const exprt & | rm, | ||
| const ieee_float_spect & | spec | ||
| ) | const |
Definition at line 697 of file float_bv.cpp.
|
static |
Definition at line 212 of file float_bv.cpp.
normalize fraction/exponent pair returns 'zero' if fraction is zero
Definition at line 1080 of file float_bv.cpp.
Definition at line 19 of file float_bv.h.
|
staticprivate |
Definition at line 1573 of file float_bv.cpp.
|
static |
Definition at line 956 of file float_bv.cpp.
|
staticprivate |
Definition at line 1422 of file float_bv.cpp.
|
staticprivate |
Definition at line 1316 of file float_bv.cpp.
|
private |
Definition at line 1209 of file float_bv.cpp.
Definition at line 306 of file float_bv.cpp.
|
staticprivate |
Definition at line 1604 of file float_bv.cpp.
|
staticprivate |
Definition at line 1530 of file float_bv.cpp.
|
staticprivate |
Subtracts the exponents.
Definition at line 509 of file float_bv.cpp.
|
static |
Definition at line 377 of file float_bv.cpp.
|
static |
Definition at line 359 of file float_bv.cpp.
|
static |
Definition at line 368 of file float_bv.cpp.
|
staticprivate |
Definition at line 1540 of file float_bv.cpp.