我正在编写一个数值分析程序,有时微积分会给出一些非常小的系数,即 a0=1.234542e-12
如果我计算一个包含 10 个值的数组(即其中 6 个是小数),然后我将它们中的每一个乘以 t^x(仅作为示例) x=1:10,什么计算速度更快?
- 保持小数字不变
- 检测低于
阈值
的数字并用0.0代替
这个问题主要是因为编译器可能只是不对一个数乘以 0 进行微积分,因为它始终为 0,或者它可能只是将它相乘,而我添加 if< 会使程序变慢
条件语句只是为了检查数字是否为 0。
最佳答案
如果你问的是,这两个操作中哪个更快:
- 将数字 vector 相乘,包括一些接近 0.0 的数字。
- 遍历一个数字 vector ,将那些接近 0.0 的数字设置为 0.0,然后乘以该 vector 。
嗯,我认为在极限 1 会比 2 快。
关于c++ - 检测几乎为零并将它们替换为 0.0 或将它们保留为小数字是否更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12820029/