APPLYBDDNODELIST(3)

πŸ“¦ version 5.1.1-unstable-2025-02, in nixos 26.05, nixpkgs unstable

🌸 APPLYBDDNODELIST πŸ’…

okay so bestie, welcome to the applybddnodelist page from the BDD FUNCTIONS section of the manual β€” section 3, library-call girlies rise ✨


πŸŽ€ 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. iconic pedigree tbh πŸ‘‘

Web: http://asim.lip6.fr/recherche/alliance/ E-mail: alliance-users@asim.lip6.fr


✨ SYNOPSIS

#include "bdd101.h"
bddnode βˆ—applybddnodelist( BddSystem, Oper, BddList )
  bddsystem  βˆ—BddSystem;
  long        Oper;
  chain_list βˆ—BddList;

πŸ¦‹ PARAMETERS

  • BddSystem β€” the bdd system. yes, that one πŸ’œ
  • Oper β€” the operator. the vibe-setter, the moment 🌈
  • BddList β€” the bdd nodes list. the whole squad πŸ’…

🌸 DESCRIPTION

okay so applybddnodelist literally applies the boolean operator Oper to the bdd nodes list BddList, inside the bdd system BddSystem. that's the whole gig, and she ate πŸ”₯

and listen β€” if a null pointer is given, the default bdd system is used. no cap, she'll pick up the default for you 🫢


πŸ‘‘ RETURN VALUE

applybddnodelist returns a pointer to the resulting bdd node, with its number of external reference incremented. so like, she incremented the reference count before handing it to you β€” don't forget that πŸ”₯


πŸ’€ ERRORS

  • "bad operator xxx error !" β€” the Oper parameter must be a valid binary operator. like, it has to be an actual operator, bestie 😭
  • "bad list !" β€” the BddList parameter must be a valid list. give her a real list please πŸ™ˆ

🌟 EXAMPLE

#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 );
   Expr = convertbddcircuitabl( (bddcircuit βˆ—)0, BddNode );
   /* displays (i0 and i1 and i2) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddsystem( (bddsystem βˆ—)0 );
   destroybddcircuit( (bddcircuit βˆ—)0 );

like, this whole example is giving "build a system, make a circuit, add three inputs, AND them together, convert to an expression, view it in VHDL, then clean up after yourself." main character energy from start to finish πŸ’– (and yes, the i1 block is missing a closing paren in the source β€” we're keeping it exactly as written, copy-paste girlies beware πŸ™ˆ)


🧚 SEE ALSO

bdd(1) β€” go read it, 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. fr fr, your feedback is the moment 🫢


bestie reminder: keep your operators binary and valid, keep your lists valid, and remember the reference count got incremented β€” she's not doing that for fun πŸ’…

sign-off time πŸŽ€ β€” this page came to you from ASIM/LIP6, dated October 1, 1997, under the title APPLYBDDNODELIST(3). oldie but a goodie, and she still slays βœ¨πŸ¦‹πŸ’–

πŸ“¦ where this page comes from