GETBDDNODESUPPORT(3)

๐Ÿ“ฆ version 5.1.1-unstable-2025-02, in nixos 26.05, nixpkgs unstable

๐Ÿ’… GETBDDNODESUPPORT(3) โ€” BDD FUNCTIONS

okay bestie, gather round, we're reading a GETBDDNODESUPPORT(3) man page together and honestly? it's giving "niche but iconic." no cap. ๐ŸŽ€


โœจ NAME โœจ

getbddnodesupport โ€” gives the variable support of a bdd node.

like, it hands you the variables your bdd node actually depends on. that's the whole vibe. ๐Ÿฆ‹


๐ŸŒธ ORIGIN ๐ŸŒธ

bestie this software is old old. it belongs to the ALLIANCE CAD SYSTEM, developed by the ASIM team at the LIP6 laboratory of Universit๏ฟฝ Pierre et Marie CURIE, in Paris, France. ๐Ÿ‡ซ๐Ÿ‡ทโœจ

the deets, exactly as they were left for us:


๐Ÿ’– SYNOPSIS ๐Ÿ’–

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

that's it. that's the whole call. short and slay. ๐Ÿ’…


๐ŸŽ€ PARAMETERS ๐ŸŽ€

  • BddSystem โ€” the bdd system. your whole little bdd universe lives here.
  • BddNode โ€” the bdd node. the one we're snooping on to find its support.
  • Mode โ€” the type of support. this is the personality switch, lowkey.

๐Ÿซถ DESCRIPTION ๐Ÿซถ

so getbddnodesupport gives the support of the bdd node BddNode in the bdd system BddSystem. that's the main character move. ๐Ÿ‘‘

if you pass a null pointer, no stress โ€” the default bdd system gets used instead. comfy.

now here's the part you gotta remember: if Mode is BDD_SUPPORT_CHAIN, the support comes back to you as a chain_list โœจ else it comes back as a ptype_list. two different lewks, same support, iykyk.

โš ๏ธ important, bestie: the support must be freed using the freechain or freeptype functions. do NOT leave it hanging, that's not cute. memory leaks are the opposite of slay. ๐Ÿ’€

โญ RETURN VALUE โญ

getablexprsupport returns a pointer to a chain_list or a ptype_list. (yes, the page really does say getablexprsupport there โ€” we are reporting the facts exactly as they were handed to us, no editing. ๐Ÿ™ˆ ngl it's a typo era, but it's their typo era.)


๐ŸŒˆ EXAMPLE ๐ŸŒˆ

here's a full lil demo, verbatim, because copying code is the one place we do NOT freestyle:

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

notice how it calls getablbddnodesupport โ€” again, exactly what the page says, no touchy. โœ‹ and see that freechain( Support ); at the end? that's the cleanup we were literally just yelling about. ate. ๐Ÿ’œ


๐Ÿงš SEE ALSO ๐Ÿงš


๐Ÿ”ฅ BUG REPORT ๐Ÿ”ฅ

heads up from the team:

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

we need your feedback to improve documentation and tools. so like, if something's off, tell them โ€” feedback is a love language fr fr. ๐Ÿซถ


and that's the whole page, bestie! source/version and date, as promised: this one's the ASIM/LIP6 page, dated October 1, 1997, and yes it's still serving looks. โœจ๐ŸŽ€๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from