Merged
Merged
Conversation
|
|
||
| static array A; | ||
| static array spA; // Sparse A | ||
| static array x0; |
| array r = b - matmul(A, x); | ||
| array p = r; | ||
|
|
||
| for (int i = 0; i < maxIter; ++i) { |
| x = x + tile(alpha, Ap.dims())*p; | ||
| array beta_num = dot(r, r); | ||
| array beta = beta_num/alpha_num; | ||
| p = r + tile(beta, p.dims())*p; |
| array alpha_den = dot(p, Ap); | ||
| array alpha = alpha_num/alpha_den; | ||
| r = r - tile(alpha, Ap.dims())*Ap; | ||
| x = x + tile(alpha, Ap.dims())*p; |
| array alpha_num = dot(r, r); | ||
| array alpha_den = dot(p, Ap); | ||
| array alpha = alpha_num/alpha_den; | ||
| r = r - tile(alpha, Ap.dims())*Ap; |