UPVARBDD(3)
π UPVARBDD π (the upVarBdd situation, from the BDD functions manual)
okay bestie, welcome to upVarBdd(3) β yes that's the manual section number, we're in the big-kid library docs now π
π 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. π«π·β¨
- Web:
http://asim.lip6.fr/recherche/alliance/ - E-mail:
alliance-users@asim.lip6.fr
β¨ NAME β¨
upVarBdd β brings up an index in a BDD. that's it, that's the whole job, and it ate π
π SYNOPSIS π
#include "logmmm.h"
pNode upVarBdd(pBdd,oldIndex,newIndex)
pNode pBdd;
short oldIndex,newIndex;
π¦ PARAMETERS π¦
pBddβ the BDD in which the index is being came up (yes, the original says "came up", we're keeping the vibe, no cap).oldIndexβ the index that's coming up. the one on the move.newIndexβ the new index. where it's headed.
π DESCRIPTION π
upVarBdd() constructs a graph obtained by bringing up oldIndex to newIndex. literally it's a glow-up for one single index, moving it to a higher spot in the ordering β¨
and the way this function gets called? it's called by the BDDs reordering function. so it's not out here doing solo main character work β it's a team player in the reordering process, iykyk π«Ά
πΈ EXAMPLE πΈ
#include "mutnnn.h" /* mbk utilities */
#include "logmmm.h"
pNode nodeA,nodeB;
pNode res;
initializeBdd(SMALL_BDD);
nodeA = createNodeTermBdd(3);
nodeB = createNodeTermBdd(3);
res = applyBinBdd(OR,nodeA,nodeB); /* res = (OR a b)
res = upVarBdd(res,2,4);
displayBdd(res,1);
/* it will display
@res INDEX 4 LOW = @nodeB HIGH = ONE
@nodeB INDEX 3 LOW = ZERO HIGH = ONE
*/
destroyBdd(1);
so we initialize the BDD with SMALL_BDD, make two term nodes at index 3, smash them together with applyBinBdd(OR,nodeA,nodeB), then call upVarBdd(res,2,4) to bump index 2 up to index 4, and displayBdd(res,1) shows you the whole thing. iconic. and then destroyBdd(1) cleans up because we're responsible queens π
π ERROR π
"upVarBdd : error - newIndex <= oldIndex"
The new index must be higher than the old index. periodt. if you try to make newIndex equal to or lower than oldIndex, you get that error and the function is NOT happy about it π«
fr fr,newIndexstrictly greater thanoldIndexor nothing. don't test her.
π SEE ALSO π
log(1), bdd(1), applyBdd(3), notBdd(3), constraintBdd(3), composeBdd(3), applyBinBdd(3), addListBdd(3), displayBdd(3), createNodeTermBdd(3).
go read those too bestie, the whole friend group is slaying π
π«Ά 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β¦ if something's broken, TELL THEM. they literally said they need your feedback. it's giving "please help us help you" π
and that's the whole page!! from the ASIM/LIP6 girlies, dated October 1, 1997 β yeah she's vintage and she still serves. UPVARBDD(3) forever, no cap ππ
β¨
π¦ where this page comes from
- fedora 43: alliance-devel 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 43: alliance-devel 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 44: alliance-devel 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 44: alliance-devel 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms