scram::core::NonTerminal
Representation of non-terminal vertices in BDD graphs. More...
#include <bdd.h>
Inherits from scram::core::Vertex< T >, scram::core::IntrusivePtrCast< T >, boost::noncopyable
Public Functions
| Name | |
|---|---|
| NonTerminal(int index, int order, int id, const VertexPtr & high, const VertexPtr & low) | |
| 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
| Name | |
|---|---|
| ~NonTerminal() =default |
Friends
| 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) |
Additional inherited members
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
template <class T >
class scram::core::NonTerminal;Representation of non-terminal vertices in BDD graphs.
Template Parameters:
- T The type of the main functional BDD vertex.
This class is a base class for various BDD-specific vertices. however, as Vertex, NonTerminal is not polymorphic.
Public Functions Documentation
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.
function index
inline int index() constReturn: The index of this vertex.
function order
inline int order() constReturn: The order of the vertex.
function module
inline bool module() constReturn: true if this vertex represents a module gate.
function module
inline void module(
bool flag
)Sets this vertex for representation of a module.
function coherent
inline bool coherent() constReturn: true if the vertex represents a coherent module.
function coherent
inline void coherent(
bool flag
)Sets the flag for coherent modules.
Parameters:
- flag true for coherent modules.
function high
inline const VertexPtr & high() constReturn: (1/True/then/left) branch if-then-else vertex.
function low
inline const VertexPtr & low() constReturn: (0/False/else/right) branch vertex.
function mark
inline bool mark() constReturn: The mark of this vertex.
function mark
inline void mark(
bool flag
)Marks this vertex.
Parameters:
- flag A flag with the meaning for the user of marks.
Protected Functions Documentation
function ~NonTerminal
~NonTerminal() =defaultFriends
friend get_high_id
friend int get_high_id(
const NonTerminal< T > & vertex
);Default logic for getting signature high and low ids.
Parameters:
- vertex Non-terminal vertex.
Return: Numbers that can be used to uniquely identify the arg vertex.
friend get_low_id
friend int get_low_id(
const NonTerminal< T > & vertex
);Updated on 2025-11-11 at 16:51:08 +0000
