scram::core::Bdd
Analysis of PDAGs with Binary Decision Diagrams. More...
#include <bdd.h>
Inherits from boost::noncopyable
Public Classes
| Name | |
|---|---|
| class | Consensus <br>Provides access to consensus calculation private facilities. |
| struct | Function <br>Holder of computation resultant functions and gate representations. |
Public Types
| Name | |
|---|---|
| using IntrusivePtr< Vertex< Ite > > | VertexPtr <br>BDD vertex base. |
| using IntrusivePtr< Terminal< Ite > > | TerminalPtr <br>Terminal vertices. |
Public Functions
| Name | |
|---|---|
| Bdd(const Pdag * graph, const Settings & settings)<br>Constructor with the analysis target. | |
| ~Bdd()<br>To handle incomplete ZBDD type with unique pointers. | |
| const Function & | root() const |
| const std::unordered_map< int, Function > & | modules() const |
| const std::unordered_map< int, int > & | index_to_order() const |
| bool | coherent() const |
| void | ClearMarks(bool mark)<br>Helper function to clear and set vertex marks. |
| void | Analyze(const Pdag * graph =nullptr)<br>Runs the Qualitative analysis with the representation of a PDAG as ROBDD. |
| const Zbdd & | products() const |
Detailed Description
class scram::core::Bdd;Analysis of PDAGs with Binary Decision Diagrams.
Note: The low/else edge is chosen to have the attribute for an ITE vertex. There is only one terminal vertex of value 1/True.
This binary decision diagram data structure represents Reduced Ordered BDD with attributed edges.
Public Types Documentation
using VertexPtr
using scram::core::Bdd::VertexPtr = IntrusivePtr<Vertex<Ite> >;BDD vertex base.
using TerminalPtr
using scram::core::Bdd::TerminalPtr = IntrusivePtr<Terminal<Ite> >;Terminal vertices.
Public Functions Documentation
function Bdd
Bdd(
const Pdag * graph,
const Settings & settings
)Constructor with the analysis target.
Parameters:
- graph Preprocessed and partially normalized PDAG.
- settings The analysis settings.
Note: BDD construction may take considerable time.
Precondition: The PDAG has variable ordering.
Reduced Ordered BDD is produced from a PDAG.
function ~Bdd
~Bdd()To handle incomplete ZBDD type with unique pointers.
function root
inline const Function & root() constReturn: The root function of the ROBDD.
function modules
inline const std::unordered_map< int, Function > & modules() constReturn: Mapping of PDAG modules and BDD graph vertices.
function index_to_order
inline const std::unordered_map< int, int > & index_to_order() constReturn: Mapping of variable indices to their orders.
function coherent
inline bool coherent() constReturn: true if the BDD has been constructed from a coherent PDAG.
function ClearMarks
inline void ClearMarks(
bool mark
)Helper function to clear and set vertex marks.
Parameters:
- mark Desired mark for BDD vertices.
Note: Marks will propagate to modules as well.
Warning: If the graph is discontinuously and partially marked, this function will not help with the mess.
function Analyze
void Analyze(
const Pdag * graph =nullptr
)Runs the Qualitative analysis with the representation of a PDAG as ROBDD.
Parameters:
- graph The optional PDAG with non-declarative substitutions.
function products
inline const Zbdd & products() constReturn: Products generated by the analysis.
Precondition: Analysis is done.
Updated on 2025-11-11 at 16:51:08 +0000
