c - c 中奇怪的 daxpy Fortran

标签 c

我对 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 似乎没有意义。由于 xy 似乎是数组,因此它不应该这样工作。 此外,下面的代码是一个循环,我认为它解释了 y = alpha * x + y 本身的语句。索引中的数字应该是 i 而不是 1,因为它是从 0N 的循环。将 1 放在那里是没有意义的。

因此,该函数调用基本上只是将数组 y 中的每个元素与 x 中对应的值乘以常量 alpha 相加。

关于c - c 中奇怪的 daxpy Fortran,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19850849/

相关文章:

c - 在 C 中打印正确的数字时出错

c - 如何将 void 指针中的信息放入 char 数组?

c - Delphi 中通过引用传递的指针(从 DLL 导入函数)

c - 在 C 中将静态分配的二维数组作为函数参数传递

c - 具有 volatile 和非 volatile 成员的 union 的语义是什么?

c - LeetCode : Two Sums (Error: Returning the Array)

c - 数据段前未初始化的可写数据

c++ - 我想在目录不存在时强制打开文件

c - SO_SNDBUF 的作用

带有 -D 标志的 C 全局变量编译错误 : expected identifier or '('