Re: [eigen] banded matrices in Eigen |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen <eigen@xxxxxxxxxxxxxxxxxxx>
- Subject: Re: [eigen] banded matrices in Eigen
- From: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
- Date: Thu, 7 Feb 2013 09:18:50 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:content-type:content-transfer-encoding; bh=ELDB6Bbce09Is7vkipDoH+qWPWrH1jnq0vVhBqpkD+A=; b=dN0TzMVEmh7sQ0bb4LdZihDgiOIRnE0EOVi6yzZf+e8+LIAZuAvYFmhOZ1ppXiCRy1 6v+dxxH/vU2Je0AexCKEL11rGbPvpNJEXT7m8iT3zpzKzu+e2rxWXAE6hXYy1+1ak4T1 glrAt8ZJA3EAlDkb1lDe8wnszX6UPKj28/nBdaWSsZAqITFYfxn27Dxss3YFxRSGYXC4 Btz8oe3VNremCvX+AWLJUoMTUPrBqJLA6NCZezCNOLYHSeQ3XBuZI4qTJgS7NqQYCGYK /j8jHnlxdm6dE8AKUSJQzqg/4T0lsLZ7fQJeGUPZgghqTcYYYzzpHj1yhswMr9pZh6F6 Jp+Q==
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
>
>