[Scipy-svn] r6316 - trunk/scipy/linalg

scipy-svn at scipy.org scipy-svn at scipy.org
Fri Apr 9 03:45:21 EDT 2010


Author: cdavid
Date: 2010-04-09 02:45:21 -0500 (Fri, 09 Apr 2010)
New Revision: 6316

Modified:
   trunk/scipy/linalg/basic.py
   trunk/scipy/linalg/decomp.py
Log:
BUG: use correct string formatting in raising depending on info from lapack.

Thanks to Yaroslav Halchenko for the fix.

Modified: trunk/scipy/linalg/basic.py
===================================================================
--- trunk/scipy/linalg/basic.py	2010-04-08 14:35:50 UTC (rev 6315)
+++ trunk/scipy/linalg/basic.py	2010-04-09 07:45:21 UTC (rev 6316)
@@ -69,8 +69,8 @@
     x,info = getrs(lu,piv,b1,trans=trans,overwrite_b=overwrite_b)
     if info==0:
         return x
-    raise ValueError,\
-          'illegal value in %-th argument of internal gesv|posv'%(-info)
+    raise ValueError(
+          'illegal value in %d-th argument of internal gesv|posv' % (-info))
 
 def cho_solve((c, lower), b, overwrite_b=False):
     """Solve an equation system, a x = b, given the Cholesky factorization of a
@@ -100,8 +100,8 @@
     x,info = potrs(c,b1,lower=lower,overwrite_b=overwrite_b)
     if info==0:
         return x
-    raise ValueError,\
-          'illegal value in %-th argument of internal gesv|posv'%(-info)
+    raise ValueError(
+          'illegal value in %d-th argument of internal gesv|posv' % (-info))
 
 # Linear equations
 def solve(a, b, sym_pos=False, lower=False, overwrite_a=False, overwrite_b=False,
@@ -156,8 +156,8 @@
         return x
     if info>0:
         raise LinAlgError, "singular matrix"
-    raise ValueError,\
-          'illegal value in %-th argument of internal gesv|posv'%(-info)
+    raise ValueError(
+          'illegal value in %d-th argument of internal gesv|posv' % (-info))
 
 def solve_banded((l,u), ab, b, overwrite_ab=False, overwrite_b=False,
           debug=False):
@@ -214,8 +214,8 @@
         return x
     if info>0:
         raise LinAlgError, "singular matrix"
-    raise ValueError,\
-          'illegal value in %-th argument of internal gbsv'%(-info)
+    raise ValueError(
+          'illegal value in %d-th argument of internal gbsv' % (-info))
 
 def solveh_banded(ab, b, overwrite_ab=False, overwrite_b=False,
                   lower=False):
@@ -277,8 +277,8 @@
         return c, x
     if info>0:
         raise LinAlgError, "%d-th leading minor not positive definite" % info
-    raise ValueError,\
-          'illegal value in %d-th argument of internal pbsv'%(-info)
+    raise ValueError(
+          'illegal value in %d-th argument of internal pbsv' % (-info))
 
 def cholesky_banded(ab, overwrite_ab=False, lower=False):
     """Cholesky decompose a banded Hermitian positive-definite matrix
@@ -327,8 +327,8 @@
         return c
     if info>0:
         raise LinAlgError, "%d-th leading minor not positive definite" % info
-    raise ValueError,\
-          'illegal value in %d-th argument of internal pbtrf'%(-info)
+    raise ValueError(
+          'illegal value in %d-th argument of internal pbtrf' % (-info))
 
 
 # matrix inversion
@@ -370,7 +370,7 @@
 ##             return a_inv
 ##         if info>0: raise LinAlgError, "singular matrix"
 ##         if info<0: raise ValueError,\
-##            'illegal value in %-th argument of internal inv.getrf|getri'%(-info)
+##            'illegal value in %d-th argument of internal inv.getrf|getri'%(-info)
     getrf,getri = get_lapack_funcs(('getrf','getri'),(a1,))
     #XXX: C ATLAS versions of getrf/i have rowmajor=1, this could be
     #     exploited for further optimization. But it will be probably
@@ -399,8 +399,8 @@
         else: # clapack
             inv_a,info = getri(lu,piv,overwrite_lu=1)
     if info>0: raise LinAlgError, "singular matrix"
-    if info<0: raise ValueError,\
-       'illegal value in %-th argument of internal getrf|getri'%(-info)
+    if info<0: raise ValueError(
+       'illegal value in %d-th argument of internal getrf|getri' % (-info))
     return inv_a
 
 
