|
CBMC
|
#include <bv_utils.h>
Collaboration diagram for bv_utilst:Public Types | |
| enum | representationt { representationt::SIGNED, representationt::UNSIGNED } |
| enum | shiftt { shiftt::SHIFT_LEFT, shiftt::SHIFT_LRIGHT, shiftt::SHIFT_ARIGHT, shiftt::ROTATE_LEFT, shiftt::ROTATE_RIGHT } |
Public Member Functions | |
| bv_utilst (propt &_prop) | |
| bvt | incrementer (const bvt &op, literalt carry_in) |
| bvt | inc (const bvt &op) |
| void | incrementer (bvt &op, literalt carry_in, literalt &carry_out) |
| bvt | negate (const bvt &op) |
| bvt | negate_no_overflow (const bvt &op) |
| bvt | absolute_value (const bvt &op) |
| literalt | overflow_negate (const bvt &op) |
| literalt | full_adder (const literalt a, const literalt b, const literalt carry_in, literalt &carry_out) |
| literalt | carry (literalt a, literalt b, literalt c) |
| bvt | add_sub (const bvt &op0, const bvt &op1, bool subtract) |
| bvt | add_sub (const bvt &op0, const bvt &op1, literalt subtract) |
| bvt | add_sub_no_overflow (const bvt &op0, const bvt &op1, bool subtract, representationt rep) |
| bvt | saturating_add_sub (const bvt &op0, const bvt &op1, bool subtract, representationt rep) |
| bvt | add (const bvt &op0, const bvt &op1) |
| bvt | sub (const bvt &op0, const bvt &op1) |
| literalt | overflow_add (const bvt &op0, const bvt &op1, representationt rep) |
| literalt | overflow_sub (const bvt &op0, const bvt &op1, representationt rep) |
| literalt | carry_out (const bvt &op0, const bvt &op1, literalt carry_in) |
| bvt | shift (const bvt &op, const shiftt shift, const bvt &distance) |
| bvt | unsigned_multiplier (const bvt &op0, const bvt &op1) |
| bvt | signed_multiplier (const bvt &op0, const bvt &op1) |
| bvt | multiplier (const bvt &op0, const bvt &op1, representationt rep) |
| bvt | multiplier_no_overflow (const bvt &op0, const bvt &op1, representationt rep) |
| bvt | divider (const bvt &op0, const bvt &op1, representationt rep) |
| bvt | remainder (const bvt &op0, const bvt &op1, representationt rep) |
| void | divider (const bvt &op0, const bvt &op1, bvt &res, bvt &rem, representationt rep) |
| void | signed_divider (const bvt &op0, const bvt &op1, bvt &res, bvt &rem) |
| void | unsigned_divider (const bvt &op0, const bvt &op1, bvt &res, bvt &rem) |
| literalt | equal (const bvt &op0, const bvt &op1) |
| Bit-blasting ID_equal and use in other encodings. More... | |
| literalt | is_zero (const bvt &op) |
| literalt | is_not_zero (const bvt &op) |
| literalt | is_int_min (const bvt &op) |
| literalt | is_one (const bvt &op) |
| literalt | is_all_ones (const bvt &op) |
| literalt | lt_or_le (bool or_equal, const bvt &bv0, const bvt &bv1, representationt rep) |
| literalt | rel (const bvt &bv0, irep_idt id, const bvt &bv1, representationt rep) |
| literalt | unsigned_less_than (const bvt &bv0, const bvt &bv1) |
| literalt | signed_less_than (const bvt &bv0, const bvt &bv1) |
| void | set_equal (const bvt &a, const bvt &b) |
| void | cond_implies_equal (literalt cond, const bvt &a, const bvt &b) |
| bvt | cond_negate (const bvt &bv, const literalt cond) |
| bvt | select (literalt s, const bvt &a, const bvt &b) |
| If s is true, selects a otherwise selects b. More... | |
| literalt | verilog_bv_has_x_or_z (const bvt &) |
Static Public Member Functions | |
| static bvt | build_constant (const mp_integer &i, std::size_t width) |
| static bvt | inverted (const bvt &op) |
| static bvt | shift (const bvt &op, const shiftt shift, std::size_t distance) |
| static literalt | sign_bit (const bvt &op) |
| static bool | is_constant (const bvt &bv) |
| static bvt | extension (const bvt &bv, std::size_t new_size, representationt rep) |
| static bvt | sign_extension (const bvt &bv, std::size_t new_size) |
| static bvt | zero_extension (const bvt &bv, std::size_t new_size) |
| static bvt | zeros (std::size_t new_size) |
| static bvt | extract (const bvt &a, std::size_t first, std::size_t last) |
| static bvt | extract_msb (const bvt &a, std::size_t n) |
| static bvt | extract_lsb (const bvt &a, std::size_t n) |
| static bvt | concatenate (const bvt &a, const bvt &b) |
| static bvt | verilog_bv_normal_bits (const bvt &) |
Protected Member Functions | |
| void | adder (bvt &sum, const bvt &op, literalt carry_in, literalt &carry_out) |
| void | adder_no_overflow (bvt &sum, const bvt &op, bool subtract, representationt rep) |
| void | adder_no_overflow (bvt &sum, const bvt &op) |
| bvt | unsigned_multiplier_no_overflow (const bvt &op0, const bvt &op1) |
| bvt | signed_multiplier_no_overflow (const bvt &op0, const bvt &op1) |
| bvt | cond_negate_no_overflow (const bvt &bv, const literalt cond) |
| bvt | wallace_tree (const std::vector< bvt > &pps) |
Protected Attributes | |
| propt & | prop |
Definition at line 23 of file bv_utils.h.
|
strong |
| Enumerator | |
|---|---|
| SIGNED | |
| UNSIGNED | |
Definition at line 28 of file bv_utils.h.
|
strong |
| Enumerator | |
|---|---|
| SHIFT_LEFT | |
| SHIFT_LRIGHT | |
| SHIFT_ARIGHT | |
| ROTATE_LEFT | |
| ROTATE_RIGHT | |
Definition at line 73 of file bv_utils.h.
|
inlineexplicit |
Definition at line 26 of file bv_utils.h.
Definition at line 833 of file bv_utils.cpp.
Definition at line 66 of file bv_utils.h.
Definition at line 335 of file bv_utils.cpp.
Definition at line 350 of file bv_utils.cpp.
| bvt bv_utilst::add_sub_no_overflow | ( | const bvt & | op0, |
| const bvt & | op1, | ||
| bool | subtract, | ||
| representationt | rep | ||
| ) |
Definition at line 324 of file bv_utils.cpp.
|
protected |
Definition at line 293 of file bv_utils.cpp.
Definition at line 517 of file bv_utils.cpp.
|
protected |
Definition at line 482 of file bv_utils.cpp.
|
static |
Definition at line 11 of file bv_utils.cpp.
Definition at line 227 of file bv_utils.cpp.
Definition at line 309 of file bv_utils.cpp.
Definition at line 76 of file bv_utils.cpp.
Definition at line 1370 of file bv_utils.cpp.
Definition at line 820 of file bv_utils.cpp.
Definition at line 839 of file bv_utils.cpp.
| void bv_utilst::divider | ( | const bvt & | op0, |
| const bvt & | op1, | ||
| bvt & | res, | ||
| bvt & | rem, | ||
| representationt | rep | ||
| ) |
Definition at line 933 of file bv_utils.cpp.
|
inline |
Definition at line 89 of file bv_utils.h.
Bit-blasting ID_equal and use in other encodings.
| op0 | Lhs bitvector to compare |
| op1 | Rhs bitvector to compare |
Definition at line 1165 of file bv_utils.cpp.
|
static |
Definition at line 105 of file bv_utils.cpp.
Definition at line 38 of file bv_utils.cpp.
Definition at line 66 of file bv_utils.cpp.
Definition at line 54 of file bv_utils.cpp.
| literalt bv_utilst::full_adder | ( | const literalt | a, |
| const literalt | b, | ||
| const literalt | carry_in, | ||
| literalt & | carry_out | ||
| ) |
Definition at line 136 of file bv_utils.cpp.
Definition at line 33 of file bv_utils.h.
Definition at line 624 of file bv_utils.cpp.
Definition at line 639 of file bv_utils.cpp.
Definition at line 647 of file bv_utils.cpp.
Definition at line 158 of file bv_utils.h.
|
static |
Definition at line 1359 of file bv_utils.cpp.
Definition at line 149 of file bv_utils.h.
Definition at line 146 of file bv_utils.h.
Definition at line 22 of file bv_utils.cpp.
Definition at line 143 of file bv_utils.h.
| literalt bv_utilst::lt_or_le | ( | bool | or_equal, |
| const bvt & | bv0, | ||
| const bvt & | bv1, | ||
| representationt | rep | ||
| ) |
Definition at line 1200 of file bv_utils.cpp.
| bvt bv_utilst::multiplier | ( | const bvt & | op0, |
| const bvt & | op1, | ||
| representationt | rep | ||
| ) |
Definition at line 868 of file bv_utils.cpp.
| bvt bv_utilst::multiplier_no_overflow | ( | const bvt & | op0, |
| const bvt & | op1, | ||
| representationt | rep | ||
| ) |
Definition at line 882 of file bv_utils.cpp.
Definition at line 599 of file bv_utils.cpp.
Definition at line 607 of file bv_utils.cpp.
| literalt bv_utilst::overflow_add | ( | const bvt & | op0, |
| const bvt & | op1, | ||
| representationt | rep | ||
| ) |
Definition at line 433 of file bv_utils.cpp.
Definition at line 613 of file bv_utils.cpp.
| literalt bv_utilst::overflow_sub | ( | const bvt & | op0, |
| const bvt & | op1, | ||
| representationt | rep | ||
| ) |
Definition at line 457 of file bv_utils.cpp.
| literalt bv_utilst::rel | ( | const bvt & | bv0, |
| irep_idt | id, | ||
| const bvt & | bv1, | ||
| representationt | rep | ||
| ) |
Definition at line 1337 of file bv_utils.cpp.
|
inline |
Definition at line 96 of file bv_utils.h.
| bvt bv_utilst::saturating_add_sub | ( | const bvt & | op0, |
| const bvt & | op1, | ||
| bool | subtract, | ||
| representationt | rep | ||
| ) |
Definition at line 363 of file bv_utils.cpp.
If s is true, selects a otherwise selects b.
Definition at line 92 of file bv_utils.cpp.
Definition at line 31 of file bv_utils.cpp.
Definition at line 526 of file bv_utils.cpp.
Definition at line 547 of file bv_utils.cpp.
Definition at line 138 of file bv_utils.h.
Definition at line 182 of file bv_utils.h.
Definition at line 898 of file bv_utils.cpp.
Definition at line 1330 of file bv_utils.cpp.
Definition at line 802 of file bv_utils.cpp.
Definition at line 846 of file bv_utils.cpp.
Definition at line 67 of file bv_utils.h.
Definition at line 951 of file bv_utils.cpp.
Definition at line 1318 of file bv_utils.cpp.
Definition at line 701 of file bv_utils.cpp.
Definition at line 763 of file bv_utils.cpp.
Definition at line 1393 of file bv_utils.cpp.
Definition at line 1408 of file bv_utils.cpp.
Definition at line 655 of file bv_utils.cpp.
Definition at line 187 of file bv_utils.h.
|
inlinestatic |
Definition at line 192 of file bv_utils.h.
|
protected |
Definition at line 222 of file bv_utils.h.