# [SciPy-User] solving large sparse linear system with Laplacian matrix

Gael Varoquaux gael.varoquaux@normalesup....
Fri Oct 30 04:46:35 CDT 2009

```On Fri, Oct 30, 2009 at 05:28:13AM -0400, David Warde-Farley wrote:
> I'm not sure they exist in scipy.sparse.linalg, but looking into your
> problem a little further it appears that several options exist in
> LAPACK (but are not wrapped in SciPy, yet). Conveniently, they have
> built-in support for multiple right-hand-sides.

Ha, I didn't know that LAPACK had support for sparse representations of
multi-diagonal matrices. Cool!

> Solve a general banded system of linear equations:
> 	http://www.netlib.org/lapack/double/dgbsv.f

> Convert a symmetric banded matrix to symmetric tridiagonal form:
> 	http://www.netlib.org/lapack/double/dsbtrd.f

> The tridiagonal form is useful because you can then use this
> specialized routine for solving symmetric tridiagonal systems:
> 	http://www.netlib.org/lapack/double/dptsv.f

> So, if both memory and performance are at issue, I'd recommend looking
> into wrapping dsbtrd and dptsv with f2py (these are for doubles, hence
> the 'd' - if you're interested in single precision use the 's'
> versions). Note that they require you pass in the band matrix in a
> particular compressed format, which is kid of a pain, but on the other
> hand _will_ save you space over CSR or anything like that. The layout
> you need to use for symmetric band matrices is near the bottom of this
> page:

> 	http://www.netlib.org/lapack/lug/node124.html

Any chance there might be something useful in pysparse? That would remove
the wrapping work.

Gaël
```