[Scipy-svn] r2606 - in trunk/Lib/linsolve: . umfpack/tests
scipy-svn at scipy.org
scipy-svn at scipy.org
Wed Jan 24 08:53:26 EST 2007
Author: rc
Date: 2007-01-24 07:53:11 -0600 (Wed, 24 Jan 2007)
New Revision: 2606
Modified:
trunk/Lib/linsolve/linsolve.py
trunk/Lib/linsolve/umfpack/tests/test_umfpack.py
Log:
sparse rhs in spsolve
Modified: trunk/Lib/linsolve/linsolve.py
===================================================================
--- trunk/Lib/linsolve/linsolve.py 2007-01-24 11:34:56 UTC (rev 2605)
+++ trunk/Lib/linsolve/linsolve.py 2007-01-24 13:53:11 UTC (rev 2606)
@@ -54,6 +54,9 @@
return mat
def spsolve(A, b, permc_spec=2):
+ if isspmatrix( b ):
+ b = b.toarray()
+
if b.ndim > 1:
if max( b.shape ) == b.size:
b = b.squeeze()
Modified: trunk/Lib/linsolve/umfpack/tests/test_umfpack.py
===================================================================
--- trunk/Lib/linsolve/umfpack/tests/test_umfpack.py 2007-01-24 11:34:56 UTC (rev 2605)
+++ trunk/Lib/linsolve/umfpack/tests/test_umfpack.py 2007-01-24 13:53:11 UTC (rev 2606)
@@ -63,6 +63,15 @@
#print "Error: ", a*x-b
assert_array_almost_equal(a*x, b)
+ def check_solve_sparse_rhs(self):
+ """Solve with UMFPACK: double precision, sparse rhs"""
+ linsolve.use_solver( useUmfpack = True )
+ a = self.a.astype('d')
+ b = csc_matrix( self.b )
+ x = linsolve.spsolve(a, b)
+ #print x
+ #print "Error: ", a*x-b
+ assert_array_almost_equal(a*x, self.b)
def setUp(self):
self.a = spdiags([[1, 2, 3, 4, 5], [6, 5, 8, 9, 10]], [0, 1], 5, 5)
More information about the Scipy-svn
mailing list