EXISTBDDNODEASSOCON(3)

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

πŸ’– EXISTBDDNODEASSOCON(3) β€” like, the BDD FUNCTIONS manual, bestie πŸ’–

okay so you opened the manual for existbddnodeassocon and honestly? it's giving "small function, big brain energy". let's get into it πŸ¦‹


✨ NAME ✨

existbddnodeassocon β€” computes an existential quantification. that's the whole job, she's focused, she's booked, periodt πŸ’…


🌈 ORIGIN 🌈

bestie, 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, Paris. iconic. πŸ‡«πŸ‡·βœ¨

like, actual humans, actual lab, actual city of lights. we love to see it 🫢


πŸŽ€ SYNOPSIS πŸŽ€

#include "bdd101.h"
bddnode βˆ—existbddnodeassocon( BddSystem, BddNode, BddAssoc )
  bddsystem βˆ—BddSystem;
  bddnode   βˆ—BddNode;
  bddassoc  βˆ—BddAssoc;

three args, one node, zero drama (well, mostly) πŸ’–


🌸 PARAMETERS 🌸

  • BddSystem β€” the bdd system. your whole world, basically.
  • BddNode β€” the bdd node to treat. the main character of this operation, no cap.
  • BddAssoc β€” the variable association. this is the list of who's getting evicted.

πŸ’… DESCRIPTION πŸ’…

okay so here's the tea β˜•: existbddnodeassocon suppresses, inside BddNode, all the variables associated with something in the variable association BddAssoc, in the bdd system BddSystem.

and if you hand her a null pointer? she doesn't spiral, she just uses the default bdd system. lowkey considerate of her tbh πŸ™ˆ


⭐ RETURN VALUE ⭐

existbddnodeassocon returns the computed bdd node. that's your prize, bestie, take it 🎁


🚨 ERRORS 🚨

  • "bad variable association xxx, error !" β€” the BddAssoc parameter must a valid variable association. so like, give her a real one, not a vibe. πŸ’€

🧚 EXAMPLE 🧚

fr fr, here's the whole thing, verbatim, don't touch a 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 );
   BddVariable = searchbddcircuitin( (bddcircuit βˆ—)0, "i0" );
   Variable = getbddvarbyindex( (bddsystem βˆ—)0, BddVariable->INDEX );
   Assoc = addbddassoc( (bddsystem βˆ—)0 );
   addbddnodeassoc( (bddsystem βˆ—)0, Assoc, Variable, BddSystem->ONE );
   BddNode = existbddnodeassocon( (bddsystem βˆ—)0, BddNode, Assoc );
   Expr = convertbddcircuitabl( BddCircuit, BddNode );
   /* displays i1 */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddassoc( (bddsystem βˆ—)0 );
   destroybddsystem( (bddsystem βˆ—)0 );
   destroybddcircuit( (bddcircuit βˆ—)0 );

and yes, the /* displays i1 */ comment is the payoff β€” i0 got existentially quantified away and i1 is the one still standing. she ate. πŸ‘‘


πŸ”₯ SEE ALSO πŸ”₯

  • bdd(1) β€” go read it, iykyk πŸ“š

πŸ’œ BUG REPORT πŸ’œ

this tool is under development at the ASIM department of the LIP6 laboratory. they need your feedback to improve documentation and tools β€” so like, if something's off, tell them! they're literally asking πŸ₯Ί


reminder bestie: every option, every pointer, every βˆ— stays exactly where it is. the vibe is new, the facts are not. periodt. πŸ’…βœ¨

this page came to you from ASIM/LIP6, dated October 1, 1997 β€” yes, 1997, she's vintage, she's a classic, and she's still serving. mwah πŸ’–πŸŽ€πŸ¦‹πŸŒΈ