[Scipy-svn] r3631 - trunk/scipy/sandbox/multigrid
scipy-svn@scip...
scipy-svn@scip...
Mon Dec 10 21:45:17 CST 2007
Author: wnbell
Date: 2007-12-10 21:45:14 -0600 (Mon, 10 Dec 2007)
New Revision: 3631
Modified:
trunk/scipy/sandbox/multigrid/utils.py
Log:
make symmetric_rescaling work for general csr mats
Modified: trunk/scipy/sandbox/multigrid/utils.py
===================================================================
--- trunk/scipy/sandbox/multigrid/utils.py 2007-12-10 23:25:35 UTC (rev 3630)
+++ trunk/scipy/sandbox/multigrid/utils.py 2007-12-11 03:45:14 UTC (rev 3631)
@@ -148,11 +148,11 @@
D_sqrt_inv = 1.0/D_sqrt
D_sqrt_inv[mask] = 0
- #TODO time this against simple implementation
- data = A.data * D_sqrt_inv[A.indices]
- data *= D_sqrt_inv[arange(A.shape[0]).repeat(diff(A.indptr))]
+ Acoo = A.tocoo(copy=False)
+ data = A.data[:A.nnz] * D_sqrt_inv[Acoo.row]
+ data *= D_sqrt_inv[Acoo.col]
- DAD = A.__class__((data,A.indices,A.indptr),dims=A.shape)
+ DAD = A.__class__((data,A.indices[:A.nnz],A.indptr),dims=A.shape)
return D_sqrt,D_sqrt_inv,DAD
More information about the Scipy-svn
mailing list