a.apply(x,q); saxpy(-1.0f,q,r); // r = b-Ax float bnorm = sqrt(sdot(b,b)); float rnorm = sqrt(sdot(r,r)); float rnormBegin = rnorm; float rnormSmall = bnorm*_small; float delta = sdot(r,s); // r's = r'Mr int iter; log.fine("msolve: bnorm="+bnorm+" rnorm="+rnorm); log.finer(" iter="+iter+" rnorm="+rnorm+" ratio="+rnorm/rnormBegin); float alpha = delta/sdot(d,q); // alpha = r'Mr/d'Ad delta = sdot(r,s); // delta = r's = r'Mr float beta = delta/deltaOld; rnorm = sqrt(sdot(r,r));
saxpy(-1.0f,q,r); // r = b-Ax float delta = sdot(r,r); // delta = r'r float bnorm = sqrt(sdot(b,b)); float rnorm = sqrt(delta); float rnormBegin = rnorm; log.finer(" iter="+iter+" rnorm="+rnorm+" ratio="+rnorm/rnormBegin); float dq = sdot(d,q); // d'q = d'Ad float alpha = delta/dq; // alpha = r'r/d'Ad delta = sdot(r,r); // delta = r'r float beta = delta/deltaOld;
float[][][] s = new float[n3][n2][n1]; scopy(b,r); a.apply(x,q); saxpy(-1.0f,q,r); // r = b-Ax float bnorm = sqrt(sdot(b,b)); float rnorm = sqrt(sdot(r,r)); float rnormBegin = rnorm; float rnormSmall = bnorm*_small; float delta = sdot(r,s); // r's = r'Mr int iter; log.fine("msolve: bnorm="+bnorm+" rnorm="+rnorm); log.finer(" iter="+iter+" rnorm="+rnorm+" ratio="+rnorm/rnormBegin); float alpha = delta/sdot(d,q); // alpha = r'Mr/d'Ad delta = sdot(r,s); // delta = r's = r'Mr float beta = delta/deltaOld; rnorm = sqrt(sdot(r,r));
scopy(b,r); a.apply(x,q); saxpy(-1.0f,q,r); // r = b-Ax scopy(r,d); float delta = sdot(r,r); float bnorm = sqrt(sdot(b,b)); float rnorm = sqrt(delta); float rnormBegin = rnorm; log.finer(" iter="+iter+" rnorm="+rnorm+" ratio="+rnorm/rnormBegin); a.apply(d,q); float dq = sdot(d,q); float alpha = delta/dq; saxpy( alpha,d,x); delta = sdot(r,r); float beta = delta/deltaOld; sxpay(beta,r,d);