APPLYBDDNODETERM(3)

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

πŸ’– APPLYBDDNODETERM(3) β€” BDD FUNCTIONS πŸ’–

okay bestie, welcome to applybddnodeterm from the BDD FUNCTIONS corner of the manual universe ✨


🌸 NAME 🌸

applybddnodeterm β€” applies an operator on two bdd nodes. literally that's the whole gig 🫢


πŸ›οΈ 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. trΓ¨s chic, no cap πŸ‡«πŸ‡·πŸ’…


✨ SYNOPSIS ✨

#include "bdd101.h"
bddnode βˆ—applybddnodeterm( BddSystem, Oper, Index, BddNode )
  bddsystem βˆ—BddSystem;
  long       Oper;
  bddindex   Index;
  bddnode   βˆ—BddNode;

πŸŽ€ PARAMETERS πŸŽ€

  • BddSystem β€” the bdd system, bestie. your whole little universe of nodes.
  • Oper β€” the binary operator. the vibe you're applying.
  • Index β€” the index of the terminal bdd node.
  • BddNode β€” the bdd node itself, the main character.

πŸ’œ DESCRIPTION πŸ’œ

so applybddnodeterm computes the boolean function BddNode Oper and the terminal node corresponding to Index in the bdd system BddSystem. that's it, that's the function 🧚

the Index parameter can take only the two following values: BDD_INDEX_ONE and BDD_INDEX_ZERO. that's the whole menu, don't get creative πŸ™ˆ

and if a null pointer is given, the default bdd system is used. convenient ✨


🌈 RETURN VALUE 🌈

applybddnodeterm returns a pointer to the resulting bdd node with its number of external reference incremented. so like, it's giving you a node and bumping its ref count. obsessed πŸ’–


πŸ’€ ERRORS πŸ’€

  • "bad operator xxx error !" β€” the Oper parameter must be a valid binary operator. if it's not, you get this. periodt.

πŸ”₯ EXAMPLE πŸ”₯

#include "bdd101.h"
   bddsystem  βˆ—BddSystem;
   bddcircuit βˆ—BddCircuit;
   bddnode    βˆ—BddNode;
   chain_list βˆ—Expr;
   BddSystem  = createbddsystem( 100, 1000, 100, 50000 );
   BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
   addbddcircuitin( (bddcircuit βˆ—)0, "i0", 0, BDD_IN_MODE_FIRST );
   BddNode = applybddnodeterm( (bddsystem βˆ—)0,
                               ABL_XOR, BDD_INDEX_ONE,
                               searchbddcircuitin( (bddcircuit βˆ—)0, "i0" ) );
   Expr = convertbddcircuitabl( (bddcircuit βˆ—)0, BddNode );
   /* displays (not i0) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddsystem( (bddsystem βˆ—)0 );
   destroybddcircuit( (bddcircuit βˆ—)0 );
notice that /* displays (not i0) */ comment? that's the actual output, bestie. it ate. πŸ”₯

πŸ‘‘ 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, tell them things, they're literally asking πŸ™


and that's the page!! written by ASIM/LIP6, dated October 1, 1997 β€” yes it's older than most of us and it still slays πŸ’…βœ¨ bye bestie, go apply some operators πŸŽ€