gpt4 book ai didi

c++ - 如何优化此数学运算以提高速度

转载 作者:行者123 更新时间:2023-11-30 00:49:01 25 4
gpt4 key购买 nike

我正在尝试优化一个占用大量执行时间的函数,该函数多次计算以下数学运算。有没有办法让这个操作更快?

float total = (sqrt(
((point_A[j].length)*(point_A[j].length))+
((point_B[j].width)*(point_B[j].width))+
((point_C[j].height)*(point_C[j].height))
));

最佳答案

如果内存便宜,那么您可以执行以下操作,从而改进 CPU cache命中率。由于您尚未发布更多详细信息,因此我将在此处做出一些假设。

long tmp_len_square[N*3];

for (int j = 0; j < N; ++j) {
tmp_len_square[3 * j] = (point_A[j].length)*(point_A[j].length);
}

for (int j = 0; j < N; ++j) {
tmp_len_square[(3 * j) + 1] = (point_B[j].width)*(point_B[j].width);
}

for (int j = 0; j < N; ++j) {
tmp_len_square[(3 * j) + 2] = (point_C[j].height)*(point_C[j].height);
}

for (int j = 0; j < N; ++j) {
float total = sqrt(tmp_len_square[3 * j] +
tmp_len_square[(3 * j) + 1] +
tmp_len_square[(3 * j) + 2]);
// ...
}

关于c++ - 如何优化此数学运算以提高速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30024912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com