gpt4 book ai didi

c - C循环优化

转载 作者:行者123 更新时间:2023-11-30 20:22:20 24 4
gpt4 key购买 nike

我有以下函数来计算系数:

void CalculateCoefficients(LinearFit *DataSet, double *A, double *B)
{
/* Declare and initialize sum variables */
double S_XX = 0.0;
double S_XY = 0.0;
double S_X = 0.0;
double S_Y = 0.0;
int lcv;

/* Compute the sums */
for (lcv=0; lcv < DataSet->NextElement; lcv++)
{
S_XX += DataSet->Data_X[lcv] * DataSet->Data_X[lcv];
S_XY += DataSet->Data_X[lcv] * DataSet->Data_Y[lcv];
S_X += DataSet->Data_X[lcv];
S_Y += DataSet->Data_Y[lcv];
} /* for() */

/* Compute the parameters of the line Y = A*X + B */
(*A) = (((DataSet->NextElement * S_XY) - (S_X * S_Y)) / ((DataSet->NextElement * S_XX) - (S_X * S_X)));
(*B) = (((S_XX * S_Y) - (S_XY * S_X)) / ((DataSet->NextElement * S_XX) - (S_X * S_X)));
} /* CalculateCoefficients() */

我正在寻找优化循环。我尝试了循环展开,但效果不大。我还能做什么?

最佳答案

你可以尝试:

double dsdx, dsdy;
...
dsdx = DataSet->Data_X[lcv];
dsdy = DataSet->Data_y[lcv];
S_XX += dsdx * dsdx;
S_XY += dsdx * dsdy;
S_X += dsdx;
S_Y += dsdy;
...

这样,在循环的每次迭代中,您只需从结构中获取一次值。

关于c - C循环优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39841602/

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