【发布时间】:2012-11-29 21:24:48
【问题描述】:
我想尽可能高效地比较两个包含双精度的元组。
由于浮点精度无法通过使用预定义的 operator==(...) 来完成,那么最好的方法是什么?我真的需要遍历所有元组元素吗?或者我可以使用一些模板魔法,这可能允许编译器调用一些 SIMD 优化?
【问题讨论】:
-
尽可能高效地涉及某种形式的运算符 ==。您似乎还有其他要求(“因为浮点精度”),但不知何故认为您的唯一要求是效率。
-
你可能应该尝试正确解决这个问题,因为这对双打来说不是一件容易的事,在你分析它并尝试让它更有效(如果可能的话)跨度>
-
效率只是一个问题。另一个是数据集是从文件中读取的,这就是为什么 operator==() 几乎不可能的原因。
-
嗯,为什么从文件中读取意味着无法测试相等性?
-
有些值是只读的,有些是可以计算的,有些是用户自己输入的。所以我想我的问题应该是“如何对元组中的某些类型使用自定义相等运算符”
标签: c++ optimization c++11 floating-point