我有兴趣进行计算以检查是否满足距离标准:即向量和花药向量x j之间的距离应小于某个值r m a x。我的数据根据坐标的正交网格进行分区。由于我的临界值小于最近邻坐标的端点之间的距离,因此我想添加一个“ octant”变量来检查设置是否正确:
if octant[j] in allowed_list continue
作为“短路”
if dist(x[i], x[j]) < r_max
我的问题是:布尔查找和比较相对于浮点运算的计算效率如何?这在现代建筑上值得吗?
3
您愿意分支代码并对其进行测试吗?我觉得其中大多数的标准答案是“(一种方式)还是(某种方式)进行编码?” 问题类型为“尝试并进行基准测试”。
—
Geoff Oxberry 2012年
只是我的2美分。正如Geoff所写的那样,当我对Stackoverflow提出类似的问题时,我总是得到这样的建议:C ++代码:首先编写所有代码,组织代码,以便保持模块化和可重用性,然后才开始重构。有80-20条规则:软件将80%的时间花费在20%的代码上。等到结构完成后,再进行更改,测试,更改,测试..
—
tmaric 2012年
@GeoffOxberry:我的问题不是那么具体:我只是想知道与进行浮点运算相比,进行布尔检查是否具有硬件或编译器优势。
—
aeismail 2012年
但是您的问题太笼统了。没有看到一些具体的代码,谁也说不清。有一条经验法则说,即使没有优秀的程序员,也无法通过分析来分辨代码瓶颈所在。我花了过去的25年编程时间,我知道这对我来说是对的。
—
Wolfgang Bangerth 2012年