Я нашел этот код структуры в примере Julia Set из книги на CUDA. Я программист новичков C и не могу понять, что он делает, и я не нашел нужную вещь для чтения в Интернете, чтобы разобраться. Вот структура:Что делает эта структура на самом деле?
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; }
вероятно называет оператор «*» для г и снова для I, а затем результаты этих двух операций называют «+» оператор? Это правильно и что возвращается на каждом шагу?
Just plain confused.
Спасибо!
это похоже на C++, и вам нужно сначала прочитать книгу начинающих на C++: http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list is хорошее начало. В этом простом фрагменте слишком много специальных конструкций C++, чтобы объяснить их как ответ на этот вопрос. – Nim
@Nim: Не полезно. Какую новичку вы считаете, что он отсутствует? – TheBlastOne
@TheBlastOne, следовательно, почему это комментарий ... в любом случае, обновил исходный комментарий примерно в то же время, что и ваш комментарий .. – Nim