APPLYBDDNODE(3)
π applybddnode(3) β bdd functions, bestie!
okay so this one's from the APPLYBDDNODE(3) corner of the BDD FUNCTIONS manual, and it's literally the glow-up your boolean logic has been waiting for β¨
πΈ NAME πΈ
applybddnode β applies an operator on two bdd nodes. that's it, that's the whole vibe π
π§ 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. iconic academic royalty, no cap π
- Web :
http://asim.lip6.fr/recherche/alliance/ - E-mail :
alliance-users@asim.lip6.fr
like, if you need to slide into their inbox, that's the address π«Ά
β¨ SYNOPSIS β¨
#include "bdd101.h"
bddnode βapplybddnode( BddSystem, Oper, BddNode1, BddNode2 )
bddsystem βBddSystem;
long Oper;
bddnode βBddNode1;
bddnode βBddNode2;
π¦ PARAMETERS π¦
BddSystemβ the bdd system. your whole little bdd universe πͺOperβ the binary operator. the actual move being made πBddNode1β the first bdd node. main character #1BddNode2β the second bdd node. main character #2
π DESCRIPTION π
so applybddnode computes the boolean function BddNode1 Oper BddNode2 inside the bdd system BddSystem. it's giving "put these two nodes in a room and make them do math" π₯
and listen β if a null pointer is given, the default bdd system is used. convenient? absolutely. slay π
β RETURN VALUE β
applybddnode returns a pointer to the resulting bdd node, with its number of external reference incremented. so yes, the refcount goes up, that's on purpose, don't panic π«Ά
π ERRORS π
"bad operator xxx error !"β theOperparameter must be a valid binary operator. like, it has to be. no fake operators allowed bestie π
πΈ 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 );
addbddcircuitin( (bddcircuit β)0, "i0", 0, BDD_IN_MODE_FIRST );
addbddcircuitin( (bddcircuit β)0, "i1", 0, BDD_IN_MODE_FIRST );
BddNode = applybddnode( (bddsystem β)0,
ABL_AND,
searchbddcircuitin( (bddcircuit β)0, "i0" ),
searchbddcircuitin( (bddcircuit β)0, "i1" ) );
Expr = convertbddcircuitabl( (bddcircuit β)0, BddNode );
/* displays (i0 and i1) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
destroybddsystem( (bddsystem β)0 );
destroybddcircuit( (bddcircuit β)0 );
look at that β hello_world, two inputs i0 and i1, ABL_AND doing its thing, and then the comment literally says it displays (i0 and i1). ate and left no crumbs π
π₯ 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, they're asking β so if something's wonky, tell them π
ngl this one's short but it does exactly what it says on the tin: two nodes, one operator, one very incremented reference count π
<div align="center">π mwah π</div>
signing off with all the love from ASIM/LIP6, dated October 1, 1997, page APPLYBDDNODE(3) β vintage but 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