scram::core::SetNode
Representation of non-terminal nodes in ZBDD. More...
#include <zbdd.h>
Inherits from scram::core::NonTerminal< SetNode >, scram::core::Vertex< T >, scram::core::IntrusivePtrCast< T >, boost::noncopyable
Public Functions
| Name | |
|---|---|
| bool | minimal() const |
| void | minimal(bool flag)<br>Sets the indication of a minimized ZBDD. |
| int | max_set_order() const |
| void | max_set_order(int order)<br>Registers the order of the largest set in the ZBDD represented by this vertex. |
| std::int64_t | count() const |
| void | count(std::int64_t number)<br>Stores numerical value for later retrieval. |
| NonTerminal(int index, int order, int id, const VertexPtr & high, const VertexPtr & low) |
Additional inherited members
Public Functions inherited from scram::core::NonTerminal< SetNode >
| Name | |
|---|---|
| int | index() const |
| int | order() const |
| bool | module() const |
| void | module(bool flag)<br>Sets this vertex for representation of a module. |
| bool | coherent() const |
| void | coherent(bool flag)<br>Sets the flag for coherent modules. |
| const VertexPtr & | high() const |
| const VertexPtr & | low() const |
| bool | mark() const |
| void | mark(bool flag)<br>Marks this vertex. |
Protected Functions inherited from scram::core::NonTerminal< SetNode >
| Name | |
|---|---|
| ~NonTerminal() =default |
Friends inherited from scram::core::NonTerminal< SetNode >
| Name | |
|---|---|
| int | get_high_id(const NonTerminal< T > & vertex) <br>Default logic for getting signature high and low ids. |
| int | get_low_id(const NonTerminal< T > & vertex) |
Public Functions inherited from scram::core::Vertex< T >
| Name | |
|---|---|
| Vertex(int id) | |
| int | id() const |
| bool | terminal() const |
| int | use_count() const |
| bool | unique() const |
Protected Functions inherited from scram::core::Vertex< T >
| Name | |
|---|---|
| ~Vertex()<br>Communicates the destruction via the pointer to the unique table entry if there's any. |
Friends inherited from scram::core::Vertex< T >
| Name | |
|---|---|
| class | WeakIntrusivePtr< T > |
| void | intrusive_ptr_add_ref(Vertex< T > * ptr) <br>Increases the reference count for new intrusive pointers. |
| void | intrusive_ptr_release(Vertex< T > * ptr) <br>Decrements the reference count for removed intrusive pointers. |
Public Functions inherited from scram::core::IntrusivePtrCast< T >
| Name | |
|---|---|
| IntrusivePtr< W > | Ptr(const IntrusivePtr< Vertex< T > > & vertex) |
| W & | Ref(const IntrusivePtr< Vertex< T > > & vertex) |
Detailed Description
class scram::core::SetNode;Representation of non-terminal nodes in ZBDD.
Complement variables are represented with negative indices. The order of the complement is higher than the order of the variable.
Public Functions Documentation
function minimal
inline bool minimal() constReturn: true if the ZBDD is minimized.
function minimal
inline void minimal(
bool flag
)Sets the indication of a minimized ZBDD.
Parameters:
- flag A flag for minimized ZBDD.
function max_set_order
inline int max_set_order() constReturn: The registered order of the largest set in the ZBDD.
function max_set_order
inline void max_set_order(
int order
)Registers the order of the largest set in the ZBDD represented by this vertex.
Parameters:
- order The order/size of the largest set.
function count
inline std::int64_t count() constReturn: Whatever count is stored in this node.
function count
inline void count(
std::int64_t number
)Stores numerical value for later retrieval.
Parameters:
- number A number with a meaning for the caller.
Note: This field is provided for ZBDD processing techniques that use mutually exclusive meta-data about the node in different stages of ZBDD processing. Usually, the data is not needed after the technique is done. In contrast to providing separate fields or using hash tables for each technique metric, this general-purpose field saves space and time.
This can be a helper functionality for counting the number of sets or nodes.
function NonTerminal
inline NonTerminal(
int index,
int order,
int id,
const VertexPtr & high,
const VertexPtr & low
)Parameters:
- index Index of this non-terminal vertex.
- order Specific ordering number for BDD graphs.
- id Unique identifier of the ROBDD graph. The identifier should not collide with the identifiers (0/1) of terminal nodes.
- high A vertex for the (1/True/then/left) branch.
- low A vertex for the (0/False/else/right) branch.
Updated on 2025-11-11 at 16:51:08 +0000
