この構造コードは、CUDAの書籍のJulia Setの例で見つかりました。私は初心者のCプログラマであり、何をしているのかについて頭を浮かべることはできません。また、Web上で読むために正しいことを見つけ出すこともできません。ここでは構造があります:この構造は実際に何をしていますか?
struct cuComplex {
float r;
float i;
cuComplex(float a, float b) : r(a), i(b) {}
float magnitude2(void) { return r * r + i * i; }
cuComplex operator*(const cuComplex& a) {
return cuComplex(r*a.r - i*a.i, i*a.r + r*a.i);
}
cuComplex operator+(const cuComplex& a) {
return cuComplex(r+a.r, i+a.i);
}
};
、それは非常に簡単にこのように呼ばれています:
cuComplex c(-0.8, 0.156);
cuComplex a(jx, jy);
int i = 0;
for (i=0; i<200; i++) {
a = a * a + c;
if (a.magnitude2() > 1000)
return 0;
}
return 1;
ので、コードが何をしましたか?数の実数部と虚数部を与える構造体型 'cuComplex'のものが定義されています。 (-0.8 & 0.156)何が返されていますか? (または構造に配置されていますか?)実際に何が計算され、そこに保持されているかを理解するために、構造体の演算子のロジックをどのように操作しますか?
私はそれはおそらくバックstucture
float magnitude2 (void) { return return r * r + i * i; }
への再帰呼び出しをやっている、おそらくR用と再び私のために「*」オペレータを呼び出し、その後、これら二つの操作の結果は「+」を呼び出すと思いますオペレーター?これは正しいのですが、各ステップで何が返されますか?
わかりやすく混乱しています。
ありがとうございます!
これはC++のようですが、まずはC++の初心者の本を読んでください:http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list is良いスタートです。その単純なスニペットには、この質問に対する答えとして説明するC++固有の構文が多すぎます。 – Nim
@Nim:役に立たない。彼は何の初心者トピックがありますか? – TheBlastOne
@TheBlastOne、なぜそれがコメントなのです...とにかく、あなたのコメントと同じ時間にオリジナルのコメントを更新しました.. – Nim