|Re: [eigen] Skyline matrix|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Skyline matrix
- From: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
- Date: Mon, 19 Oct 2009 19:45:24 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type; bh=JX5RRzXkYoOmKD6H0UJF195QG8KUTW7GJ0ryPDPc1MM=; b=iYQn2qq5/L1GezYDrL8wbJDGNxjrefoHKRYT5uA2NuHxGpLX6oEx29dAx6biuij6fY iWOALSrd2TDyenI62VHZAcFqzgCD+mNcf3H9LAqnozmpLz2eura4cgK0k0CFRRifG7lz zUutqJhRjYIOd1xA1w4NXX0WMZDK8bGLlLLLE=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=R8yPfyF6FKvkozgr2gcEbEFtpyWI7/yS+ea8IN6Wijz0rWAMbpqSnCHpSnj70KBlKL GuPrbXO2rUpA85PEpWZFv27JtPIYs+Wp1g13gNThFXEbdvHeN4fedWxg3r3jsaY/jX0P 4FN7DrusUc3OzaX9p40pDBXjs4fjWmarH/lnw=
this is not an easy question because we are still unsure how to manage efficiently and with minimal code all these kind of "special" matrices.
Of course an easy solution would be to make it inherit SparseMatrixBase and let the generic algorithms based on sparse iterators do the job. However, this approach won't be optimal because the iterators won't take advantage of the specificity of a SkylineMatrix which, e.g., should allow vectorization.
Actually skyline matrices are very similar to banded matrices, and in particular it seems to me that they are similar enough to share the same algorithms. So for instance these two kind of matrices could inherit the same matrix base and the algorithms could be implemented in a generic way via the concept of "range inner vector" which is a column (or a row) vector with an associated start index... We also need efficient basic operators dealing with such vector. E.g. the addition of two such vector can be efficiently done by first copying the non overlapping part (start and end), and then sum the overlapping part using Eigen's core module feature.
These are just some initial thoughts and the discussion is very open!
On Mon, Oct 19, 2009 at 12:55 PM, guillaume saupin <guillaume.saupin@xxxxxx>
We are planning to use your library in our projects, but we need a skyline matrix. Therefore I'd like to implement one for eigen, but I don't now where to start.
Is there a specific class that can be a good starting point / skeleton to start with ? The SparseMatrixBase might be a good choice.
Should this SkylineMatrix inherit from SparseMatrixBase, or be a separate class ?