ADDBDDASSOC(3)

πŸ“¦ version 5.1.1, in fedora 43, fedora 44

πŸ’– ADDBDDASSOC(3) β€” BDD FUNCTIONS πŸ’–

okay so this is a page from the BDD FUNCTIONS manual (section 3, bestie, we're in library-call territory ✨). Sit down, grab a boba, and let's talk about making association variables. 🧚


🌈 NAME 🌈

addbddassoc β€” creates a new association variables. πŸ’…

That's it. That's the job. She makes you a fresh variable association and she does it slayfully. πŸ‘‘


πŸ›οΈ ORIGIN πŸ›οΈ

This software belongs to the ALLIANCE CAD SYSTEM developed by the ASIM team at LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France. πŸ₯πŸ—Ό

Like... a whole French research institution made this. Iconic behaviour fr fr. πŸ‡«πŸ‡·πŸ’–


✨ SYNOPSIS ✨

#include "bdd101.h"
bddassoc βˆ—addbddassoc( BddSystem )
  bddsystem  βˆ—BddSystem;

one function, one argument, zero drama. πŸ“


πŸŽ€ PARAMETERS πŸŽ€

  • BddSystem β€” the bdd system. that's the vibe. that's the whole parameter. πŸ’«

πŸ¦‹ DESCRIPTION πŸ¦‹

addbddassoc creates a new association variables in the bdd system BddSystem. 🫢

and listen β€” if you hand her a null pointer, she's not gonna be mad, she's just gonna use the default bdd system instead. no cap. πŸ’›

⭐ RETURN VALUE ⭐

addbddassoc returns a pointer to the new variable association. 🎁✨


πŸ’€ ERRORS πŸ’€

  • "no more variable association, error !" β€” There is no variable association number left.

like... you ran out. she has nothing left to give. the association economy has collapsed. 😭


πŸ‘‘ EXAMPLE πŸ‘‘

okay bestie here's the full run, verbatim, don't touch a single character: πŸ”₯

#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 );
   delbddassoc( (bddsystem βˆ—)0, 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 );

not the hello_world circuit πŸ˜­πŸ’– and it even tells you what it displays: ((i3 or i2) and i1). she ATE and left no crumbs. πŸ”₯


🌸 SEE ALSO 🌸

  • bdd(1) β€” go read her too, she's the main character of the family. 🫢

πŸ› BUG REPORT πŸ›

This tool is under development at the ASIM department of the LIP6 laboratory.

We need your feedback to improve documentation and tools.

bestie they are literally asking for feedback. give them the feedback. don't leave them on read. πŸ’Œ


and that's the whole page, no notes. πŸ’…

signed off from ASIM/LIP6, dated October 1, 1997 β€” yes bestie, the nineteen ninety seven, she's vintage, she's archival, she's timeless, and she's still out here documenting BDD associations like the absolute icon she is. πŸ‘‘βœ¨