|
SMTStabilizer API
Public API documentation for SMTStabilizer
|
Namespaces | |
| namespace | hash |
Classes | |
| class | BitVector |
Functions | |
| std::ostream & | operator<< (std::ostream &out, const BitVector &bv) |
| void | mpz_set_ull (mpz_t rop, uint64_t op) |
| uint64_t | mpz_get_ull (const mpz_t op) |
| void | mpz_init_set_ull (mpz_t rop, uint64_t op) |
| mpz_class | uint64_to_mpz_class (uint64_t op) |
| void | mpz_init_set_sll (mpz_t rop, int64_t op) |
| size_t | mpz_hash (const mpz_t op, uint64_t start) |
| void | mpz_fdiv_q_2exp_ull (mpz_t q, const mpz_t n, uint64_t b) |
| void | mpz_fdiv_r_2exp_ull (mpz_t r, const mpz_t n, uint64_t b) |
| void | mpz_mul_2exp_ull (mpz_t rop, const mpz_t op1, uint64_t op2) |
| size_t | hash_node (const node::Node &node) |
| Compute a stable structural hash seed for a parser/node DAG node. | |
| size_t | hash_mix (size_t x) |
| void | hash_combine (size_t &seed, const size_t &v) |
| Mix one value into a hash seed. | |
| void | hash_children (size_t &seed, const std::vector< size_t > &children, const std::vector< size_t > &hash_table) |
| Mix child-node hashes into a parent seed in argument order. | |
| void | hash_communative_children (size_t &seed, const std::vector< size_t > &children, const std::vector< size_t > &hash_table) |
| Mix child-node hashes as a commutative multiset. | |
| void | hash_parents (size_t &seed, const std::vector< std::pair< size_t, size_t > > &parents, const std::vector< size_t > &hash_table) |
| Propagate a node hash contribution to parent nodes. | |
| void stabilizer::util::hash_children | ( | size_t & | seed, |
| const std::vector< size_t > & | children, | ||
| const std::vector< size_t > & | hash_table | ||
| ) |
Mix child-node hashes into a parent seed in argument order.
| seed | Parent hash accumulator to update. |
| children | Child indices. |
| hash_table | Per-node hash table. |
Definition at line 55 of file node_helper.cpp.
References hash_combine().
Referenced by stabilizer::kernel::Kernel::propagate().
| void stabilizer::util::hash_combine | ( | size_t & | seed, |
| const size_t & | v | ||
| ) |
Mix one value into a hash seed.
| seed | Hash accumulator to update. |
| v | Value to combine. |
Definition at line 50 of file node_helper.cpp.
References hash_mix().
Referenced by stabilizer::kernel::Kernel::apply(), hash_children(), hash_communative_children(), hash_node(), hash_parents(), stabilizer::kernel::Kernel::Kernel(), stabilizer::kernel::Kernel::sort_propagate(), and stabilizer::kernel::Kernel::specific_propagate().
| void stabilizer::util::hash_communative_children | ( | size_t & | seed, |
| const std::vector< size_t > & | children, | ||
| const std::vector< size_t > & | hash_table | ||
| ) |
Mix child-node hashes as a commutative multiset.
| seed | Parent hash accumulator to update. |
| children | Child indices. |
| hash_table | Per-node hash table. |
Definition at line 61 of file node_helper.cpp.
References hash_combine().
Referenced by stabilizer::kernel::Kernel::propagate(), and stabilizer::kernel::Kernel::specific_propagate().
| size_t stabilizer::util::hash_mix | ( | size_t | x | ) |
Definition at line 40 of file node_helper.cpp.
Referenced by hash_combine().
| size_t stabilizer::util::hash_node | ( | const node::Node & | node | ) |
Compute a stable structural hash seed for a parser/node DAG node.
The hash is used as an initial value before propagation-based refinement in the kernel stages.
Definition at line 25 of file node_helper.cpp.
References hash_combine().
Referenced by stabilizer::kernel::Kernel::Kernel().
| void stabilizer::util::hash_parents | ( | size_t & | seed, |
| const std::vector< std::pair< size_t, size_t > > & | parents, | ||
| const std::vector< size_t > & | hash_table | ||
| ) |
Propagate a node hash contribution to parent nodes.
| seed | Node hash contribution to propagate. |
| parents | Parent metadata as (parent_index, operand_position). |
| hash_table | Per-node hash table. |
Definition at line 71 of file node_helper.cpp.
References hash_combine().
Referenced by stabilizer::kernel::Kernel::propagate().
| void stabilizer::util::mpz_fdiv_q_2exp_ull | ( | mpz_t | q, |
| const mpz_t | n, | ||
| uint64_t | b | ||
| ) |
Definition at line 129 of file gmp_utils.cpp.
Referenced by stabilizer::util::BitVector::ibvextract(), stabilizer::util::BitVector::ibvrori(), stabilizer::util::BitVector::ibvshr(), stabilizer::util::BitVector::is_uadd_overflow(), and stabilizer::util::BitVector::is_umul_overflow().
| void stabilizer::util::mpz_fdiv_r_2exp_ull | ( | mpz_t | r, |
| const mpz_t | n, | ||
| uint64_t | b | ||
| ) |
Definition at line 134 of file gmp_utils.cpp.
Referenced by stabilizer::util::BitVector::BitVector(), stabilizer::util::BitVector::BitVector(), stabilizer::util::BitVector::bvudivurem(), stabilizer::util::BitVector::from_si(), stabilizer::util::BitVector::from_ui(), stabilizer::util::BitVector::ibvadd(), stabilizer::util::BitVector::ibvand(), stabilizer::util::BitVector::ibvconcat(), stabilizer::util::BitVector::ibvdec(), stabilizer::util::BitVector::ibvextract(), stabilizer::util::BitVector::ibvinc(), stabilizer::util::BitVector::ibvmodinv(), stabilizer::util::BitVector::ibvmul(), stabilizer::util::BitVector::ibvnand(), stabilizer::util::BitVector::ibvneg(), stabilizer::util::BitVector::ibvnor(), stabilizer::util::BitVector::ibvnot(), stabilizer::util::BitVector::ibvor(), stabilizer::util::BitVector::ibvrepeat(), stabilizer::util::BitVector::ibvsext(), stabilizer::util::BitVector::ibvshl(), stabilizer::util::BitVector::ibvsub(), stabilizer::util::BitVector::ibvudiv(), stabilizer::util::BitVector::ibvurem(), stabilizer::util::BitVector::ibvxnor(), stabilizer::util::BitVector::ibvxor(), and stabilizer::util::BitVector::iset().
| uint64_t stabilizer::util::mpz_get_ull | ( | const mpz_t | op | ) |
64-bit version of mpz_get_ui.
mpz_get_ui returns a 32 bit or 64 bit unsigned long depending on the platform (Windows: 32 bit, Linux, macOS: 64).
Definition at line 35 of file gmp_utils.cpp.
Referenced by stabilizer::util::BitVector::ibvpow(), and stabilizer::util::BitVector::to_uint64().
| size_t stabilizer::util::mpz_hash | ( | const mpz_t | op, |
| uint64_t | start = 0 |
||
| ) |
Compute hash value of a GMP value.
| op | GMP value to hash. |
| start | Optional hash seed. |
Definition at line 86 of file gmp_utils.cpp.
Referenced by stabilizer::util::BitVector::hash().
| void stabilizer::util::mpz_init_set_sll | ( | mpz_t | rop, |
| int64_t | op | ||
| ) |
64-bit version of mpz_init_set_si.
Definition at line 72 of file gmp_utils.cpp.
Referenced by stabilizer::util::BitVector::from_si().
| void stabilizer::util::mpz_init_set_ull | ( | mpz_t | rop, |
| uint64_t | op | ||
| ) |
64-bit version of mpz_init_set_ui.
Definition at line 50 of file gmp_utils.cpp.
Referenced by stabilizer::util::BitVector::fits_in_size(), stabilizer::util::BitVector::from_ui(), and stabilizer::util::BitVector::ibvpow().
| void stabilizer::util::mpz_mul_2exp_ull | ( | mpz_t | rop, |
| const mpz_t | op1, | ||
| uint64_t | op2 | ||
| ) |
Definition at line 139 of file gmp_utils.cpp.
Referenced by stabilizer::util::BitVector::ibvconcat(), stabilizer::util::BitVector::ibvpow(), stabilizer::util::BitVector::ibvrepeat(), stabilizer::util::BitVector::ibvroli(), stabilizer::util::BitVector::ibvsext(), stabilizer::util::BitVector::ibvshl(), stabilizer::util::BitVector::ibvudiv(), and stabilizer::util::BitVector::mk_ones().
| void stabilizer::util::mpz_set_ull | ( | mpz_t | rop, |
| uint64_t | op | ||
| ) |
64-bit version of mpz_set_ui.
Definition at line 22 of file gmp_utils.cpp.
Referenced by stabilizer::util::BitVector::iset().
| std::ostream & stabilizer::util::operator<< | ( | std::ostream & | out, |
| const BitVector & | bv | ||
| ) |
Definition at line 3100 of file bitvector.cpp.
References stabilizer::util::BitVector::str().
| mpz_class stabilizer::util::uint64_to_mpz_class | ( | uint64_t | op | ) |
Convert uint64_t to mpz_class.
Definition at line 64 of file gmp_utils.cpp.
Referenced by stabilizer::util::BitVector::to_mpz().