@@ -428,8 +428,8 @@
     overwrite_a = overwrite_a or (a1 is not a and not hasattr(a,'__array__'))
     fdet, = get_flinalg_funcs(('det',),(a1,))
     a_det,info = fdet(a1,overwrite_a=overwrite_a)
-    if info<0: raise ValueError,\
-       'illegal value in %-th argument of internal det.getrf'%(-info)
+    if info<0: raise ValueError(
+       'illegal value in %d-th argument of internal det.getrf' % (-info))
     return a_det
 
 ### Linear Least Squares
@@ -495,8 +495,8 @@
     else:
         raise NotImplementedError,'calling gelss from %s' % (gelss.module_name)
     if info>0: raise LinAlgError, "SVD did not converge in Linear Least Squares"
-    if info<0: raise ValueError,\
-       'illegal value in %-th argument of internal gelss'%(-info)
+    if info<0: raise ValueError(
+       'illegal value in %d-th argument of internal gelss' % (-info))
     resids = asarray([], dtype=x.dtype)
     if n<m:
         x1 = x[:n]

Modified: trunk/scipy/linalg/decomp.py
===================================================================
--- trunk/scipy/linalg/decomp.py	2010-04-08 14:35:50 UTC (rev 6315)
+++ trunk/scipy/linalg/decomp.py	2010-04-09 07:45:21 UTC (rev 6316)
@@ -80,8 +80,8 @@
         alphar,alphai,beta,vl,vr,work,info = ggev(a1,b1,cvl,cvr,lwork,
                                                   overwrite_a,overwrite_b)
         w = (alphar+_I*alphai)/beta
-    if info<0: raise ValueError,\
-       'illegal value in %-th argument of internal ggev'%(-info)
+    if info<0: raise ValueError(
+       'illegal value in %d-th argument of internal ggev' % (-info))
     if info>0: raise LinAlgError,"generalized eig algorithm did not converge"
 
     only_real = numpy.logical_and.reduce(numpy.equal(w.imag,0.0))
@@ -188,8 +188,8 @@
                                     overwrite_a=overwrite_a)
             t = {'f':'F','d':'D'}[wr.dtype.char]
             w = wr+_I*wi
-    if info<0: raise ValueError,\
-       'illegal value in %-th argument of internal geev'%(-info)
+    if info<0: raise ValueError(
+       'illegal value in %d-th argument of internal geev' % (-info))
     if info>0: raise LinAlgError,"eig algorithm did not converge"
 
     only_real = numpy.logical_and.reduce(numpy.equal(w.imag,0.0))
@@ -536,8 +536,8 @@
         w = w[:m]
         if not eigvals_only:
             v = v[:, :m]
-    if info<0: raise ValueError,\
-    'illegal value in %-th argument of internal %s'%(-info, internal_name)
+    if info<0: raise ValueError(
+        'illegal value in %d-th argument of internal %s'%(-info, internal_name))
     if info>0: raise LinAlgError,"eig algorithm did not converge"
 
     if eigvals_only:
@@ -752,8 +752,8 @@
     overwrite_a = overwrite_a or (_datanotshared(a1,a))
     getrf, = get_lapack_funcs(('getrf',),(a1,))
     lu, piv, info = getrf(a,overwrite_a=overwrite_a)
-    if info<0: raise ValueError,\
-       'illegal value in %-th argument of internal getrf (lu_factor)'%(-info)
+    if info<0: raise ValueError(
+       'illegal value in %d-th argument of internal getrf (lu_factor)' % (-info))
     if info>0: warn("Diagonal number %d is exactly zero. Singular matrix." % info,
                     RuntimeWarning)
     return lu, piv
@@ -843,8 +843,8 @@
     overwrite_a = overwrite_a or (_datanotshared(a1,a))
     flu, = get_flinalg_funcs(('lu',),(a1,))
     p,l,u,info = flu(a1,permute_l=permute_l,overwrite_a = overwrite_a)
-    if info<0: raise ValueError,\
-       'illegal value in %-th argument of internal lu.getrf'%(-info)
+    if info<0: raise ValueError(
+       'illegal value in %d-th argument of internal lu.getrf' % (-info))
     if permute_l:
         return l,u
     return p,l,u
@@ -922,8 +922,8 @@
     else: # 'clapack'
         raise NotImplementedError,'calling gesdd from %s' % (gesdd.module_name)
     if info>0: raise LinAlgError, "SVD did not converge"
-    if info<0: raise ValueError,\
-       'illegal value in %-th argument of internal gesdd'%(-info)
+    if info<0: raise ValueError(
+       'illegal value in %d-th argument of internal gesdd' % (-info))
     if compute_uv:
         return u,s,v
     else:
