BitMagic-C++
|
Three-valued logic (3VL) operations. More...
#include "bm.h"
Go to the source code of this file.
Namespaces | |
namespace | bm |
Functions | |
template<class BV > | |
void | bm::init_kleene (BV &bv_value, const BV &bv_null) |
Initialized the value bit-vector so that it always returns 0 (false) for the unknown. More... | |
template<class BV > | |
int | bm::get_value_kleene (const BV &bv_value, const BV &bv_null, typename BV::size_type idx) BMNOEXCEPT |
Return Kleene logic value based on value and known vectors. More... | |
template<class BV > | |
void | bm::set_value_kleene (BV &bv_value, BV &bv_null, typename BV::size_type idx, int val) |
Set Kleene logic value based on value and known vectors. More... | |
template<class BV > | |
void | bm::invert_kleene (BV &bv_value, const BV &bv_null) |
Kleene NEG operation. More... | |
template<class BV > | |
void | bm::or_kleene (BV &bv_value1, BV &bv_null1, const BV &bv_value2, const BV &bv_null2) |
Kleene OR(vect1, vect2) (vect1 |= vect2) 1 OR Unk = 1 (known) More... | |
template<class BV > | |
void | bm::or_kleene (BV &bv_value_target, BV &bv_null_target, const BV &bv_value1, const BV &bv_null1, const BV &bv_value2, const BV &bv_null2) |
3-way Kleene OR: target := OR(vect1, vect2) (target := vect1 | vect2) 1 OR Unk = 1 (known) More... | |
template<class BV > | |
void | bm::and_kleene (BV &bv_value1, BV &bv_null1, const BV &bv_value2, const BV &bv_null2) |
Kleene AND(vect1, vect2) (vect1 &= vect2) 0 AND Unk = 0 (known) More... | |
template<class BV > | |
void | bm::and_kleene (BV &bv_value_target, BV &bv_null_target, const BV &bv_value1, const BV &bv_null1, const BV &bv_value2, const BV &bv_null2) |
3-way Kleene target:=AND(vect1, vect2) (target:= vect1 & vect2) 0 AND Unk = 0 (known) More... | |
int | bm::and_values_kleene (int a, int b) BMNOEXCEPT |
Reference function for Kleene logic AND (for verification and testing) More... | |
int | bm::or_values_kleene (int a, int b) BMNOEXCEPT |
Reference function for Kleene logic OR (for verification and testing) More... | |
Three-valued logic (3VL) operations.
Definition in file bm3vl.h.