---
name: "upVarBdd"
section: "3"
platform: "linux"
package: "alliance"
version: "5.1.1-3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/upVarBdd"
---

# upVarBdd(3)

brings up an index in a BDD

## NAME

**upVarBdd** - brings up an index in a BDD

## SYNOPSYS

```
#include "logmmm.h"
pNode upVarBdd(pBdd,oldIndex,newIndex)
pNode pBdd;
short oldIndex,newIndex;
```

## PARAMETERS

- *pBdd*

  BDD in wich *index* is came up

- *oldIndex*

  index to come up

- *newIndex*

  new index

## DESCRIPTION

**upVarBdd()** constructs a graph obtained by bringing up *oldIndex* to *newIndex*. This function is called by the BDDs reordering function.

## 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);
```

## ERROR

"upVarBdd : error - newIndex \<= oldIndex"\
 The new index must be higher than the old index.

## SEE ALSO

[**log**(1)](/log/1.md), [**bdd**(1)](/bdd/1.md), [**applyBdd**(3)](/applyBdd/3.md), [**notBdd**(3)](/notBdd/3.md), [**constraintBdd**(3)](/constraintBdd/3.md), [**composeBdd**(3)](/composeBdd/3.md), [**applyBinBdd**(3)](/applyBinBdd/3.md), [**addListBdd**(3)](/addListBdd/3.md), [**displayBdd**(3)](/displayBdd/3.md), [**createNodeTermBdd**(3)](/createNodeTermBdd/3.md).
