C++ truth table library
Switch branches/tags
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bench
docs
examples
include
test Create truth table for parity function. (#64) Oct 31, 2018
tidy
.clang-format
.gitignore
.gitmodules
.travis.yml
CMakeLists.txt
LICENSE
README.md
appveyor.yml
kitty.svg

README.md

Build Status Build status Documentation Status Codacy Badge Latest release License: MIT

kitty

kitty is a C++-14 truth table library. It provides efficient implementations for basic truth table manipulations and various algorithms.

Read the full documentation.

Example

The following code snippet generates truth tables for the 3-variable functions sum and carry for a 1-bit full-adder with carry.

#include <kitty/kitty.hpp>

dynamic_truth_table a( 3 ), b( 3 ), c( 3 );

create_nth_var( a, 0 );
create_nth_var( b, 1 );
create_nth_var( c, 2 );

const auto sum = a ^ b ^ c;
const auto carry = ternary_majority( a, b, c );

One can use static_truth_table instead of dynamic_truth_table, if the number of variables is known at compile-time. The interface stays the same.

#include <kitty/kitty.hpp>

static_truth_table<3> a, b, c;

create_nth_var( a, 0 );
create_nth_var( b, 1 );
create_nth_var( c, 2 );

const auto sum = a ^ b ^ c;
const auto carry = ternary_majority( a, b, c );

EPFL logic sythesis libraries

kitty is part of the EPFL logic synthesis libraries. The other libraries and several examples on how to use and integrate the libraries can be found in the logic synthesis tool showcase.