gpt4 book ai didi

c - 如何在一个 do while 循环中同时运行三个 do while 循环?

转载 作者:太空宇宙 更新时间:2023-11-04 07:21:14 25 4
gpt4 key购买 nike

我有一个程序,它通过使用 do while 条件循环改变 x 维度中的位移 x[i] 来最小化系统的能量。我想将它扩展到一个程序,通过改变 x[i]y[i]z[i] 来最小化能量,我想,在这种情况下,在一个大的 do while 循环中需要同时进行三个 do while 循环,我该如何实现?

一维问题代码如下:

int main(void)
{
double eta,energyold;
energyold=1.0;
unsigned i,j;
init();

do{
function();
functiond(); //JACOBIAN
dgesv(fnd,b,N,dx);
newpsn();
energyT();
eta=fabs(energy-energyold)/energy;
energyold=energy;
//printf("%lf %lf %lf\n",eta,energy,norm);
}while(norm>1e-12);

for(i=0;i<N;i++)
{
printf("The Equillibrium position of ion %d is: %lf\n",i+1,x[i]);
}
return 0;
}

最佳答案

有很多使用线程的建议,但我不相信你真的需要。

这听起来更像是一个纯粹的计算问题,在多核 CPU 上使用线程可能会减少总执行时间,但这并不是表达计算所必需的。

您不能只使用三个嵌套循环(如果您需要检查 x/y/z 值的所有组合),还是一次一个?线程编程可能相当棘手,因此如果对于特定问题不是真正必要的话,它确实是“值得”避免的。

关于c - 如何在一个 do while 循环中同时运行三个 do while 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21546959/

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