UNMARKBDDNODE(3)

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

πŸ’– NAME πŸ’–

Bestie, welcome to UNMARKBDDNODE(3) β€” it's a page from the BDD FUNCTIONS corner of the manual, and it's about one lil' job:

unmarkbddnode β€” unmarks a bdd node with a specified mask πŸ’…


🌈 ORIGIN 🌈

Okay so this software is part of the ALLIANCE CAD SYSTEM, and it was developed by the ASIM team at the LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France. Oui oui, trΓ¨s chic πŸ‡«πŸ‡·βœ¨


✨ SYNOPSIS ✨

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

πŸŽ€ PARAMETERS πŸŽ€

  • BddSystem β€” the bdd system, the whole lil' universe we're working in 🌌
  • BddNode β€” the bdd node we're gonna unmark, our main character fr πŸ‘‘
  • Mark β€” the bit mask, aka the vibe filter πŸŽ›οΈ

πŸ¦‹ DESCRIPTION πŸ¦‹

So unmarkbddnode unmarks the bdd node BddNode with the bit mask Mark, inside the bdd system BddSystem. Iconic, right?

Heads up bestie: if you hand it a null pointer, it just uses the default bdd system instead. No stress πŸ’–

And what is it actually doing under the hood? It does an AND with the field MARK of the bdd node BddNode, and the complemented bit mask Mark. So it's clearing those bits. Slay ✨


πŸ’œ RETURN VALUE πŸ’œ

unmarkbddnode returns the number of the different unmarked nodes. It's literally counting its wins πŸ“ˆπŸ’…


πŸ”₯ EXAMPLE πŸ”₯

Here's the whole thing in action, copied exactly as it lives in the manual (no cap, character for character):

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

See how it marks with 0x0001 and then unmarks with 0x0001? Balance. Symmetry. Character development 🧚✨


🌸 SEE ALSO 🌸

  • bdd(1) β€” go read it, iykyk 🫢

πŸ“ BUG REPORT πŸ“

Real talk: this tool is under development at the ASIM department of the LIP6 laboratory.

And listen β€” we need your feedback to improve the documentation and the tools. So like, please tell them things πŸ™ˆπŸ’–


And that's the whole page, bestie! This one came from ASIM/LIP6, dated October 1, 1997 β€” yes, a 90s legend, still serving πŸ’…πŸ‘‘ bye bye, go unmark some nodes πŸ¦‹βœ¨