CanonizationΒΆ

The header <kitty/npn.hpp> implements NPN canonization algorithms.

Function
Description

exact_npn_canonization(tt, fn)

Exact NPN canonization.

exact_p_canonization(tt, fn)

Exact P canonization.

flip_swap_npn_canonization(tt)

Flip-swap NPN heuristic.

sifting_npn_canonization(tt)

Sifting NPN heuristic.

create_from_npn_config(config)

Obtain truth table from NPN configuration.

The header <kitty/spectral.hpp> implements canonization algorithms based on spectral transformations.

Function
Description

exact_spectral_canonization(tt, fn)

Exact spectral canonization.

exact_spectral_canonization_limit(tt, step_limit, fn)

Exact spectral canonization (with recursion limit)

hybrid_exact_spectral_canonization(tt, fn)

Exact spectral canonization (with Reed-Muller preprocessor)

print_spectrum(tt, os)

Print spectral representation of a function in RW order.

rademacher_walsh_spectrum(tt)

Returns the Rademacher-Walsh spectrum of a truth table.

autocorrelation_spectrum(tt)

Returns the autocorrelation spectrum of a truth table.

spectrum_distribution(spectrum)

Returns distribution of absolute spectrum coefficients.

get_spectral_class(tt)

Returns unique index for a spectral equivalence class.

spectral_representative(func)

Returns spectral representative using lookup.

The header <kitty/affine.hpp> implements canonization algorithms based on linear and affine transformations.

Function
Description

exact_linear_canonization(tt, fn)

Applies exact linear classification.

exact_linear_output_canonization(tt)

Applies exact linear classification and output negation.

exact_affine_canonization(tt, fn)

Applies exact affine classification.

exact_affine_output_canonization(tt)

Applies exact affine classification and output negation.