pub struct BddParameterEncoder {
    pub bdd_variables: BddVariableSet,
    regulators: Vec<Vec<VariableId>>,
    explicit_function_tables: Vec<Vec<BddVariable>>,
    implicit_function_tables: Vec<Vec<BddVariable>>,
}
Expand description

Handles the translation between parameters of the BooleanNetwork and BddVariables.

There are two types of parameters in the BooleanNetwork - explicit and implicit.

Explicit are the named parameters that are specifically declared in the update functions. Implicit are the anonymous parameters representing the missing update functions.

Every explicit and implicit Parameter maps to a set of BddVariables that represent the values in its function table. The responsibility of this struct is to create all BddVariables and maintain how they map to individual parameters.

Fields

bdd_variables: BddVariableSet

The actual BddVariableSet used to represent the parameters - use this for .dot printing etc.

regulators: Vec<Vec<VariableId>>

The actual regulators of each variable - these are used when evaluating implicit parameters.

explicit_function_tables: Vec<Vec<BddVariable>>

A vector of function tables indexed by explicit ParameterIds of the BooleanNetwork.

implicit_function_tables: Vec<Vec<BddVariable>>

A vector of implicit function tables indexed by VariableIds of the BooleanNetwork. If the variable has an explicit update function, the table is empty.

Implementations

Create a new BddParameterEncoder based on information given in a BooleanNetwork.

Create a new BddParameterEncoder based on information given in a BooleanNetwork and with variables already provided via BddVariableSetBuilder.

A vector of entries in the table of a specific function.

Get teh parameters which correspond to a specific table entry being one.

Find the BddVariable corresponding to the value of the parameter function in the given state assuming the specified arguments.

Make a BddParams set which corresponds to the valuations for which the value of parameter function given arguments is true in the given state.

Find the BddVariable corresponding to the value of the implicit update function of the given variable in the given state.

Make a BddParams set which corresponds to the valuations for which the value of an implicit update function of variable is true in the given state.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.