EXISTBDDNODEASSOCOFF(3)

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

✨ EXISTBDDNODEASSOCOFF ✨

okay bestie so this is existbddnodeassocoff(3) from the BDD FUNCTIONS girlies, and she's literally just here to compute an existential quantification for you πŸ’… no cap.


🌸 NAME 🌸

existbddnodeassocoff β€” computes an existential quantification. that's it. that's the whole job. iconic behavior fr fr πŸ’–


πŸ¦‹ ORIGIN πŸ¦‹

so 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 πŸ‡«πŸ‡·βœ¨

like they're literally in Paris doing EDA, main character energy honestly πŸ₯


πŸŽ€ SYNOPSIS πŸŽ€

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

three args, one function, zero drama 🫢


🌈 PARAMETERS 🌈

  • BddSystem β€” the bdd system. that's her. the whole system.
  • BddNode β€” the bdd node to treat. the one getting the treatment ✨
  • BddAssoc β€” the variable association. the vibes list, if you will.

πŸ’– DESCRIPTION πŸ’–

okay so listen. existbddnodeassocoff suppresses in the bdd node BddNode complemented, 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's not gonna fight you about it β€” the default bdd system is used. lowkey generous of her ngl πŸ’…


πŸ‘‘ RETURN VALUE πŸ‘‘

existbddnodeassocoff returns the computed bdd node. she gives and she gives 🌟


πŸ’€ ERRORS πŸ’€

  • "bad variable association xxx, error !" β€” The BddAssoc parameter must a valid variable association. like bestie. she needs a valid one. don't do this to her 😭

πŸ“ EXAMPLE πŸ“

here's the whole thing, verbatim, not me editing a single character of it:

#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_NAND,
                            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 = existbddnodeassocoff( (bddsystem βˆ—)0, BddNode, Assoc );
   Expr = convertbddcircuitabl( BddCircuit, BddNode );
   /* displays (not i1) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddassoc( (bddsystem βˆ—)0 );
   destroybddsystem( (bddsystem βˆ—)0 );
   destroybddcircuit( (bddcircuit βˆ—)0 );

and yeah, that comment in there says it all: it /* displays (not i1) */. she ate and left no crumbs 🧚


πŸ”₯ SEE ALSO πŸ”₯

go read that one too, 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.

like genuinely, they're asking. send the feedback bestie, they're building in public before it was cool πŸ™ˆ


ASIM/LIP6 ✨ October 1, 1997 ✨ and yes she's an OG from 1997 and still serving EXISTBDDNODEASSOCOFF(3) realness. periodt πŸ’œ