"same" 值出现在 ADD 的叶中
"same" values appear in the leaf in an ADD
在我的 ADD 计算中,我经常在叶子中有重复的值。它们应该自动压缩吗?
例如:
-0-0-- 191.452
-0-1-- 191.452
-1-0-- 191.452
-1-1-- 191.452
一种猜测是它们有不同的尾数,但未显示。但我也有更多尾数的值:
---0-0 8.14148
---0-1 9.65706
---1-0 8.14148
---1-1 9.65706
我只能假设隐藏的数字是不同的,所以它们出现在不同的叶子中...
好像只显示了6位。我可以更改此设置吗?
谁能证实我的怀疑?
非常感谢。
您可以更改 "epsilon" 确定两个值是否相等。
这应该将 epsilon 值设置为百万分之一:
Cudd_SetEpsilon(manager, 1.0e-6);
默认在cuddInt.h中定义为1.0e-12:
#define DD_EPSILON (1.0e-12)
如果我没记错的话,打印发生在 cuddUtil.c
中的内部函数 ddPrintMintermAux
中,使用 fprintf
和 %g
转换说明符。您可以在 CUDD 中更改该代码并重建它以更高精度地打印数字。
在我的 ADD 计算中,我经常在叶子中有重复的值。它们应该自动压缩吗?
例如:
-0-0-- 191.452
-0-1-- 191.452
-1-0-- 191.452
-1-1-- 191.452
一种猜测是它们有不同的尾数,但未显示。但我也有更多尾数的值:
---0-0 8.14148
---0-1 9.65706
---1-0 8.14148
---1-1 9.65706
我只能假设隐藏的数字是不同的,所以它们出现在不同的叶子中...
好像只显示了6位。我可以更改此设置吗? 谁能证实我的怀疑? 非常感谢。
您可以更改 "epsilon" 确定两个值是否相等。
这应该将 epsilon 值设置为百万分之一:
Cudd_SetEpsilon(manager, 1.0e-6);
默认在cuddInt.h中定义为1.0e-12:
#define DD_EPSILON (1.0e-12)
如果我没记错的话,打印发生在 cuddUtil.c
中的内部函数 ddPrintMintermAux
中,使用 fprintf
和 %g
转换说明符。您可以在 CUDD 中更改该代码并重建它以更高精度地打印数字。