INTERSECTBDDNODE(3)
β¨ INTERSECTBDDNODE(3) β BDD FUNCTIONS β¨
okay so bestie, we're diving into intersectbddnode from the BDD FUNCTIONS manual page (section 3, for the record π) β it's a little function with a big question: do these two nodes overlap at all? let's get into it π
πΈ 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 πΌπ₯ (yes, that Paris, the iconique one)
- Web :
http://asim.lip6.fr/recherche/alliance/ - E-mail :
alliance-users@asim.lip6.fr
like, the whole lineage, the receipts, the provenance β we love a documented origin story π«Ά
π¦ SYNOPSIS π¦
#include "bdd101.h"
bddnode *intersectbddnode( BddSystem, BddNode1, BddNode2 )
bddsystem *BddSystem;
bddnode *BddNode1;
bddnode *BddNode2;
π PARAMETERS π
BddSystemβ the bdd system. your whole bdd universe, basically πBddNode1β the first bdd node π―BddNode2β the second bdd node π―ββοΈ
π DESCRIPTION π
so intersectbddnode tests if the intersection of BddNode1 and BddNode2 exists, inside the bdd system BddSystem β¨ it's giving vibe check for node overlap, fr fr.
and listen β if a null pointer is given, the default bdd system is used. no cap, it just falls back automatically π
π₯ RETURN VALUE π₯
intersectbddnode returns the bdd node zero if there is no intersection (π they do NOT overlap), and a computed bdd node otherwise (π they DO, main character energy).
π EXAMPLE π
#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_AND,
createablatom( "i0" ),
createablatom( "i1" ) );
BddNode1 = addbddcircuitabl( BddCircuit, Expr );
freeablexpr( Expr );
Expr = createablbinexpr( ABL_OR,
createablatom( "i0" ),
createablatom( "i1" ) );
BddNode1 = addbddcircuitabl( BddCircuit, Expr );
freeablexpr( Expr );
BddImply = intersectbddnode( (bddsystem *)0, BddNode1, BddNode2 );
Expr = convertbddcircuitabl( BddCircuit, BddNode );
/* displays (i0 and i1)) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
destroybddsystem( (bddsystem *)0 );
destroybddcircuit( (bddcircuit *)0 );
bestie this example is a whole journey β building a system, building a circuit called hello_world (iconique name, no notes), making expressions with ABL_AND and ABL_OR, and then hitting intersectbddnode with a null system so it grabs the default π« and yes, the comment literally says /* displays (i0 and i1)) */ β we keep it exactly as it is, typos and all, that's the original's moment π
π SEE ALSO π
bdd(1)β go read it, 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 β like genuinely, send the feedback, they're asking nicely, don't leave them on read ππ
and that's the whole page, bestie! π§ ASIM/LIP6 Β· October 1, 1997 Β· INTERSECTBDDNODE(3) β vintage manpage, still slaying π
β
π¦ where this page comes from
- nixos 26.05: alliance 5.1.1-unstable-2025-02-24
- nixpkgs unstable: alliance 5.1.1-unstable-2025-02-24
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms