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

# composeBdd(3)

substitutes an index by a BDD in another BDD

## NAME

**composeBdd** - substitutes an index by a BDD in another BDD

## SYNOPSYS

```
#include "logmmm.h"
pNode composeBdd(pBdd1,pBdd2,index)
pNode pBdd1;
pNode pBdd2;
short index;
```

## PARAMETERS

- *pBdd1*

  BDD in wich *index* is substituted

- *pBdd2*

  BDD that replaces *index*

- *index*

  index to substitute

## DESCRIPTION

**composeBdd()** constructs the graph for the function obtained by composing *pBdd1* and *pBdd2*. This function can be used when an auxiliary variable has been mistaken for a primary input.

## 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 = composeBdd(res,notBdd(nodeB),2);	/* composition : a = (NOT B) */
displayBdd(res,1);
/* it will display
@res   ONE
*/
destroyBdd(1);
```

## 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), [**applyBinBdd**(3)](/applyBinBdd/3.md), [**addListBdd**(3)](/addListBdd/3.md), [**displayBdd**(3)](/displayBdd/3.md), [**createNodeTermBdd**(3)](/createNodeTermBdd/3.md).
