DECBDDREFEXT(3)
π DECBDDREFEXT(3) β the bdd external-reference-decrementing girlie π
okay so bestie, welcome to decbddrefext, a lil function from the BDD functions crew π¦ she lives in section 3 of the manual and her whole entire job is decrementing the external reference of a bdd node. that's it. that's the gig. and she ate π
πΈ 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 π₯β¨ (yes the actual Paris, not a vibe, the real one)
- Web :
http://asim.lip6.fr/recherche/alliance/ - E-mail :
alliance-users@asim.lip6.fr
β¨ SYNOPSIS β¨
#include "bdd101.h"
bddnode βdecbddrefext( BddNode )
bddnode βBddNode;
π PARAMETERS π
BddNodeβ the bdd node. the one. the main character. π
π DESCRIPTION π
decbddrefext decrements the number of external reference of the bdd node BddNode. that's literally the whole plot. one node goes in, its external ref count goes down by one. lowkey iconic behaviour π«Ά
π RETURN VALUE π
decbddrefext returns the BddNode pointer. she gives you the node right back, no drama, no surprises β¨
π₯ ERRORS π₯
"negative reference, index xxx error !"β theBddNodemust have a positive number of external reference. so like. if you try to decrement a node that's already sitting at zero?? that's a problem bestie π not allowed. the node has to have a positive number of external reference, periodt.
fr fr do not try to sneak past this one. she checks. she will catch you π
π§ EXAMPLE π§
okay so here's the whole thing in action, look at her go:
#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 );
decbddrefext( BddNode );
/* displays Node VAR: 0 INDEX: 2 MARK: 0 REF_EXT: 0 REF_INT: 0 */
viewbddnode( (bddsystem β)0, BddNode );
/* displays (not i0) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
destroybddsystem( (bddsystem β)0 );
destroybddcircuit( (bddcircuit β)0 );
see that comment? after the decbddrefext( BddNode ); call the node is showing REF_EXT: 0 π she did her job. then the view prints (not i0) and everything gets cleaned up all neat and tidy. the way that whole flow just works. obsessed. π
π¦ 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, tell them stuff. they're literally asking. be the helpful bestie you were born to be π«Ά
okay that's the whole page, mwah π this was ASIM/LIP6, dated October 1, 1997, serving it on DECBDDREFEXT(3) β go decrement some references responsibly, and remember: positive refs only, 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