SIMPBDDNODEDCON(3)

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

πŸ’… SIMPBDDNODEDCON(3) β€” the simpbddnodedcon glow-up era ✨

okay so bestie, welcome to SIMPBDDNODEDCON(3), a page straight out of the BDD FUNCTIONS manual. she's a libc-style page for the ALLIANCE CAD SYSTEM, and she is lowkey iconic. let's get into it πŸŽ€


✨ NAME ✨

simpbddnodedcon β€” simplifies a bdd with don't cares on its on-set part. that's it. that's the whole gig πŸ’…


πŸ¦‹ ORIGIN πŸ¦‹

so 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. very main character, very "i was built in a lab in paris" energy πŸ‡«πŸ‡·βœ¨

like, the lore is right there, go read it 🫢


🌸 SYNOPSIS 🌸

the whole vibe, verbatim:

#include "bdd101.h"
bddnode *simpbddnodedcon( BddSystem, BddOn, BddDc )
  bddsystem *BddSystem;
  bddnode   *BddOn;
  bddnode   *BddDc;

three nodes walk into a function. no cap. πŸ”₯


πŸ’– PARAMETERS πŸ’–

  • BddSystem β€” the bdd system. your whole little universe of nodes.
  • BddOn β€” the first bdd node. this is the one getting the makeover ✨
  • BddDc β€” the second bdd node. the "don't care" bestie doing the simplifying.

πŸ‘‘ DESCRIPTION πŸ‘‘

simpbddnodedcon simplifies the bdd node BddOn with BddDc, in the bdd system BddSystem.

if a null pointer is given, the default bdd system is used β€” she's flexible like that πŸ’…

⚠️ okay this is the important part, do not skip: the bdd node BddDc must be included imperatively in the on-set part of the bdd node BddOn. like, literally mandatory. not a suggestion. not a vibe. imperative. periodt. 🚨

⭐ RETURN VALUE ⭐

simpbddnodedcon returns the simplified bdd node. she gives back, she's generous 🎁


🌈 EXAMPLE 🌈

here's the whole thing as-is, no edits, she's perfect:

#include "bdd101.h"
   bddsystem  *BddSystem;
   bddcircuit *BddCircuit;
   bddnode    *BddOn;
   bddnode    *BddDc;
   bddnode    *BddNode;
   chain_list *Expr;
   BddSystem  = createbddsystem( 100, 1000, 100, 50000 );
   BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
   Expr = createablbinexpr( ABL_OR,
                            createablatom( "i0" ),
                            createablatom( "i1" ) );
   BddOn = addbddcircuitabl( BddCircuit, Expr );
   freeablexpr( Expr );
   Expr = createablbinexpr( ABL_NOR,
                            createablatom( "i0" ),
                            createablatom( "i1" ) );
   BddDc = addbddcircuitabl( BddCircuit, Expr );
   freeablexpr( Expr );
   BddNode = simpbddnodedcon( (bddsystem *)0, BddOn, BddDc );
   Expr = convertbddcircuitabl( BddCircuit, BddNode );
   /* displays '1' */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddsystem( (bddsystem *)0 );
   destroybddcircuit( (bddcircuit *)0 );

note the little /* displays '1' */ in there β€” yes bestie, that's the flex. it literally displays '1'. ate. πŸ”₯


🧚 SEE ALSO 🧚

  • bdd(1) β€” go read it, 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 giving broken, tell them, fr fr 🫢


okay and that's the page!! brought to you by ASIM/LIP6, dated October 1, 1997 (yeah, she's vintage, she's a classic, she's got range πŸ’€), filed under SIMPBDDNODEDCON(3). mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from