Re: [eigen] banded matrices in Eigen

```Hi,

Sorry for replying late, I haven't had time to look at Eigen in the last couple weeks. As time permits, I'd like to start looking at adding some more features for banded matrices to Eigen. Adding a NonzeroRange object seems like a good place to start. Since I'm not familiar with the Eigen source code, where do you think is a good place for me to start experimenting?

Thanks,
Deaglan

----- Original Message -----
From: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
To: eigen <eigen@xxxxxxxxxxxxxxxxxxx>
Sent: Thu, 07 Feb 2013 03:18:50 -0500 (EST)
Subject: Re: [eigen] banded matrices in Eigen

Hi Deaglan,

sorry for replying so late. The Skyline module should indeed be
ignored, and the goal was to support standard products and
factorizations on BandMatrix. So any help in this direction is very
welcomed. Implementation-wise my idea was to introduce a new kind of
object, let's call it a NonzeroRange (NZR in short) that represents a
vector (e.g., a column, row, or any subvector) whose non-zero are
included into a given interval. Both Dense and Band expressions would
be equipped with variants of col() and row() returning such NZR
objects. NZR would be associated to a special assignment
implementation calling the equivalent operation on the nonzero range
of coefficient only. E.g.:

dense.nonzeroCol(i) += 1.2 * band.nonzeroCol(i);

would call:

dense.col(i).segment(band.nonzeroCol(i).start(),
band.nonzeroCol(i).nonZeros()) += 1.2 * band.coeffs();

This way, the non-blocked versions of our product and factorization
algorithms would seamlessly handle dense and banded storage. This was
the general idea. Maybe this strategy contains some shortcomings...

cheers,
gael

On Wed, Jan 30, 2013 at 9:24 PM, Deaglan O Halligan <dhalliga@xxxxxxxxxx> wrote:
> Hi,
>
> I'm a grad student working on Trilinos, a collection of algorithms for large-scale scientific computation from Sandia Labs, and a related fluid dynamics application code called Tramonto. We're implementing algorithms that use David Bailey's qdlib data types, and this work led us to look at Eigen for doing a few necessary dense computations. I'm currently working on adding some Eigen code to Trilinos as a third-party-library (TPL).
>
> So far I've added Eigen's householderQR and PartialPivLU to Trilinos. I'm also interested in adding the symmetric eigensolver and a banded LU factorization. I tried using Eigen's unsupported Skyline module but ran into problems, and I'm not sure what the status of that module is. I then realized that there is a BandMatrix class that uses the banded storage format, and there's been some mention on forum threads about more functionality being added for the BandMatrix class. It seems like the BandMatrix class is where future development will go on and I should ignore the Skyline module? I'm very interested in knowing what the status of BandMatrix is and how I can help with further development (in particular implementing LU and products) if that's needed.
>
> Thanks,
> Deaglan Halligan
>
>

```

 Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/