COMPOSEBDDNODE(3)
โจ NAME โจ
Ok bestie, this is the manual page for composebddnode(3) from BDD FUNCTIONS โ the one and only. The function composebddnode substitutes a variable by a bdd in another bdd. That's the whole vibe, no cap. ๐
๐ธ ORIGIN ๐ธ
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.
Web : http://asim.lip6.fr/recherche/alliance/
E-mail : alliance-users@asim.lip6.fr
๐ฆ SYNOPSIS ๐ฆ
#include "bdd101.h"
bddnode โcomposebddnode( BddSystem, BddNode, Variable, BddSubst )
bddsystem โBddSystem;
bddnode โBddNode;
bddvar Variable;
bddnode โBddSubst;
๐ PARAMETERS ๐
BddSystemโ the bdd system. main character energy, obviously.BddNodeโ the bdd node.Variableโ the variable to find. keep your eyes peeled.BddSubstโ the bdd to substitute with.
๐ DESCRIPTION ๐
So composebddnode substitutes all the occurency of the variable Variable in the bdd node BddNode by the bdd node BddSubst, in the bdd system BddSystem. If a null pointer is given, the default bdd system is used. Slay. โจ
โญ RETURN VALUE โญ
composebddnode returns the resulting bdd node. That's it, that's the tea. ๐
๐ฅ ERRORS ๐ฅ
"variable xxx out of range, error !"โ TheVariableparameter must be less or equal to theBddSystem->NUMBER_VARfield. So yeah, keep it in range or the vibe check fails. ๐ญ
๐ EXAMPLE ๐
Ok this example is a whole little C moment โ copy it exactly, bestie:
#include "bdd101.h"
bddsystem โBddSystem;
bddcircuit โBddCircuit;
bddnode โBddVariable;
bddnode โBddNode;
bddnode โBddSubst;
chain_list โExpr;
bddvar Variable;
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 );
Expr = createablbinexpr( ABL_OR,
createablatom( "i2" ),
createablatom( "i3" ) );
BddSubst = addbddcircuitabl( BddCircuit, Expr );
freeablexpr( Expr );
BddVariable = searchbddcircuitin( (bddcircuit โ)0, "i0" );
Variable = getbddvarbyindex( (bddsystem โ)0, BddVariable->INDEX );
BddNode = composebddnode( (bddsystem โ)0, BddNode, Variable, BddSubst );
Expr = convertbddcircuitabl( BddCircuit, BddNode );
/* displays (i1 and (i2 or i3)) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
destroybddsystem( (bddsystem โ)0 );
destroybddcircuit( (bddcircuit โ)0 );
And yes, the comment literally says /* displays (i1 and (i2 or i3)) */ โ iconic. periodt. ๐ฆ
๐ซถ SEE ALSO ๐ซถ
bdd(1) โ go read it too, 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 want your feedback. ๐ซถ
Big slay sign-off: ASIM/LIP6 ยท October 1, 1997 ยท COMPOSEBDDNODE(3) ๐
โจ
๐ฆ 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