ISBDDVARINSUPPORT(3)

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

πŸ’… ISBDDVARINSUPPORT(3) πŸ’…

ok so bestie, welcome to the bdd function family β€” this one lives in the BDD FUNCTIONS section of the third manual, and it's genuinely one of the cutest little helpers in the whole set. it's called isbddvarinsupport and it literally just answers one yes/no question for you. no cap. πŸ¦‹


✨ ORIGIN ✨

ok so this software is part of the ALLIANCE CAD SYSTEM, built by the ASIM team at the LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France. very main character, very French, we love that for them. πŸ₯–βœ¨


🌸 SYNOPSIS 🌸

ok here's the vibe, exactly as written:

#include "bdd101.h"
int isbddvarinsupport( BddSystem, BddNode, Variable )
  bddsystem βˆ—BddSystem;
  bddnode   βˆ—BddNode;
  bddvar     Variable;

πŸŽ€ PARAMETERS πŸŽ€

three args, all besties, here's the rundown:

  • BddSystem β€” the bdd system πŸ’– (and heads up: if you hand it a null pointer, the default bdd system gets used instead, no drama)
  • BddNode β€” the bdd node in question 🧚
  • Variable β€” the variable number you're asking about ⭐

πŸ’œ DESCRIPTION πŸ’œ

ok so here's what this icon actually does: isbddvarinsupport tests whether the variable numbered Variable shows up in the support of the bdd node BddNode, inside the bdd system BddSystem. πŸ”βœ¨

and the cute part: if a null pointer is given, the default bdd system is used. so you don't have to pass anything if you're feeling lazy. slay. πŸ’…


πŸ”₯ RETURN VALUE πŸ”₯

  • 1 if Variable appears ✨
  • 0 otherwise πŸ’€

that's it. that's the whole answer. periodt.


🌈 ERRORS 🌈

  • "variable xxx out of range, error !" β€” the Variable parameter must be less or equal to the BddSystem->NUMBER_VAR field. that's the rule, bestie, out of range means error. πŸ™ˆ

πŸ“ EXAMPLE πŸ“

ok here's a whole little program showing the vibe β€” copying it exactly:

#include "bdd101.h"
   bddsystem  βˆ—BddSystem;
   bddcircuit βˆ—BddCircuit;
   bddnode    βˆ—BddNode;
   bddnode    βˆ—BddVariable;
   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 );
   BddVariable = searchbddcircuitin( (bddcircuit βˆ—)0, "i0" );
   Variable = getbddvarbyindex( (bddsystem βˆ— 0), BddVariable->INDEX ) );
   /* displays 1 */
   printf( "%d", isbddvarinsupport( (bddsystem βˆ—)0, BddNode, Variable ) );
   destroybddsystem( (bddsystem βˆ—)0 );
   destroybddcircuit( (bddcircuit βˆ—)0 );

see that /* displays 1 */? yeah. it prints 1. we love a predictable queen. πŸ‘‘ (and yes, that example is written exactly like the original β€” i'm not touching it, iykyk.)


🫢 SEE ALSO 🫢

  • bdd(1) β€” go read it, bestie, it's the gateway ✨

πŸ’€ BUG REPORT πŸ’€

ok so this tool is under development at the ASIM department of the LIP6 laboratory. πŸ› οΈ

and fr fr: they need your feedback to improve documentation and tools. so if something's weird, tell them. be nice about it. πŸ₯ΊπŸ’–


lowkey reminder: this whole page is the ASIM/LIP6 era β€” dated October 1, 1997 β€” and it's page ISBDDVARINSUPPORT(3) of the manual. genuinely vintage. iconic behavior. πŸŽ€βœ¨πŸ¦‹
πŸ“¦ where this page comes from