SETBDDREFEXT(3)
β¨ SETBDDREFEXT β¨
okay bestie, so this is a page from the BDD FUNCTIONS manual, section 3 of the Unix manual pages β yes, the SETBDDREFEXT(3) one, that's her π
. She's a tiny little function with one job and she does it flawlessly, and honestly? we're obsessed π«Ά
πΈ NAME πΈ
setbddrefext β increments the external reference, and decrements the internal reference of a bdd node. that's it. that's the whole personality. and she ate π
π§ ORIGIN π§
bestie this software belongs to the ALLIANCE CAD SYSTEM, which was developed by the ASIM team at the LIP6 laboratory of UniversitΓ© Pierre et 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"
bddnode βsetbddrefext( BddNode )
bddnode βBddNode;
π PARAMETERS π
BddNodeβ the bdd node. yeah that's it. she's the one and only argument, the main character of this whole operation π
π DESCRIPTION π
so here's the tea β: setbddrefext increments the number of external reference of the bdd node BddNode and decrements its number of internal reference.
that's the whole vibe. one goes up, one goes down, the balance of the universe is maintained β¨ it's giving conservation of energy but make it bdd nodes π«
β RETURN VALUE β
setbddrefext returns the BddNode pointer. same node, hands it right back to you like "here you go bestie, she's all yours" π«Ά
π ERRORS π
"negative reference, index xxx error !"
not me getting a whole error message π β the BddNode must have a positive number of internal reference. like, she needs to have something to decrement, otherwise it's chaos, and the function is NOT about that life. respect the internal ref count, bestie π
π₯ EXAMPLE π₯
lowkey this is a whole journey, buckle up π¦
#include "bdd101.h"
bddsystem βBddSystem;
bddcircuit βBddCircuit;
bddnode βBddNode;
chain_list βExpr;
BddSystem = createbddsystem( 100, 1000, 100, 50000 );
BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
BddNode = addbddcircuitin( (bddcircuit β)0, "i0", 0, BDD_IN_MODE_FIRST );
BddNode = addbddnode( (bddsystem β)0, BddNode->INDEX, BddNode->LOW, BddNode->HIGH );
Expr = convertbddcircuitabl( (bddcircuit β)0, BddNode );
incbddrefint( BddNode );
setbddrefext( BddNode );
/* displays Node VAR: 0 INDEX: 2 MARK: 0 REF_EXT: 1 REF_INT: 0 */
viewbddnode( (bddsystem β)0, BddNode );
/* displays (not i0) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
destroybddsystem( (bddsystem β)0 );
destroybddcircuit( (bddcircuit β)0 );
see how she bumps the internal ref with incbddrefint( BddNode ) first, and then setbddrefext( BddNode ) swoops in to flip the counts? that's the move π
note the comments in there too β they show exactly what gets displayed, REF_EXT: 1 and REF_INT: 0, and (not i0) for the VHDL view. no cap, that's literally what it prints π
π SEE ALSO π
π BUG REPORT π
bestie this tool is under development at the ASIM department of the LIP6 laboratory (she's a work in progress, we stan growth π±). they need your feedback to improve documentation and tools β so like, if something's off, tell them fr fr, they're literally asking π
and that's the whole page, mwah π this one came from ASIM/LIP6, dated October 1, 1997, and she lives at SETBDDREFEXT(3) in the manual. oldie but a goodie, periodt β¨ππ¦
π¦ 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