From 4f3d079afad379ddd5a338b73da27362e5d00f91 Mon Sep 17 00:00:00 2001 From: jiri Date: Fri, 27 Oct 2006 13:40:09 +0000 Subject: [PATCH] *** empty log message *** --- conjgrad.h | 10 +++++++--- gmres.h | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/conjgrad.h b/conjgrad.h index f27d590..d9d9905 100644 --- a/conjgrad.h +++ b/conjgrad.h @@ -13,7 +13,7 @@ template -extern void conjgrad(const Matrix &bigmat, const NRVec &b, NRVec &x, const bool doguess, const double tol, const int itmax, const bool verbose, bool issquare,const bool precondition) +extern bool conjgrad(const Matrix &bigmat, const NRVec &b, NRVec &x, const bool doguess, const double tol, const int itmax, const bool verbose, bool issquare,const bool precondition) { int m=bigmat.nrows(); int n=bigmat.ncols(); @@ -47,7 +47,11 @@ for(int iter=0; iter<= itmax; iter++) if(verbose) cout << "conjgrad: iter= "<=0;i--) c[i] = (d[i]-xdot(k-i,&R(i,i+1),1,&c[i+1],1)) / R(i,i); //x contains ev. initial guess and on return the solution template -void gmres(const Matrix &bigmat, const NRVec &b, NRVec &x, const bool doguess=1, const double eps=1e-7, const int MAXIT=50, const bool verbose=1, bool square=1,const bool precondition=1, int neustart=0, const int incore=1) +bool gmres(const Matrix &bigmat, const NRVec &b, NRVec &x, const bool doguess=1, const double eps=1e-7, const int MAXIT=50, const bool verbose=1, bool square=1,const bool precondition=1, int neustart=0, const int incore=1) { int zeilen=bigmat.nrows(); int spalten=bigmat.ncols(); @@ -232,6 +232,6 @@ myreturn: delete[] v; if(!incore) delete st; -if(flag) laerror("no convergence in GMRES"); +return !flag; }