ADDBDDCIRCUITABL(3)
π NAME π
okay so bestie, <rainbow>addbddcircuitabl</rainbow> β it converts an abl expression to a bdd node. that's literally it. that's the whole job. β¨
this one lives in section 3 of the manual (the <purple>BDD FUNCTIONS</purple> corner of the world, iykyk), so likeβ¦ yeah. library call. π
πΈ ORIGIN πΈ
fr fr this software belongs to the <hotpink>ALLIANCE CAD SYSTEM</hotpink>, developed by the ASIM team at LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France. iconic, honestly. π
- Web :
http://asim.lip6.fr/recherche/alliance/ - E-mail :
alliance-users@asim.lip6.fr
like, they're on the web AND they have email. main character energy. π
β¨ SYNOPSIS β¨
#include "bdd101.h"
bddnode βaddbddcircuitabl( BddCircuit, Expr )
bddcircuit βBddCircuit;
chain_list βExpr;
that's the whole vibe right there π«Ά
π¦ PARAMETERS π¦
BddCircuitβ the bdd circuit. yes. that one. the circuit. π§Exprβ the expression to convert. the one we're translating. no cap.
π DESCRIPTION π
okay so <pink>addbddcircuitabl</pink> converts the abl expression Expr to a bdd node. simple. slay.
the BddCircuit is what's used to translate the atomic expressions into variable nodes β it's giving translator energy. π
if a null pointer is given for it, then the default bdd circuit is used. convenient! π
and here's the lil plot twist π β if an atomic expression doesn't appear in the BddCircuit input names hash table or output names hash table, then addbddcircuitabl adds a new input by calling the function addbddcircuitin with the BDD_IN_MODE_LAST mode. it justβ¦ makes room for it. assertive. we love to see it. π₯
β RETURN VALUE β
addbddcircuitabl returns a pointer to the bdd node translated. that's your output, bestie. take it. π
π ERRORS π
"bad operator xxx error !"β this means theExprparameter must be a well defined abl expression. so likeβ¦ if you get this, check your expression. it's not well defined. it's giving undefined behaviour vibes and not in a cute way π
π EXAMPLE π
here's the full little demo, copied exactly because obviously:
#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 );
Expr = convertbddcircuitabl( BddCircuit, BddNode );
/* displays (i0 and i1) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
destroybddsystem( (bddsystem β)0 );
destroybddcircuit( (bddcircuit β)0 );
and yes, that /* displays (i0 and i1) */ comment is doing the lord's work. it really does display (i0 and i1). ate. π
π§ SEE ALSO π§
go read those 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. like genuinely β send the feedback. they're asking. be the main character who files the report. π
ngl the sweetest part: this whole page is brought to you by<purple>ASIM/LIP6</purple>, dated<pink>October 1, 1997</pink>β yes, 1997, she's vintage and she still slays. periodt. π β¨
π¦ 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