.........
" out[i]=0; \r\n"// после десятитысячного шага итерации этот оператор начнёт выполняться в каждом цикле." } \r\n"// т.е. на выходе из цикла по любому будем иметь out[i] = 0;
.........
out[i]+=u; // если к неотрицательному числу прибавить число u большее 10000if(out[i]>10000) // то результат будет больше 10000 (true)out[i]=0; // тогда ... = 0
" out[i]=0; \r\n"// после десятитысячного шага итерации этот оператор начнёт выполняться в каждом цикле." } \r\n"// т.е. на выходе из цикла по любому будем иметь out[i] = 0;
Andrey, es ist ganz einfach: out[ i ] kann nicht höher als 10000 sein, und sobald es höher ist, wird der Array-Wert auf Null gesetzt - aus Konvention. Ausgehend von u=10001 wird er immer auf Null gesetzt.
Von nun an werden wir beginnen, noch größere Werte von u zu Null zu addieren. Aber nicht zu groß, sicher nicht mehr als 4 Milliarden. Der Wert des Feldes ist also positiv und genau größer als 10000. Sie ist also wieder Null. Und so weiter. Und dann, außerhalb der Schleife, addieren wir i zu Null.
Und warum?
И?...
Es tut mir leid, dass ich mit Ihrem Denken nicht mithalten kann.
И?...
И... dann...
Andrey, es ist ganz einfach: out[ i ] kann nicht höher als 10000 sein, und sobald es höher ist, wird der Array-Wert auf Null gesetzt - aus Konvention. Ausgehend von u=10001 wird er immer auf Null gesetzt.
Von nun an werden wir beginnen, noch größere Werte von u zu Null zu addieren. Aber nicht zu groß, sicher nicht mehr als 4 Milliarden. Der Wert des Feldes ist also positiv und genau größer als 10000. Sie ist also wieder Null. Und so weiter. Und dann, außerhalb der Schleife, addieren wir i zu Null.
Das ist verständlich. Was nicht klar ist, ist, warum mein Out[]-Array dasselbe enthält wie Vladimirs Array:
Denn außerhalb der Schleife, wenn der Wert des Arrays bereits Null ist, wird i = get_global_id(0) dazu addiert.
Dann drucken Sie doch einfach alle Werte aus.
Ich habe die Sli der 590 fast zusammen, wann ist der nächste Test?
Ich habe die Sli der 590 fast zusammen, wann findet der nächste Test statt?