DecompositionΒΆ

The header <kitty/decomposition.hpp> implements methods to decompose Boolean functions into smaller functions (beyond co-factoring, which is part of the general operations).

Function
Description

is_top_decomposable(tt, var_index, func, allow_xor)

Checks, whether function is top disjoint decomposable.

is_bottom_decomposable(tt, var_index1, var_index2, func, allow_xor)

Checks, whether function is bottom disjoint decomposable.

is_ashenhurst_decomposable(tt, zs_index, ys_index, outer_func, inner_func)

Checks, whether a function is Ashenhurst decomposable.

ashenhurst_decomposition(tt, ys_index, decomposition)

Finds all of the possible Ashenhurst decompositions of a function given an input partitioning.

is_bi_decomposable(tt, dc)

Checks whether a function is bi-decomposable.

is_bi_decomposable_mc(tt, dc)

Checks whether a function is bi-decomposable using XOR as preferred operation.