ADDBDDNODELIST(3)
π
ADDBDDNODELIST(3) β the addbddnodelist page
okay so this is addbddnodelist, straight out of the BDD FUNCTIONS manual, section 3, and honestly bestie it's giving "small function, huge glow-up" energy β¨
πΈ NAME πΈ
addbddnodelist β adds a node in a chain_list π«
that's it, that's the whole gig. one node, one list, no cap.
π ORIGIN π
so 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 πΌπ₯
- Web :
http://asim.lip6.fr/recherche/alliance/ - E-mail :
alliance-users@asim.lip6.fr
like, real ones built this. iconic behavior fr.
β¨ SYNOPSIS β¨
#include "bdd101.h"
chain_list βaddbddnodelist( BddSystem, HeadList, BddNode )
bddsystem βBddSystem;
chain_list βHeadList;
bddnode βBddNode;
three args, one include, and you're in π
π¦ PARAMETERS π¦
BddSystemβ the bdd system. yes. THE system. the one we're working in π«ΆHeadListβ the head of thechain_list. the leader of the pack, the main character of the chain πBddNodeβ the bdd node to add. this is the one getting inserted, slay π
π DESCRIPTION π
addbddnodelist adds the node BddNode in the ordered list HeadList, in the bdd system BddSystem π
and here's the lil detail you cannot skip: if a null pointer is given, the default bdd system is used. so like, if you're lazy (affectionate) and pass (bddsystem β)0, the default one steps in for you. bestie energy honestly π
also super important: the number of external reference of BddNode is incremented. so the node is being counted, and you should lowkey remember that, because refs are whole thing π
β RETURN VALUE β
addbddnodelist returns the new head of the list π«
so like, catch it. don't just call it and ghost it, fr fr.
π₯ EXAMPLE π₯
okay here's the whole thing, verbatim, no edits, because accuracy is the vibe:
#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( (bddsystem β)0 );
(wait β yes, that i1 line is exactly how it is in the original. i'm not touching it, i don't fix, i just vibe-check π)
and see that comment? /* displays (i0 and i1 and i2) */ β that's the payoff, that's the whole point of the example, we're ANDing three inputs together and viewing it as VHDL π₯
π§ SEE ALSO π§
bdd(1) β go read it, iykyk πΈ
π BUG REPORT π
this tool is under development at the ASIM department of the LIP6 laboratory π οΈ
we need your feedback to improve documentation and tools. like genuinely. send the feedback bestie, the docs won't fix themselves ππ«Ά
π sign-off π
that's the page! brought to you by ASIM/LIP6, dated October 1, 1997, living forever as ADDBDDNODELIST(3) πβ¨ go add some nodes to your list, you're gonna ate π
π¦ where this page comes from
- nixos 26.05: alliance 5.1.1-unstable-2025-02-24
- nixpkgs unstable: alliance 5.1.1-unstable-2025-02-24
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms