ADDBDDNODELIST(3)

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

πŸ’– ADDBDDNODELIST πŸ’– β€” the bdd functions, section 3 of the manual

okay so bestie, pull up a chair, we're doing addbddnodelist today and honestly? it's a lil cutie. it lives in the BDD FUNCTIONS corner of the manual (section 3, iykyk) and it does exactly one thing but it does it so well.


✨ NAME ✨

addbddnodelist β€” adds a node in a chain_list.

like. that's it. that's the job. adding a node. to a list. slay.


🌸 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, iconic)


πŸŽ€ SYNOPSIS πŸŽ€

#include "bdd101.h"
chain_list βˆ—addbddnodelist( BddSystem, HeadList, BddNode )
  bddsystem  βˆ—BddSystem;
  chain_list βˆ—HeadList;
  bddnode    βˆ—BddNode;

πŸ’… PARAMETERS πŸ’…

  • BddSystem β€” the bdd system. it's giving "the whole universe this operation lives in".
  • HeadList β€” the head of the chain_list. the front of the line. the main character of the list, literally.
  • BddNode β€” the bdd node to add. the new girl joining the group chat.

πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the tea: addbddnodelist adds the node BddNode in the ordered list HeadList, inside the bdd system BddSystem.

If a null pointer is given, the default bdd system is used. no biggie, it just picks the default for you. πŸ’

And listen β€” the number of external reference of BddNode gets incremented. so it's not just joining the list, it's getting its ref count bumped up too. it's being seen. it's being valued. we love that for it. ✨


πŸ‘‘ RETURN VALUE πŸ‘‘

addbddnodelist returns the new head of the list.

that's the whole answer. new head. periodt. πŸ’…


🌈 EXAMPLE 🌈

here's the whole vibe in code form, no cap:

#include "bdd101.h"
   bddsystem  βˆ—BddSystem;
   bddcircuit βˆ—BddCircuit;
   bddnode    βˆ—BddNode;
   chain_list βˆ—BddList;
   chain_list βˆ—Expr;
   BddSystem  = createbddsystem( 100, 1000, 100, 50000 );
   BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
   BddList    = (chain_list βˆ—)0;
   BddList = addbddnodelist( (bddsystem βˆ—)0, BddList,
                             addbddcircuitin( (bddcircuit βˆ—)0,
                                              "i0", 0, BDD_IN_MODE_FIRST ) );
   BddList = addbddnodelist( (bddsystem βˆ—)0, BddList,
                              addbddcircuitin( (bddcircuit βˆ—)0,
                                               "i1", 0, BDD_IN_MODE_FIRST );
   BddList = addbddnodelist( (bddsystem βˆ—)0, BddList,
                             addbddcircuitin( (bddcircuit βˆ—)0,
                                              "i2", 0, BDD_IN_MODE_FIRST );
   BddNode = applybddnodelist( (bddsystem βˆ—)0, ABL_AND, BddList );
   delbddnodelist( (bddsystem βˆ—)0, BddList );
   Expr = convertbddcircuitabl( (bddcircuit βˆ—)0, BddNode );
   /* displays (i0 and i1 and i2) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddsystem( (bddsystem βˆ—)0 );
   destroybddcircuit( (bddcircuit βˆ—)0 );

and yes, the comment in there says it all: it displays (i0 and i1 and i2). we're building little ANDs, bestie. πŸ“


🫢 SEE ALSO 🫢


😭 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, they're asking nicely, please tell them if something's off. πŸ™ˆ


okay that's the whole page!! written by the LIP6 / ASIM crew, dated October 1, 1997 (a vintage icon, honestly πŸ’œ) β€” mwah, go add some nodes bestie πŸ’–βœ¨