-2

私はまだ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 のような明白なことは関数呼び出しであることを知っています。しかし、それについての簡単な説明が必要です

4

1 に答える 1

1

実際のコードは次のようになると思います。

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代わりにする必要があります。そこに置いても意味がありません。10N1

したがって、その関数呼び出しは基本的に、配列のすべての要素を、y対応する値にx定数を掛けて追加するだけalphaです。

于 2013-11-08T03:37:34.713 に答える