bm3vl.h File Reference

Three-valued logic (3VL) operations. More...

`#include "bm.h"`
Include dependency graph for bm3vl.h:
This graph shows which files directly or indirectly include this file:

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.
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.
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.
template<class BV>
void | bm::invert_kleene (BV &bv_value, const BV &bv_null)
| Kleene NEG operation.
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).
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)
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).
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)
int | bm::and_values_kleene (int a, int b) BMNOEXCEPT
| Reference function for Kleene logic AND (for verification and testing).
int | bm::or_values_kleene (int a, int b) BMNOEXCEPT
| Reference function for Kleene logic OR (for verification and testing).

## Detailed Description

Three-valued logic (3VL) operations.

Definition in file bm3vl.h.