APPLYBDDNODETERM(3)

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

πŸ¦‹ applybddnodeterm(3) β€” the BDD operator glow-up πŸ¦‹

okay so bestie, this is the manual page for applybddnodeterm from the BDD FUNCTIONS section β€” manual name: APPLYBDDNODETERM(3). It's giving tiny function, big bdd energy, and we're gonna read it together. πŸ’–

✨ NAME ✨

applybddnodeterm β€” applies an operator on two bdd nodes. That's it, that's the whole name, periodt. πŸ’…

🌈 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. πŸ₯–βœ¨

πŸ“œ SYNOPSIS πŸ“œ

okay so here's the exact shape, no cap:

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

πŸŽ€ PARAMETERS πŸŽ€

  • BddSystem β€” the bdd system. Like, the whole system bestie.
  • Oper β€” the binary operator. The operation vibe.
  • Index β€” the index of the terminal bdd node. (Spoiler: it can only be BDD_INDEX_ONE or BDD_INDEX_ZERO, more below.)
  • BddNode β€” the bdd node. The node in question, main character energy.

πŸ’… DESCRIPTION πŸ’…

applybddnodeterm computes the boolean function BddNode Oper and the terminal node corresponding to Index in the bdd system BddSystem. ✨

The Index parameter can take only the two following values: BDD_INDEX_ONE and BDD_INDEX_ZERO. That's the whole menu, bestie β€” no secret third option. πŸŽ€

If a null pointer is given, the default bdd system is used. Easy. 🫢

πŸ”₯ RETURN VALUE πŸ”₯

applybddnodeterm returns a pointer to the resulting bdd node with its number of external reference incremented. Yup β€” incremented. Don't forget that glow-up. πŸ‘‘

πŸ’€ ERRORS πŸ’€

  • "bad operator xxx error !" β€” this pops off when the Oper parameter must be a valid binary operator. So, like, make sure Oper is valid, fr fr. 😭

🧚 EXAMPLE 🧚

Here's the whole demo, copied with love and zero typos:

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

πŸ‘€ SEE ALSO πŸ‘€

  • bdd(1) β€” go peek, bestie. πŸ‘€

🫢 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 matters. πŸ«ΆπŸ’–


πŸ’Œ Cute sign-off: this page is brought to you by ASIM/LIP6, dated October 1, 1997, and it's the APPLYBDDNODETERM(3) manual. Byeee, slay. πŸ’‹

πŸ“¦ where this page comes from