SETBDDREFEXT(3)

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

πŸ’– NAME πŸ’–

okay so bestie, welcome to SETBDDREFEXT(3) from the BDD FUNCTIONS crew β€” this one is setbddrefext, and it increments the external reference, and decrements the internal reference of a bdd node. periodt. πŸ’…


🌍 ORIGIN 🌍

This software belongs to the ALLIANCE CAD SYSTEM developed by the ASIM team at LIP6 laboratory of UniversitοΏ½ Pierre et Marie CURIE, in Paris, France.

the lore is giving very β€œbuilt in a French lab and absolutely iconic,” ngl 🫢


✨ SYNOPSIS ✨

#include "bdd101.h"
bddnode βˆ—setbddrefext( BddNode )
  bddnode βˆ—BddNode;

πŸŽ€ PARAMETERS πŸŽ€

  • BddNode β€” the bdd node. that’s the one, bestie. πŸŽ€

πŸ¦‹ DESCRIPTION πŸ¦‹

setbddrefext increments the number of external reference of the bdd node BddNode and decrements its number of internal reference.

like, it’s a little ref-counter glow-up: external goes up, internal goes down. slay. πŸ¦‹


πŸ’… RETURN VALUE πŸ’…

setbddrefext returns the BddNode pointer. that’s it, that’s the return, iconic behavior. πŸ’…


😭 ERRORS 😭

  • "negative reference, index xxx error !" β€” the BddNode must have a positive number of internal reference. if it doesn’t, this error pops up and ruins the whole vibe 😭

🌈 EXAMPLE 🌈

okay bestie, here’s the whole demo, exact code, no cap:

#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 );
   BddNode = addbddcircuitin( (bddcircuit βˆ—)0, "i0", 0, BDD_IN_MODE_FIRST );
   BddNode = addbddnode( (bddsystem βˆ—)0, BddNode->INDEX, BddNode->LOW, BddNode->HIGH );
   Expr = convertbddcircuitabl( (bddcircuit βˆ—)0, BddNode );
   incbddrefint( BddNode );
   setbddrefext( BddNode );
   /* displays Node VAR: 0  INDEX: 2  MARK: 0  REF_EXT: 1  REF_INT: 0 */
   viewbddnode( (bddsystem βˆ—)0, BddNode );
   /* displays (not i0) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddsystem( (bddsystem βˆ—)0 );
   destroybddcircuit( (bddcircuit βˆ—)0 );

peep the comments too β€” they show the display output, and yes, the whole thing is giving main character energy 🌈✨


πŸ‘€ SEE ALSO πŸ‘€

  • bdd(1) β€” go look, 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.


πŸ’Œ signed, sealed, delivered by ASIM/LIP6 on October 1, 1997 β€” this has been SETBDDREFEXT(3), mwah πŸ’‹
πŸ“¦ where this page comes from