DESTROYBDDASSOC(3)

πŸ“¦ version 5.1.1-unstable-2025-02, in nixos 26.05, nixpkgs unstable

πŸ’… DESTROYBDDASSOC(3) β€” BDD FUNCTIONS πŸ’…

okay so this is a page from the BDD FUNCTIONS manual, section 3 (library calls, bestie) πŸ’– pull up a chair.


✨ NAME ✨

destroybddassoc β€” frees all the variable associations. that's it. that's the whole job. she's a cleanup queen 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. oui oui baguette πŸ₯–βœ¨


πŸ¦‹ SYNOPSIS πŸ¦‹

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

no cap, that's the whole signature 🫢


πŸŽ€ PARAMETERS πŸŽ€

  • BddSystem β€” the bdd system. the one and only. the main character of this function ngl πŸ‘‘

πŸ’œ DESCRIPTION πŸ’œ

destroybddassoc frees all the variable associations in the bdd system BddSystem. like, all of them. every last one. she does not do partial. periodt πŸ’…

and if you hand her a null pointer? no drama β€” the default bdd system gets used instead. iconic, honestly πŸ™ˆ


⭐ RETURN VALUE ⭐

destroybddassoc returns nothing. literally nothing. void. empty. she gives you zero back and honestly? that's valid 😭


πŸ”₯ ERRORS πŸ”₯

none listed. no errors section content. she simply doesn't miss πŸ’€


🌈 EXAMPLE 🌈

#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 );

ok the little comment says /* displays ((i3 or i2) and i1) */ and yes she really does πŸ’– the way that substitution just *works*… obsessed 🧚


πŸ‘‘ 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. fr fr, your girl needs the tea β˜•πŸ’€ please tell them what's broken!!


lowkey reminder: destroybddassoc frees all the variable associations in BddSystem, and if you pass a null pointer the default bdd system gets used. don't be surprised when your default system comes back with no associations πŸ’…

that's the whole page bestie, hope it slayed 🌸 from ASIM/LIP6, dated October 1, 1997, DESTROYBDDASSOC(3) β€” a vintage icon, truly a 90s queen πŸ‘‘βœ¨

πŸ“¦ where this page comes from