ADDBDDNODELIST(3)
π ADDBDDNODELIST π β the bdd functions, section 3 of the manual
okay so bestie, pull up a chair, we're doing addbddnodelist today and honestly? it's a lil cutie. it lives in the BDD FUNCTIONS corner of the manual (section 3, iykyk) and it does exactly one thing but it does it so well.
β¨ NAME β¨
addbddnodelist β adds a node in a chain_list.
like. that's it. that's the job. adding a node. to a list. slay.
πΈ ORIGIN πΈ
This software belongs to the ALLIANCE CAD SYSTEM, developed by the ASIM team at the LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France. π«π· (oui oui, iconic)
- Web:
http://asim.lip6.fr/recherche/alliance/ - E-mail:
alliance-users@asim.lip6.fr
π SYNOPSIS π
#include "bdd101.h"
chain_list βaddbddnodelist( BddSystem, HeadList, BddNode )
bddsystem βBddSystem;
chain_list βHeadList;
bddnode βBddNode;
π PARAMETERS π
BddSystemβ the bdd system. it's giving "the whole universe this operation lives in".HeadListβ the head of thechain_list. the front of the line. the main character of the list, literally.BddNodeβ the bdd node to add. the new girl joining the group chat.
π¦ DESCRIPTION π¦
So here's the tea: addbddnodelist adds the node BddNode in the ordered list HeadList, inside the bdd system BddSystem.
If a null pointer is given, the default bdd system is used. no biggie, it just picks the default for you. π
And listen β the number of external reference of BddNode gets incremented. so it's not just joining the list, it's getting its ref count bumped up too. it's being seen. it's being valued. we love that for it. β¨
π RETURN VALUE π
addbddnodelist returns the new head of the list.
that's the whole answer. new head. periodt. π
π EXAMPLE π
here's the whole vibe in code form, no cap:
#include "bdd101.h"
bddsystem βBddSystem;
bddcircuit βBddCircuit;
bddnode βBddNode;
chain_list βBddList;
chain_list βExpr;
BddSystem = createbddsystem( 100, 1000, 100, 50000 );
BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
BddList = (chain_list β)0;
BddList = addbddnodelist( (bddsystem β)0, BddList,
addbddcircuitin( (bddcircuit β)0,
"i0", 0, BDD_IN_MODE_FIRST ) );
BddList = addbddnodelist( (bddsystem β)0, BddList,
addbddcircuitin( (bddcircuit β)0,
"i1", 0, BDD_IN_MODE_FIRST );
BddList = addbddnodelist( (bddsystem β)0, BddList,
addbddcircuitin( (bddcircuit β)0,
"i2", 0, BDD_IN_MODE_FIRST );
BddNode = applybddnodelist( (bddsystem β)0, ABL_AND, BddList );
delbddnodelist( (bddsystem β)0, BddList );
Expr = convertbddcircuitabl( (bddcircuit β)0, BddNode );
/* displays (i0 and i1 and i2) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
destroybddsystem( (bddsystem β)0 );
destroybddcircuit( (bddcircuit β)0 );
and yes, the comment in there says it all: it displays (i0 and i1 and i2). we're building little ANDs, bestie. π
π«Ά 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. fr fr, they're asking nicely, please tell them if something's off. π
okay that's the whole page!! written by the LIP6 / ASIM crew, dated October 1, 1997 (a vintage icon, honestly π) β mwah, go add some nodes bestie πβ¨
π¦ 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