Adiar 2.1.0
An External Memory Decision Diagram Library
Loading...
Searching...
No Matches
Counting Operations

Numerical information on BDDs. More...

Functions

size_t adiar::bdd_nodecount (const bdd &f)
 The number of (internal) nodes used to represent the function.
 
bdd::label_type adiar::bdd_varcount (const bdd &f)
 The number of variables that influence the outcome of the Boolean function, i.e. the number of levels present in the BDD.
 
uint64_t adiar::bdd_pathcount (const bdd &f)
 Count all unique (but not necessarily disjoint) paths to the true terminal.
 
uint64_t adiar::bdd_satcount (const bdd &f, bdd::label_type varcount)
 Count the number of assignments x that make f(x) true.
 
uint64_t adiar::bdd_satcount (const bdd &f)
 Count the number of assignments x that make f(x) true.
 

Detailed Description

Numerical information on BDDs.

Function Documentation

◆ bdd_pathcount()

uint64_t adiar::bdd_pathcount ( const bdd f)

Count all unique (but not necessarily disjoint) paths to the true terminal.

Returns
The number of unique paths.

◆ bdd_satcount() [1/2]

uint64_t adiar::bdd_satcount ( const bdd f)

Count the number of assignments x that make f(x) true.

Same as bdd_satcount(f, varcount), with varcount set to be the size of the global domain or the number of variables within the given BDD.

See also
domain_set bdd_varcount

◆ bdd_satcount() [2/2]

uint64_t adiar::bdd_satcount ( const bdd f,
bdd::label_type  varcount 
)

Count the number of assignments x that make f(x) true.

Parameters
fBDD to count within.
varcountThe number of variables in the domain of the function. This number should be larger than or equal to the number of levels in the BDD (
See also
bdd_varcount())
Returns
The number of unique assignments.
Exceptions
invalid_argumentIf varcount is not larger than the number of levels in the BDD.