|Re: [eigen] Conjugate gradient|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Conjugate gradient
- From: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
- Date: Sun, 18 Sep 2011 13:09:24 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=YSQg9ae0o0dRX7XnmdSRvL1B4e3lOqasREOtIne41pk=; b=SQDDrS/3mqo2xY4NLZkx/LbXSbrxj1CNXbaFBPSDVaKzkEc8UNA6XLub2Wes24lUuk /Au6RiCmUE07ZB/W40kd6nAMAkHDsSurDvoDZ12hJYL3YffMbvMAzdU9NfS+hIalhjsD y4KlE2DJUwpgWEajI+uNyuDBTMIKIvyiI6Cr4=
Hi, sorry for the very late reply.
On Tue, Jul 26, 2011 at 11:02 AM, Basil Fierz <basil.fierz@xxxxxxxxxxx> wrote:
> Hi Gael,
> I shortly looked at your implementation of the CG algorithm. It's a very nice work, I don't think that the API is cumbersome.
> * What do you think about adding the "optimization" suggested in "Rodriguez-Navarro, Susin - Non structured meshes for Cloth GPU simulation using FEM"?
> Basically, what they do is to regroup the computations such that all dot-products happen in one place at the costs of doing 2 more of them. This would speed up parallel implementations (OpenMP) of the vector part.
I've not looked at this paper yet, but usually the bottleneck is the
sparse matrix - vector product, and the dot products are quite
marginal, but why not...
> * For some problems it is possible to evaluate the matrix vector product directly, without the need to resort to a generic matrix, as long as the used function has the same properties as the matrix.
> What do you think about adding the possibility to replace the matrix vector product with a custom expression?
You can already do that, that's the power of c++: simply wrap your
representation into a lightweight structure and overload operator*
between this type and Eigen::DenseBase<Derived>....
> -----Original Message-----
> From: Listengine [mailto:listengine@xxxxxxxxxxxxxxxxx] On Behalf Of Gael Guennebaud
> Sent: Dienstag, 26. Juli 2011 10:37
> To: eigen
> Subject: [eigen] Conjugate gradient
> finally I've committed a conjugate gradient solver in Eigen. Currently it is in unsupported/Eigen/src/IterativesSolvers/
> Its design may sound a bit cumbersome at a first glance but I designed it this way to be compatible with the other decomposition based solvers.
> Have a look at its documentation for typical usage examples., and discover the proposed API.
> Any suggestions regarding any aspects (API or implementation) are very welcome.
> I also have at hand a BiCGSTAB, a block diagonal preconditioner and an incomplete LLT that needs some polishing....