MARKBDDNODE(3)

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

πŸ’… markbddnode β€” NAME, bestie edition

ok so, <pink>markbddnode</pink> marks a bdd node with a specified mask. that's it, that's the whole vibe. it's a BDD function (manual page MARKBDDNODE(3), section 3, if you're keeping track πŸŽ€).


✨ 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. πŸ‡«πŸ‡·βœ¨

like, the whole lineage is right there. iconic.


πŸ¦‹ SYNOPSIS πŸ¦‹

#include "bdd101.h"
long markbddnode( BddSystem, BddNode, Mark )
  bddsystem βˆ—BddSystem;
  bddnode   βˆ—BddNode;
  bddmark    Mark;

🌸 PARAMETERS 🌸

  • BddSystem β€” the bdd system. your whole little universe of nodes, yes ma'am.
  • BddNode β€” the bdd node to mark. this is the one getting the glitter sticker. ⭐
  • Mark β€” the bit mask. the actual glitter, in bit form.

πŸ’– DESCRIPTION πŸ’–

okay so here's the tea. markbddnode marks the bdd node BddNode with the bit mask Mark, in the bdd system BddSystem.

and like β€” if a null pointer is given, the default bdd system is used. so you don't even have to pick, it just knows. 🫢

under the hood, this function does a OR with the field MARK of the bdd node BddNode, and the bit mask Mark. no cap, that's literally the whole operation. bits go brrr. πŸ”₯


⭐ RETURN VALUE ⭐

markbddnode returns the number of the different marked nodes. slay, it counted them for you. πŸ’…


🧚 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 );
   Expr = createablbinexpr( ABL_AND,
                            createablatom( "i0" ),
                            createablatom( "i1" ) );
   BddNode = addbddcircuitabl( BddCircuit, Expr );
   freeablexpr( Expr );
   printf( "Number nodes: %ld0,
           markbddnode( (bddsystem βˆ—)0, BddNode, 0x0001 ) );
   unmarkbddnode( (bddsystem βˆ—)0, BddNode, 0x0001 );
   destroybddsystem( (bddsystem βˆ—)0 );
   destroybddcircuit( (bddcircuit βˆ—)0 );
bestie that %ld0, is literally how it's written in the original page β€” not my typo, i promise. πŸ™ˆ copying it exactly because facts are facts.

so the example builds a system, builds a circuit called "hello_world", makes an ABL_AND expression over "i0" and "i1", adds it, frees the expression, prints the node count, marks with 0x0001, unmarks with 0x0001, then destroys everything. full life cycle. main character energy from start to cleanup. πŸ‘‘


🌈 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, tell them things. 🫢


✨ and that's the page!! ✨

cute little sign-off: this was MARKBDDNODE(3) from the BDD FUNCTIONS manual, brought to you by ASIM/LIP6, dated October 1, 1997. yeah, 1997. vintage. retro. lowkey a relic and we respect her. πŸ’œπŸŽ€

πŸ“¦ where this page comes from