Skip to content

scram::core::Ite

Representation of non-terminal if-then-else vertices in BDD graphs. More...

#include <bdd.h>

Inherits from scram::core::NonTerminal< Ite >, scram::core::Vertex< T >, scram::core::IntrusivePtrCast< T >, boost::noncopyable

Public Functions

Name
boolcomplement_edge() const
voidcomplement_edge(bool flag)<br>Sets the complement flag for the low edge.
doublep() const
voidp(double value)<br>Sets the probability of the function graph.
doublefactor() const
voidfactor(double value)<br>Memorized results of importance factor calculations.
NonTerminal(int index, int order, int id, const VertexPtr & high, const VertexPtr & low)

Friends

Name
intget_low_id(const Ite & ite) <br>Special handling of the complement flag in computing low id signature.

Additional inherited members

Public Functions inherited from scram::core::NonTerminal< Ite >

Name
intindex() const
intorder() const
boolmodule() const
voidmodule(bool flag)<br>Sets this vertex for representation of a module.
boolcoherent() const
voidcoherent(bool flag)<br>Sets the flag for coherent modules.
const VertexPtr &high() const
const VertexPtr &low() const
boolmark() const
voidmark(bool flag)<br>Marks this vertex.

Protected Functions inherited from scram::core::NonTerminal< Ite >

Name
~NonTerminal() =default

Friends inherited from scram::core::NonTerminal< Ite >

Name
intget_high_id(const NonTerminal< T > & vertex) <br>Default logic for getting signature high and low ids.

Public Functions inherited from scram::core::Vertex< T >

Name
Vertex(int id)
intid() const
boolterminal() const
intuse_count() const
boolunique() 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
classWeakIntrusivePtr< T >
voidintrusive_ptr_add_ref(Vertex< T > * ptr) <br>Increases the reference count for new intrusive pointers.
voidintrusive_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

cpp
class scram::core::Ite;

Representation of non-terminal if-then-else vertices in BDD graphs.

This class is designed to help construct and manipulate BDD graphs.

This class provides one attributed complement edge. The attributed edge applies to the low/false/0 branch of the vertex. However, there is no logic to check if the complement edge manipulations are valid. Consistency is the responsibility of BDD algorithms and users.

Public Functions Documentation

function complement_edge

cpp
inline bool complement_edge() const

Return: true if the low edge is complement.

function complement_edge

cpp
inline void complement_edge(
    bool flag
)

Sets the complement flag for the low edge.

Parameters:

  • flag Indicator to treat the low branch as a complement.

function p

cpp
inline double p() const

Return: The probability of the function graph.

function p

cpp
inline void p(
    double value
)

Sets the probability of the function graph.

Parameters:

  • value Calculated value for the probability.

function factor

cpp
inline double factor() const

Return: Saved results of importance factor calculations.

function factor

cpp
inline void factor(
    double value
)

Memorized results of importance factor calculations.

Parameters:

  • value Calculation results for importance factor.

function NonTerminal

cpp
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.

Friends

friend get_low_id

cpp
friend int get_low_id(
    const Ite & ite
);

Special handling of the complement flag in computing low id signature.

Parameters:

  • ite Ite vertex.

Return: The signed number for complement low id.


Updated on 2025-11-11 at 16:51:08 +0000