.\" $Id: composebddnode.3,v 1.1 2002/03/18 11:26:50 ludo Exp $ .\" @(#)composebddnode.2 2.7 96/07/02 ; Labo masi cao-vlsi; Author : Jacomme Ludovic .TH COMPOSEBDDNODE 3 "October 1, 1997" "ASIM/LIP6" "BDD FUNCTIONS" .SH NAME composebddnode \- substitutes a variable by a \fBbdd\fP in another \fBbdd\fP. .so buster/alliance/alc_origin.1.en.gz .SH SYNOPSYS .nf .if n \{\ .ft B \} .if t \{\ .ft CR \} #include "bdd101.h" bddnode \(**composebddnode( BddSystem, BddNode, Variable, BddSubst ) bddsystem \(**BddSystem; bddnode \(**BddNode; bddvar Variable; bddnode \(**BddSubst; .ft R .fi .SH PARAMETERS .TP 20 \fIBddSystem\fP The \fBbdd\fP system. .TP \fIBddNode\fP The \fBbdd\fP node. .TP \fIVariable\fP The variable to find. .TP \fIBddSubst\fP The \fBbdd\fP to substitute with. .SH DESCRIPTION \fBcomposebddnode\fP substitutes all the occurency of the variable \fIVariable\fP in the \fBbdd\fP node \fIBddNode\fP by the \fBbdd\fP node \fIBddSubst\fP, in the \fBbdd\fP system \fIBddSystem\fP. If a null pointer is given, the default \fBbdd\fP system is used. .br .SH RETURN VALUE \fBcomposebddnode\fP returns the resulting \fBbdd\fP node. .SH ERRORS .if n \{\ .ft B \} .if t \{\ .ft CR \} "variable xxx out of range, error !" .ft R .RS The \fIVariable\fP parameter must be less or equal to the \fIBddSystem->NUMBER_VAR\fP field. .RE .SH EXAMPLE .ta 3n 6n 9n 12n 15n 18n 21n .nf .if n \{\ .ft B \} .if t \{\ .ft CR \} #include "bdd101.h" bddsystem \(**BddSystem; bddcircuit \(**BddCircuit; bddnode \(**BddVariable; bddnode \(**BddNode; bddnode \(**BddSubst; chain_list \(**Expr; bddvar Variable; BddSystem = createbddsystem( 100, 1000, 100, 50000 ); BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem ); Expr = createablbinexpr( ABL_AND, createablatom( "i0" ), createablatom( "i1" ) ); BddNode = addbddcircuitabl( BddCircuit, Expr ); freeablexpr( Expr ); Expr = createablbinexpr( ABL_OR, createablatom( "i2" ), createablatom( "i3" ) ); BddSubst = addbddcircuitabl( BddCircuit, Expr ); freeablexpr( Expr ); BddVariable = searchbddcircuitin( (bddcircuit \(**)0, "i0" ); Variable = getbddvarbyindex( (bddsystem \(**)0, BddVariable->INDEX ); BddNode = composebddnode( (bddsystem \(**)0, BddNode, Variable, BddSubst ); Expr = convertbddcircuitabl( BddCircuit, BddNode ); /* displays (i1 and (i2 or i3)) */ viewablexpr( Expr, ABL_VIEW_VHDL ); freeablexpr( Expr ); destroybddsystem( (bddsystem \(**)0 ); destroybddcircuit( (bddcircuit \(**)0 ); .ft R .fi .SH SEE ALSO .BR bdd (1) .so buster/alliance/alc_bug_report.1.en.gz