ABLTOBDDCCT(3)

πŸ“¦ version 5.1.1, in fedora 43, fedora 44

πŸ¦‹ ORIGIN πŸ¦‹

okay so first of all, bestie, this software belongs to the ALLIANCE CAD SYSTEM, which was developed by the ASIM team at the LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France. iconic academic energy, no cap. πŸ‡«πŸ‡·βœ¨


✨ NAME ✨

ablToBddCct β€” literally converts an ABL into a BDD within a circuit. that's the whole gig. πŸ’…


🌸 SYNOPSIS 🌸

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

πŸŽ€ PARAMETERS πŸŽ€

  • pC β€” the Circuit in which the conversion is made. it's the venue, the location, the main character setting 🏟️
  • expr β€” the expression to convert. the thing we're transforming, slay πŸ’–

πŸ’œ DESCRIPTION πŸ’œ

so ablToBddCct() constructs the graph that is computed from expr. that's it, that's the function. 🫢

this function provides the basic method for constructing easily the BDDs β€” like, it's the easy-breezy entry point, the no thoughts just vibes way to build your BDDs.

and lowkey the way it works? the applyBdd() function is called recursively by going through the ABL. so it's recursion, bestie. recursion all the way down. πŸ”βœ¨


🌈 EXAMPLE 🌈

okay here's the whole thing in action, look:

#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);

so we set up the BDD, make a circuit, add inputs "a" and "b", suppose that expr = (OR (AND (NOT a) b) a), convert, and displayBdd(res,1) shows you exactly that graph up there. then you clean up with destroyCct(pC) and destroyBdd(1) because we are responsible queens πŸ‘‘πŸ§Ή


πŸ”₯ SEE ALSO πŸ”₯

log(1), bdd(1), abl(1), bddToAblCct(3).


πŸ’€ BUG REPORT πŸ’€

ngl, this tool is under development at the ASIM department of the LIP6 laboratory. πŸ™ˆ

and they need your feedback to improve documentation and tools. so like... talk to them? fr fr, your input is wanted. 🫢


and that's the whole page, bestie β€” brought to you by ASIM/LIP6, version dated October 1, 1997. yes, 1997. vintage. retro. iconic in a elder millennial way. πŸ’–βœ¨πŸŽ€