@@ -1024,8 +1024,8 @@
     potrf, = get_lapack_funcs(('potrf',),(a1,))
     c,info = potrf(a1,lower=lower,overwrite_a=overwrite_a,clean=1)
     if info>0: raise LinAlgError, "matrix not positive definite"
-    if info<0: raise ValueError,\
-       'illegal value in %-th argument of internal potrf'%(-info)
+    if info<0: raise ValueError(
+       'illegal value in %d-th argument of internal potrf' % (-info))
     return c
 
 def cho_factor(a, lower=False, overwrite_a=False):
@@ -1071,8 +1071,8 @@
     potrf, = get_lapack_funcs(('potrf',),(a1,))
     c,info = potrf(a1,lower=lower,overwrite_a=overwrite_a,clean=0)
     if info>0: raise LinAlgError, "matrix not positive definite"
-    if info<0: raise ValueError,\
-       'illegal value in %-th argument of internal potrf'%(-info)
+    if info<0: raise ValueError(
+       'illegal value in %d-th argument of internal potrf' % (-info))
     return c, lower
 
 def cho_solve(clow, b):
@@ -1193,7 +1193,7 @@
 
     qr,tau,work,info = geqrf(a1,lwork=lwork,overwrite_a=overwrite_a)
     if info<0:
-        raise ValueError("illegal value in %-th argument of internal geqrf"
+        raise ValueError("illegal value in %d-th argument of internal geqrf"
             % -info)
 
     if not econ or M<N:
@@ -1230,7 +1230,7 @@
         Q,work,info = gor_un_gqr(qqr,tau,lwork=lwork,overwrite_a=1)
 
     if info < 0:
-        raise ValueError("illegal value in %-th argument of internal gorgqr"
+        raise ValueError("illegal value in %d-th argument of internal gorgqr"
             % -info)
 
     return Q, R
@@ -1273,8 +1273,8 @@
         qr,tau,work,info = geqrf(a1,lwork=-1,overwrite_a=1)
         lwork = work[0]
     qr,tau,work,info = geqrf(a1,lwork=lwork,overwrite_a=overwrite_a)
-    if info<0: raise ValueError,\
-       'illegal value in %-th argument of internal geqrf'%(-info)
+    if info<0: raise ValueError(
+       'illegal value in %d-th argument of internal geqrf' % (-info))
     gemm, = get_blas_funcs(('gemm',),(qr,))
     t = qr.dtype.char
     R = special_matrices.triu(qr)
@@ -1333,8 +1333,8 @@
         rq,tau,work,info = gerqf(a1,lwork=-1,overwrite_a=1)
         lwork = work[0]
     rq,tau,work,info = gerqf(a1,lwork=lwork,overwrite_a=overwrite_a)
-    if info<0: raise ValueError, \
-       'illegal value in %-th argument of internal geqrf'%(-info)
+    if info<0: raise ValueError(
+       'illegal value in %d-th argument of internal geqrf'%(-info)
     gemm, = get_blas_funcs(('gemm',),(rq,))
     t = rq.dtype.char
     R = special_matrices.triu(rq)
@@ -1410,8 +1410,8 @@
         lwork = result[-2][0]
     result = gees(lambda x: None,a,lwork=result[-2][0],overwrite_a=overwrite_a)
     info = result[-1]
-    if info<0: raise ValueError,\
-       'illegal value in %-th argument of internal gees'%(-info)
+    if info<0: raise ValueError(
+       'illegal value in %d-th argument of internal gees' % (-info))
     elif info>0: raise LinAlgError, "Schur form not found.  Possibly ill-conditioned."
     return result[0], result[-3]
 
@@ -1569,13 +1569,13 @@
     overwrite_a = overwrite_a or (_datanotshared(a1,a))
     gehrd,gebal = get_lapack_funcs(('gehrd','gebal'),(a1,))
     ba,lo,hi,pivscale,info = gebal(a,permute=1,overwrite_a = overwrite_a)
-    if info<0: raise ValueError,\
-       'illegal value in %-th argument of internal gebal (hessenberg)'%(-info)
+    if info<0: raise ValueError(
+       'illegal value in %d-th argument of internal gebal (hessenberg)' % (-info))
     n = len(a1)
     lwork = calc_lwork.gehrd(gehrd.prefix,n,lo,hi)
     hq,tau,info = gehrd(ba,lo=lo,hi=hi,lwork=lwork,overwrite_a=1)
-    if info<0: raise ValueError,\
-       'illegal value in %-th argument of internal gehrd (hessenberg)'%(-info)
+    if info<0: raise ValueError(
+       'illegal value in %d-th argument of internal gehrd (hessenberg)' % (-info))
 
     if not calc_q:
         for i in range(lo,hi):




More information about the Scipy-svn mailing list