ADDBDDNODEASSOC(3)
π ADDBDDNODEASSOC π
okay bestie, welcome to the BDD FUNCTIONS corner of the manual β this page is all about addbddnodeassoc, and no cap, it's a lil function that does one very specific thing and does it slay. π
β¨ NAME β¨
addbddnodeassoc β adds a bdd node in a variable association. periodt. π
π ORIGIN π
so this software belongs to the ALLIANCE CAD SYSTEM, developed by the ASIM team at LIP6 laboratory of UniversitΓ© Pierre and Marie CURIE, in Paris, France. iconic academic lineage fr fr. π«π·
- Web :
http://asim.lip6.fr/recherche/alliance/ - E-mail :
alliance-users@asim.lip6.fr
π SYNOPSIS π
#include "bdd101.h"
bddassoc βaddbddnodeassoc( BddSystem, BddAssoc, Variable, BddNode )
bddsystem βBddSystem;
bddassoc βBddAssoc;
bddvar Variable;
bddnode βBddNode;
π«Ά PARAMETERS π«Ά
BddSystemβ the bdd system. the whole universe this function lives in, basically. πBddAssocβ the variable association. this is where the new association gets dropped. πVariableβ the variable number. which variable we're hooking up. π’BddNodeβ the bdd node to add. the little guy getting associated. π¦
π« DESCRIPTION π«
addbddnodeassoc adds the bdd node BddNode, associated to the variable number Variable, in the variable association BddAssoc, in the bdd system BddSystem. it's giving matchmaker energy β variable meets node, they're officially linked. π
lowkey important detail: if a null pointer is given, the default bdd system is used. so you don't always have to pass a system, the function will just assume the default one. no thoughts, defaults. π
also, the number of external reference of BddNode is incremented. yes bestie, the refcount goes up β that node is now booked and busy. π
π RETURN VALUE π
addbddnodeassoc returns a pointer to the variable association. that's it, that's the gift. π«Ά
π ERRORS π
"variable xxx out of range, error !"β theVariableparameter must be less or equal to theBddSystem->NUMBER_VARfield. go past that and it's over for you, bestie. π«
π EXAMPLE π
okay here's the whole vibe in code, copy-paste energy:
#include "bdd101.h"
bddsystem βBddSystem;
bddcircuit βBddCircuit;
bddnode βBddNode;
bddnode βBddSubst;
bddnode βBddVariable;
bddassoc βAssoc;
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 );
Assoc = addbddassoc( (bddsystem β)0 );
addbddnodeassoc( (bddsystem β)0, Assoc, Variable, BddSubst );
BddNode = substbddnodeassoc( (bddsystem β)0, BddSubst, Assoc );
Expr = convertbddcircuitabl( BddCircuit, BddNode );
/* displays ((i3 or i2) and i1) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
destroybddassoc( (bddsystem β)0 );
destroybddsystem( (bddsystem β)0 );
destroybddcircuit( (bddcircuit β)0 );
and yeah, that comment in there says it displays ((i3 or i2) and i1) β the substitution actually works, we love to see it. π₯
π SEE ALSO π
π BUG REPORT π
this tool is under development at the ASIM department of the LIP6 laboratory. we need your feedback to improve documentation and tools. so like, if something's off, tell them β they're literally asking. π«Ά
sign-off time, bestie: this page came from ASIM/LIP6, dated October 1, 1997, and it lives in manual section 3 as ADDBDDNODEASSOC(3). vintage but still serving. β¨ππ
π¦ where this page comes from
- fedora 43: alliance-devel 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 43: alliance-devel 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 44: alliance-devel 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 44: alliance-devel 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms