1

cfunction(z)考虑一个接受复杂参数的 C 复杂数学函数z=x+iy。我想运行一个自动测试来检查这个函数在复平面上的结果。

为此,脚本将为值矩阵打印此函数的结果:例如x in [-inf, 0, inf]和的所有组合y in [-inf, 0, inf]

x in [list]所以如果我对和执行这个测试y in [list],我应该输入什么值[list]来有效地检查复平面上函数的有效性?

我想到了类似的东西:list = [-inf, -1., -0., 0., 1., +inf, NaN],但我认为这种检查是一个众所周知的问题,一些库可能已经用更详尽的方法解决了这个问题。

备注:我认为该函数不具有任何对称性或特定值。

4

1 回答 1

0

有些想法太大了,无法评论。

在您的列表中:list = [-inf, -1., -0., 0., 1., +inf, NaN],可以添加:

一个随机集合(可能是 100 个)
通过填写以下u64字段生成union,并抛出非有限数字。

经典常量

M_PI
e

更多特殊值

union {
  uint64_t u64;
  double d;
} sNaN, qNan;
// http://en.wikipedia.org/wiki/QNaN#Signaling_NaN
sNaN.u64 = 0x7ff0000000000001;
// http://en.wikipedia.org/wiki/QNaN#Quiet_NaN
qNaN.u64 = 0x7ff1000000000000;
// Max/Min float
DBL_MAX;    
-DBL_MAX;    
// Small
DBL_MIN
DBL_TRUE_MIN
//
OnePLus = 1.0 + DBL_EPSILON;
于 2013-10-19T05:56:04.073 回答