[Scipy-svn] r3889 - trunk/scipy/splinalg/isolve
scipy-svn at scipy.org
scipy-svn at scipy.org
Fri Feb 1 23:26:53 EST 2008
Author: wnbell
Date: 2008-02-01 22:26:51 -0600 (Fri, 01 Feb 2008)
New Revision: 3889
Modified:
trunk/scipy/splinalg/isolve/minres.py
Log:
disable checking by default
Modified: trunk/scipy/splinalg/isolve/minres.py
===================================================================
--- trunk/scipy/splinalg/isolve/minres.py 2008-02-01 23:29:37 UTC (rev 3888)
+++ trunk/scipy/splinalg/isolve/minres.py 2008-02-02 04:26:51 UTC (rev 3889)
@@ -4,7 +4,7 @@
from utils import make_system
def minres(A, b, x0=None, shift=0.0, tol=1e-5, maxiter=None, xtype=None,
- M=None, callback=None, show=False, check=True):
+ M=None, callback=None, show=False, check=False):
"""Use the Minimum Residual Method (MINRES) to solve Ax=b
MINRES minimizes norm(A*x - b) for the symmetric matrix A. Unlike
@@ -90,6 +90,18 @@
beta1 = sqrt( beta1 )
if check:
+ # are these too strict?
+
+ # see if A is symmetric
+ w = matvec(y)
+ r2 = matvec(w)
+ s = inner(w,w)
+ t = inner(y,r2)
+ z = abs( s - t )
+ epsa = (s + eps) * eps**(1.0/3.0)
+ if z > epsa:
+ raise ValueError('non-symmetric matrix')
+
# see if M is symmetric
r2 = psolve(y)
s = inner(y,y)
@@ -99,16 +111,7 @@
if z > epsa:
raise ValueError('non-symmetric preconditioner')
- # see if A is symmetric
- w = matvec(y)
- r2 = matvec(w)
- s = inner(w,w)
- t = inner(y,r2)
- epsa = (s + eps) * eps**(1.0/3.0)
- if z > epsa:
- raise ValueError('non-symmetric matrix')
-
# Initialize other quantities
oldb = 0; beta = beta1; dbar = 0; epsln = 0;
qrnorm = beta1; phibar = beta1; rhs1 = beta1;
More information about the Scipy-svn
mailing list