ABLTOBDDCCT(3)

πŸ“¦ version 5.1.1-unstable-2025-02, in nixos 26.05, nixpkgs unstable

πŸ¦‹ ABLTOBDDCCT πŸ¦‹

okay bestie, quick vibe check first β€” this is a page from the BDD functions manual, section 3. I'm folding that in up top so you're not confused later, mwah πŸ’–


✨ ORIGIN ✨

so this software? it's part of the ALLIANCE CAD SYSTEM, developed by the ASIM team at the LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France πŸ‡«πŸ‡· β€” like, literally Paris. iconic.


πŸ’œ NAME πŸ’œ

ablToBddCct β€” converts an ABL into a BDD within a circuit. no cap, that's the whole job 🫢


πŸŽ€ SYNOPSIS πŸŽ€

#include "logmmm.h"
pNode ablToBddCct(pC,expr)
pCircuit pC;
chain_list *expr;

🌸 PARAMETERS 🌸

  • pC β€” the circuit where the conversion is happening. she's the venue, the conversion happens inside her πŸ’…
  • expr β€” the expression to convert. the main character, honestly ✨

⭐ DESCRIPTION ⭐

ablToBddCct() constructs the graph that is computed from expr. it's giving "basic method for constructing easily the BDDs" β€” that's literally her purpose, she's the easy button πŸ”₯

and the way she works? applyBdd() gets called recursively by going through the ABL. recursive queen, she ate πŸ‘‘


🌈 EXAMPLE 🌈

here's the whole thing, verbatim, no edits from me bestie:

#include "mutnnn.h"      /* mbk utilities */
#include "logmmm.h"
chain_list *expr;
pNode res;
pCircuit pC;

initializeBdd(SMALL_BDD);
pC = initializeCct("circuit 1",10,10);

addInputCct(pC,"a");
addInputCct(pC,"b");

     /* let's suppose that expr = (OR (AND (NOT a) b) a) */

res = ablToBddCct(pC,expr);
displayBdd(res,1);

/* it will display
@res      INDEX = 3   LOW = @nodeA   HIGH = ONE
@nodeA    INDEX = 2   LOW = ZERO     HIGH = ONE
*/

destroyCct(pC);
destroyBdd(1);

like, look at that little graph output β€” INDEX = 3, LOW = @nodeA, HIGH = ONE and then @nodeA with INDEX = 2, LOW = ZERO, HIGH = ONE. she's beautiful, she's balanced, she's a whole tree 🧚🌸


πŸ¦‹ SEE ALSO πŸ¦‹

(the reverse one, iykyk πŸ’«)


πŸ™ˆ BUG REPORT πŸ™ˆ

ngl this tool is still under development at the ASIM department of the LIP6 laboratory. they literally need your feedback to improve documentation and tools β€” so if something's off, tell them, bestie, they're asking nicely πŸ₯ΊπŸ«Ά


and that's the page!! source/version is ASIM/LIP6, dated October 1, 1997 β€” yes she's vintage, yes she still slays, periodt πŸ’…πŸ’–

πŸ“¦ where this page comes from