I'm working with CUDD C++ and I would like to know if it is possible to do the following:
For now, I have the next table stored in a bdd
:
|-----|-----|-----||-----|
| x1 | x2 | x3 || y |
|-----|-----|-----||-----|
| 0 | 0 | 0 || 0 |
|-----|-----|-----||-----|
| 0 | 0 | 1 || 0 |
|-----|-----|-----||-----|
| 0 | 1 | 0 || 1 |
|-----|-----|-----||-----|
| 0 | 1 | 1 || 0 |
|-----|-----|-----||-----|
| 1 | 0 | 0 || 0 |
|-----|-----|-----||-----|
| 1 | 0 | 1 || 1 |
|-----|-----|-----||-----|
| 1 | 1 | 0 || 0 |
|-----|-----|-----||-----|
| 1 | 1 | 1 || 0 |
|-----|-----|-----||-----|
Is it possible to create another table with 2 outputs extracting the value of x2
, x3
if the value of the original output is 1?:
Desired output:
|-----||-----|-----|
| x1 || x2 | x3 |
|-----||-----|-----|
| 0 || 1 | 0 |
|-----||-----|-----|
| 1 || 0 | 1 |
|-----||-----|-----|
I already tried using the ExistAbastract()
command and I obtain 2 bdds
with the correct data but x2
and x3
are still inputs. Is it possible to convert x2
and x3
from variables to outputs according to the value of y
?