IMPLYBDDNODE(3)

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

✨ NAME ✨

implybddnode β€” bestie, this one computes a bdd that implies a conjonction of two bdd nodes. πŸ’… (yes we're spelling it the way the page spells it, no notes, it's iconic)


🌸 ORIGIN 🌸

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


πŸŽ€ SYNOPSIS πŸŽ€

#include "bdd101.h"
bddnode βˆ—implybddnode( BddSystem, BddNode1, BddNode2 )
  bddsystem βˆ—BddSystem;
  bddnode   βˆ—BddNode1;
  bddnode   βˆ—BddNode2;

πŸ¦‹ PARAMETERS πŸ¦‹

  • BddSystem β€” the bdd system. the whole vibe, the main character, the one holding everything together.
  • BddNode1 β€” the first bdd node. πŸ‘‘
  • BddNode2 β€” the second bdd node. πŸ’–

πŸ’œ DESCRIPTION πŸ’œ

So implybddnode tests if the intersection of BddNode1 and not BddNode2 exists, in the bdd system BddSystem. literally that's it, that's the whole test. πŸ”

And listen β€” if a null pointer is given, the default bdd system is used. no cap, it just fills in for you. 🫢


🌈 RETURN VALUE 🌈

implybddnode returns the bdd node zero if there is no intersection, and a computed bdd node otherwise. so: zero = no intersection, anything else = it's giving intersection. ⭐


πŸ”₯ EXAMPLE πŸ”₯

here's the example, verbatim, exactly as it appears in the page β€” no touchies:

#include "bdd101.h"
   bddsystem  βˆ—BddSystem;
   bddcircuit βˆ—BddCircuit;
   bddnode    βˆ—BddNode1;
   bddnode    βˆ—BddNode2;
   bddnode    βˆ—BddImply;
   chain_list βˆ—Expr;
   BddSystem  = createbddsystem( 100, 1000, 100, 50000 );
   BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
   Expr = createablbinexpr( ABL_OR,
                            createablatom( "i0" ),
                            createablatom( "i1" ) );
   BddNode1 = addbddcircuitabl( BddCircuit, Expr );
   freeablexpr( Expr );
   Expr = createablbinexpr( ABL_AND,
                            createablatom( "i0" ),
                            createablatom( "i1" ) );
   BddNode1 = addbddcircuitabl( BddCircuit, Expr );
   freeablexpr( Expr );
   BddImply = implybddnode( (bddsystem βˆ—)0, BddNode1, BddNode2 );
   Expr = convertbddcircuitabl( BddCircuit, BddNode );
   /* displays (i0 and (not i1)) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddsystem( (bddsystem βˆ—)0 );
   destroybddcircuit( (bddcircuit βˆ—)0 );

and yeah, the comment says it displays (i0 and (not i1)), so that's the moment. πŸ’…


🧚 SEE ALSO 🧚

  • bdd(1) β€” go read it bestie, 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. fr fr, they're asking. don't leave them on read. πŸ˜­πŸ“©


okay that's the whole page, mwah πŸ’– stay slay, stay linked, and remember: if it returns zero, there's no intersection, periodt.

β€” from the ASIM/LIP6 girlies, dated October 1, 1997, living in manual section IMPLYBDDNODE(3) (BDD FUNCTIONS). byeee πŸŽ€πŸ¦‹πŸŒΈ