RELPRODBDDNODEASSOC(3)

๐Ÿ“ฆ version 5.1.1, in fedora 43, fedora 44

โœจ RELPRODBDDNODEASSOC(3) โœจ

okay bestie, gather round, because today we're talking about relprodbddnodeassoc from the BDD FUNCTIONS section of the manual ๐Ÿ’… this is a C function, she's giving very much "3" energy, and honestly? she's iconic for what she does.


๐ŸŽ€ NAME ๐ŸŽ€

relprodbddnodeassoc โ€” she computes a relational product. that's it, that's the whole vibe. no cap. ๐Ÿฆ‹


๐ŸŒธ ORIGIN ๐ŸŒธ

so this software is part of the ALLIANCE CAD SYSTEM, which was developed by the ASIM team at the LIP6 laboratory of Universitรฉ Pierre et Marie CURIE, in Paris, France ๐Ÿ‡ซ๐Ÿ‡ทโœจ (yes, the Paris, trรจs chic, very main character).

like, they literally put their whole contact info in here so you can slide into their inbox. respectful. ๐Ÿซถ


๐Ÿ‘‘ SYNOPSIS ๐Ÿ‘‘

#include "bdd101.h"
bddnode โˆ—relprodbddnodeassoc( BddSystem, BddNode1, BddNode2, BddAssoc )
  bddsystem โˆ—BddSystem;
  bddnode   โˆ—BddNode1;
  bddnode   โˆ—BddNode2;
  bddassoc  โˆ—BddAssoc;

look at that signature. she's serving parameters. ๐Ÿ˜Œ


๐Ÿ’– PARAMETERS ๐Ÿ’–

  • BddSystem โ€” the bdd system. your whole world, basically.
  • BddNode1 โ€” the first bdd node. the og.
  • BddNode2 โ€” the second bdd node. the sequel.
  • BddAssoc โ€” the variable association. the one who decides what gets suppressed.

๐ŸŒˆ DESCRIPTION ๐ŸŒˆ

okay so here's the tea โ˜• relprodbddnodeassoc computes BddNode1 AND BddNode2, and then it suppresses the variables that are associated with something in the variable association BddAssoc, all inside the bdd system BddSystem.

and listen โ€” if a null pointer is given, the default bdd system is used. so like, she's flexible. she adapts. periodt. ๐Ÿ’…


โญ RETURN VALUE โญ

relprodbddnodeassoc returns the computed bdd node. that's your prize bestie, take it ๐ŸŽ


๐Ÿšจ ERRORS ๐Ÿšจ

  • "bad variable association xxx, error !" โ€” the BddAssoc parameter must be a valid variable association. like, it's giving invalid and she is not having it. ๐Ÿ˜ญ fix your assoc before you come to her.

๐Ÿงš EXAMPLE ๐Ÿงš

okay here's a whole little program, read it and weep (affectionately):

#include "bdd101.h"
   bddsystem  โˆ—BddSystem;
   bddcircuit โˆ—BddCircuit;
   bddnode    โˆ—BddNode;
   bddnode    โˆ—BddNode1;
   bddnode    โˆ—BddNode2;
   bddnode    โˆ—BddVariable;
   bddassoc   โˆ—Assoc;
   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" ) );
   BddNode1 = addbddcircuitabl( BddCircuit, Expr );
   freeablexpr( Expr );
   Expr = createablbinexpr( ABL_OR,
                            createablatom( "i0" ),
                            createablatom( "i1" ) );
   BddNode2 = addbddcircuitabl( BddCircuit, Expr );
   freeablexpr( Expr );
   BddVariable = searchbddcircuitin( (bddcircuit โˆ—)0, "i0" );
   Variable = getbddvarbyindex( (bddsystem โˆ—)0, BddVariable->INDEX );
   Assoc = addbddassoc( (bddsystem โˆ—)0 );
   addbddnodeassoc( (bddsystem โˆ—)0, Assoc, Variable, BddSystem->ONE );
   BddNode = relprodbddnodeassoc( (bddsystem โˆ—)0, BddNode1, BddNode2, Assoc );
   Expr = convertbddcircuitabl( BddCircuit, BddNode );
   /* displays i1 */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddassoc( (bddsystem โˆ—)0 );
   destroybddsystem( (bddsystem โˆ—)0 );
   destroybddcircuit( (bddcircuit โˆ—)0 );

and yes, the comment /* displays i1 */ is doing a lot of heavy lifting in there and we love her for it ๐Ÿ’œ


๐Ÿ”ฅ SEE ALSO ๐Ÿ”ฅ

bdd(1) โ€” go read that one too, iykyk.


๐Ÿ’€ BUG REPORT ๐Ÿ’€

this tool is under development at the ASIM department of the LIP6 laboratory. they need your feedback to improve documentation and tools ๐Ÿ™ˆ so like, if something's weird, tell them! constructive vibes only.


and that's the whole page bestie ๐ŸŽ€ this was RELPRODBDDNODEASSOC(3) from ASIM/LIP6, dated October 1, 1997 โ€” yes she's a 90s baby and she's still out here computing relational products. legacy behavior, honestly. slay ๐Ÿ’…โœจ