GETBDDNODESUPPORT(3)

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

✨ GETBDDNODESUPPORT(3) ✨

okay bestie, buckle up, this one lives in the BDD FUNCTIONS section of the manual (that's manual section 3, the library-call girlies πŸ’…) and it's literally the function that tells you which variables actually matter to a bdd node. no cap.


🌸 NAME 🌸

getbddnodesupport β€” gives the variable support of a bdd node. that's it, that's the whole vibe. she serves support. 🫢


🌈 ORIGIN 🌈

this software belongs to the ALLIANCE CAD SYSTEM, developed by the ASIM team over at the LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France πŸ‡«πŸ‡·βœ¨ (yes, the Pierre and Marie Curie, iconic behavior).


πŸŽ€ SYNOPSIS πŸŽ€

#include "bdd101.h"
void βˆ—getbddnodesupport( BddSystem, BddNode, Mode )
  bddsystem βˆ—BddSystem;
  bddnode   βˆ—BddNode;
  int        Mode;

πŸ’– PARAMETERS πŸ’–

  • BddSystem β€” the bdd system. the whole little universe this node lives in.
  • BddNode β€” the bdd node. the main character we're investigating.
  • Mode β€” the type of support. literally the what flavor of support do you want dial.

πŸ¦‹ DESCRIPTION πŸ¦‹

getbddnodesupport gives the support of the bdd node BddNode in the bdd system BddSystem. it's giving "who are your people, node?" energy.

if a null pointer is given, the default bdd system is used β€” so you can be lazy and she'll still catch you πŸ’œ.

if Mode is BDD_SUPPORT_CHAIN the support is returned using chain_list, else it is returned using ptype_list. two different containers, two different vibes, pick your fighter.

⚠️ important bestie: the support must be freed using the freechain or freeptype functions. do NOT ghost the memory, that's a leak and the vibe check will fail 😭

⭐ RETURN VALUE ⭐

getablexprsupport returns a pointer to a chain_list or a ptype_list. (yes the manual says getablexprsupport, we don't make the rules, we just report them faithfully πŸ™ˆ)


πŸ”₯ EXAMPLE πŸ”₯

#include "bdd101.h"
   bddsystem  βˆ—BddSystem;
   bddcircuit βˆ—BddCircuit;
   bddnode    βˆ—BddNode;
   chain_list βˆ—Expr;
   chain_list βˆ—Support;
   chain_list βˆ—ScanSupport;
   bddindex       Index;
   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 );
   Support = getablbddnodesupport( (bddsystem βˆ—0), BddNode, BDD_SUPPORT_CHAIN );
   for ( ScanSupport  = Support;
         ScanSupport != (chain_list βˆ—)0;
         ScanSupport  = ScanSupport->NEXT )
   {
     Index = (bddnode βˆ—)ScanSupport->INDEX;
     printf( "%s ", BddCircuit->NAME_IN[ Index - BDD_INDEX_MIN ] );
   }
   freechain( Support );
   destroybddsystem( (bddsystem βˆ—)0 );
   destroybddcircuit( (bddcircuit βˆ—)0 );

look at her go, walking the chain, printing names, cleaning up after herself. she's so organized it's lowkey inspiring ✨


πŸ‘‘ SEE ALSO πŸ‘‘


πŸ’€ 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, slide into their inbox, bestie, they're literally asking πŸ“¬


and that's the whole page, no notes, ate and left no crumbs πŸ’…βœ¨

this iconic little number is brought to you by ASIM/LIP6, dated October 1, 1997 β€” vintage but still slaying β€” and it lives in manual page GETBDDNODESUPPORT(3) πŸŽ€πŸ¦‹πŸ’–