复内积有两个由约定决定的不同定义:或。在 BLAS 中,我找到了例程, , 和, 。前两个例程实际上计算(一个假内积!),后两个例程共轭内积中的第一个向量。此外,根据任一定义(共轭或),与共轭!此外,正如评论中所指出的,为多值复杂函数选择主值可能取决于约定。cdotu
zdotu
cdotc
zdotc
我的问题是:这种复杂性是否会对在科学计算中使用复杂算术造成真正的危险?deal.ii 的作者强调了这个问题,他们建议始终将复数拆分为实部和虚部,并仅使用实数算术。但是我从来没有发现拆分方法很方便。例如,考虑时谐麦克斯韦方程组的完美匹配层(PML) 。
除了 FreeFem++ 和 libmesh 之外,大多数开源 FEM 软件似乎都普遍存在使用复数的担忧。但即使对于这两个例外,复数算术的测试也比实数少。
我的最后一个问题是:我们应该总是避免使用复数吗?