我对 c 还很陌生,我似乎无法理解这一小段代码。
void daxpy(int N, double alpha, double *x, double *y)
y=alpha*x+y
for (i=0, i<N, i++)
y[1]=alpha*x[1]+y[1];
我似乎不知道 daxpy 函数在做什么,甚至不知道它的目的。我知道这可能不是很困难。任何帮助都感激不尽。这是我的笔记上的。我只是好奇那是什么。我知道像 daxpy 这样明显的事情是函数调用。但只需要一个小小的解释
最佳答案
我认为实际的代码是这样的:
void daxpy(int N, double alpha, double *x, double *y)
{
for (int i = 0, i < N, i++)
y[i]= alpha * x[i] + y[i];
}
这是因为在查看代码时 y = alpha * x + y
似乎没有意义。由于 x
和 y
似乎是数组,因此它不应该这样工作。
此外,下面的代码是一个循环,我认为它解释了 y = alpha * x + y 本身的语句。索引中的数字应该是 i
而不是 1
,因为它是从 0
到 N
的循环。将 1
放在那里是没有意义的。
因此,该函数调用基本上只是将数组 y
中的每个元素与 x
中对应的值乘以常量 alpha
相加。
关于c - c 中奇怪的 daxpy Fortran,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19850849/