DELBDDNODEASSOC(3)

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

🌸 NAME 🌸

okay so delbddnodeassoc is the function that deletes a bdd node in a variable association. this page lives in the BDD FUNCTIONS manual and is giving DELBDDNODEASSOC(3) main-character energy, no cap πŸ’….


πŸ¦‹ ORIGIN πŸ¦‹

bestie, 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. the links are literally:


✨ SYNOPSIS ✨

the signature is exactly this, no edits:

       #include "bdd101.h"
       int delbddnodeassoc( BddSystem, BddAssoc, Variable )
         bddsystem  βˆ—BddSystem;
         bddassoc   βˆ—BddAssoc;
         bddvar      Variable;

πŸŽ€ PARAMETERS πŸŽ€

  • BddSystem β€” the bdd system. yes, the whole system.
  • BddAssoc β€” the variable association.
  • Variable β€” the variable number.

πŸ’… DESCRIPTION πŸ’…

okay so delbddnodeassoc deletes the bdd node associated to the variable number Variable, in the variable association BddAssoc, in the bdd system BddSystem. if a null pointer is given, the default bdd system is used. also, the number of external reference of the associated bdd node is incremented β€” not decremented, not ignored, incremented. periodt.


πŸ”₯ RETURN VALUE πŸ”₯

delbddnodeassoc returns 1 if the variable is found, and 0 otherwise. cute little boolean, fr fr.


πŸ’€ ERRORS πŸ’€

the error string: "variable xxx out of range, error !"

that error means the Variable parameter must be less or equal to the BddSystem->NUMBER_VAR field. read it again bestie: less or equal, exactly as the page says.


🧚 EXAMPLE 🧚

here’s the whole example, copied exactly because we do not mess with code:

       #include "bdd101.h"
          bddsystem  βˆ—BddSystem;
          bddcircuit βˆ—BddCircuit;
          bddnode    βˆ—BddNode;
          bddnode    βˆ—BddSubst;
          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" ) );
          BddNode = addbddcircuitabl( BddCircuit, Expr );
          freeablexpr( Expr );
          Expr = createablbinexpr( ABL_OR,
                                   createablatom( "i2" ),
                                   createablatom( "i3" ) );
          BddSubst = 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, BddSubst );
          BddNode = substbddnodeassoc( (bddsystem βˆ—)0, BddSubst, Assoc );
          delbddnodeassoc( (bddsystem βˆ—)0, Assoc, Variable );
          Expr = convertbddcircuitabl( BddCircuit, BddNode );
          /* displays ((i3 or i2) and i1) */
          viewablexpr( Expr, ABL_VIEW_VHDL );
          freeablexpr( Expr );
          destroybddassoc( (bddsystem βˆ—)0 );
          destroybddsystem( (bddsystem βˆ—)0 );
          destroybddcircuit( (bddcircuit βˆ—)0 );

🌈 SEE ALSO 🌈

  • bdd(1) β€” go read that too, bestie 🫢.

🫢 BUG REPORT 🫢

this tool is under development at the ASIM department of the LIP6 laboratory. we need your feedback to improve documentation and tools. fr fr, your feedback matters πŸ’–.


with love from ASIM/LIP6, dated October 1, 1997 β€” DELBDDNODEASSOC(3) signing off πŸ’…πŸ¦‹βœ¨

πŸ“¦ where this page comes from