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

# applyBdd(3)

applies an operator to a list of BDD.

## NAME

**applyBdd** - applies an operator to a list of BDD.

## SYNOPSYS

```
#include "logmmm.h"
pNode applyBdd(oper,pt)
short oper;
chain_list *pt;
```

## PARAMETERS

- *oper*

  operator number to apply (OR,AND,XOR,NAND,NOR,NXOR,NOT)

- *pt*

  *chain\_list* of BDD.

## DESCRIPTION

**applyBdd()** applies *oper* to a list of Bdd. This list can be created by **addListBdd()** function. This function provides the basic method for creating the representation of a function according to the operators in a boolean expression.

## EXAMPLE

```
#include "mutnnn.h"		/* mbk utilities */
#include "logmmm.h"
pNode nodeA,nodeB,nodeC;
pNode res;
chain_list *pt;
initializeBdd(SMALL_BDD);
nodeA = createNodeTermBdd(3);
nodeB = createNodeTermBdd(3);
nodeC = createNodeTermBdd(4);
pt = NULL;
pt = addListBdd(pt,nodeA);
pt = addListBdd(pt,nodeB);
pt = addListBdd(pt,nodeC);
res = applyBdd(OR,pt);
displayBdd(res,1);
/* it will display
@res    INDEX = 4   LOW = @inter   HIGH = ONE
@inter  INDEX = 3   LOW = @nodeA   HIGH = ONE
@nodeA  INDEX = 2   LOW = ZERO	   HIGH = ONE
*/
destroyBdd(1);
```

## ERRORS

"applyBdd : error - unknown operator"\
 the operator number must be in (OR,AND,XOR,NAND,NOR,NXOR,NOT)\
 "applyBdd : error - chained list is empty"\
 chained list pointer *pt = NULL*.\
 "applyBdd : error - bad operator"\
 The  number of arguments is 1 and the operator is distinct from NOT.\
 chained list pointer *pt = NULL*.\

## SEE ALSO

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