.\" $Id: restrictbddnode.3,v 1.1 2002/03/18 11:26:51 ludo Exp $ .\" @(#)restrictbddnode.2 2.7 96/07/02 ; Labo masi cao-vlsi; Author : Jacomme Ludovic .TH RESTRICTBDDNODE 3 "October 1, 1997" "ASIM/LIP6" "BDD FUNCTIONS" .SH NAME restrictbddnode \- substitutes a variable by a zero or one, in a \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 \(**restrictbddnode( 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 \fBrestrictbddnode\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. The \fIBddSubst\fP must be a the node \fIBddSystem\fP->ONE or \fIBddSystem\fP->ZERO. .br .SH RETURN VALUE \fBrestrictbddnode\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 .if n \{\ .ft B \} .if t \{\ .ft CR \} "index xxx out of range, error !" .ft R .RS The \fIBddSubst\fP parameter must have its index less than BDD_INDEX_MIN. .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_OR, createablatom( "i0" ), createablatom( "i1" ) ); BddNode = addbddcircuitabl( BddCircuit, Expr ); freeablexpr( Expr ); BddSubst = BddSystem->ONE; BddVariable = searchbddcircuitin( (bddcircuit \(**)0, "i0" ); Variable = getbddvarbyindex( (bddsystem \(**)0, BddVariable->INDEX ); BddNode = restrictbddnode( (bddsystem \(**)0, BddNode, Variable, BddSubst ); Expr = convertbddcircuitabl( BddCircuit, BddNode ); /* displays '1' */ 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