Crate bex[][src]

Expand description

A crate for working with boolean expressions.

Re-exports

pub use base::*;

Modules

anf

(Experimental) support for algebraic normal form (XOR of AND). Experimental structure for representing algebraic normal form (xor of ands).

apl

Helper routines inspired by the APL family of programming languages.

ast

Abstract syntax trees (simple logic combinators).

base

Standard interface for working with databases of expressions.

bdd

Binary decision diagrams (if-then-else).

cur
int

Helpers for working with arrays of bit structures as if they were integers.

io

Input/output helpers.

nid

Node IDs (shared by various Base implementations) Defines a common NID scheme for bases whose nodes follow a (var, lo, hi) structure. Used by BDD, ANF, and eventually ZDD.

ops

RPN-like serialization structure for expressions.

reg

Registers – arbitrarily large arrays of bits.

solve

Solve AST-based expressions by converting them to other forms.

swap

swap solver

swarm

multicore support

vhl

(Var, Hi, Lo) triples

vid

Variable IDs (used interally by Base implementations)

wip

Structures for storing work in progress.

Macros

expr
find_factors

This is an example solver used by the bdd-solve example and the bench-solve benchmark. It finds all pairs of type $T0 that multiply to $k as a $T1. ($T0 and $T1 are BInt types. Generally $T0 would have half as many bits as $T1) $TDEST is destination type.

inherit

This macro makes it easy to define decorators for Base implementations. Define your decorator as a struct with type parameter T:Base and member base: T, then use this macro to implement the functions you don’t want to manually decorate.

inherit_fn

This helper macro provides actual implementations for the names passed to inherit!

op