CONVERTBDDMUXABL(3)

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

πŸ’– CONVERTBDDMUXABL(3) πŸ’–

okay bestie, welcome to the glow-up of convertbddmuxabl from the BDD FUNCTIONS manual (section 3, obviously). it's giving very much "niche library function that absolutely ate". let's get into it πŸ¦‹


✨ NAME ✨

convertbddmuxabl β€” converts two bdd nodes to an abl multiplexor expression.

no cap, that's literally the whole job description and she does it flawlessly πŸ’…


🌈 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 behavior, honestly πŸ‡«πŸ‡·βœ¨


πŸŽ€ SYNOPSIS πŸŽ€

#include "bdd101.h"
chain_list *convertbddmuxabl( BddSystem, NameArray, IndexArray, Equation, BddHigh, BddLow )
  bddsystem  Ξ’ddSystem;
  char      (*NameArray;
  bddindex   Ξ™ndexArray;
  chain_list Ξ•quation;
  bddnode    Ξ’ddHigh;
  bddnode    Ξ’ddLow;

πŸ’œ PARAMETERS πŸ’œ

  • BddSystem β€” the bdd system. your girl's whole world basically.
  • NameArray β€” the array of names.
  • IndexArray β€” the array of indexes.
  • Equation β€” the multiplexor command.
  • BddHigh β€” the first bdd node.
  • BddLow β€” the second bdd node.

πŸ¦‹ DESCRIPTION πŸ¦‹

so convertbddmuxabl creates the following abl expression:

( BddHigh AND Equation ) OR ( BddLow AND (NOT Equation ) )

...inside the bdd system BddSystem. if a null pointer is given, the default bdd system is used β€” she's flexible like that, lowkey a queen 🫢

the NameArray and IndexArray parameters are used to translate the variable nodes into atomic expressions. the array NameArray is a list of names. the array IndexArray does the correspondence between a bdd node index and a slot in the NameArray. if the IndexArray parameter is a null pointer, then the name of the bdd index BDD_INDEX_MIN is assumed to be the first slot of the NameArray, and so on. periodt. πŸ’«


⭐ RETURN VALUE ⭐

convertbddmuxabl returns a pointer to the abl expression translated. that's it, that's the tea β˜•


🌸 EXAMPLE 🌸

#include "bdd101.h"
   bddsystem  βˆ—BddSystem;
   bddnode    βˆ—BddNode1;
   bddnode    βˆ—BddNode2;
   chain_list βˆ—Expr;
   char       βˆ—NameArray[ 2 ];
   BddSystem = createbddsystem( 100, 1000, 100, 50000 );
   BddNode1  = addbddvarlast( BddSystem );
   BddNode2  = addbddvarlast( BddSystem );
   NameArray[ 0 ] = namealloc( "i0" );
   NameArray[ 1 ] = namealloc( "i1" );
   Expr = convertbddmuxabl( BddSystem, NameArray, (bddindex βˆ—)0,
                            createablatom( "C" ),  BddNode1, BddNode2 );
   /* displays (i0 and C) or (i1 and (not C)) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddsystem( (bddsystem βˆ—)0 );

look at that demo run. she built the whole system, allocated the vars, and cleaned up after herself. main character energy fr fr πŸ‘‘


πŸ”₯ 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. so like… pls send thoughts and prayers (and bug reports) bestie, we're literally begging πŸ™ˆπŸ’–


okay and that's the whole page, we ate and left absolutely no crumbs πŸ“

signing off with love from ASIM/LIP6, dated October 1, 1997 β€” yeah she's vintage, she's archival, she's still slaying πŸ’…βœ¨πŸ‘‘