Re: [eigen] Complex symmetric Cholesky factorization |

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]

*To*: eigen <eigen@xxxxxxxxxxxxxxxxxxx>*Subject*: Re: [eigen] Complex symmetric Cholesky factorization*From*: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>*Date*: Sun, 16 Aug 2015 15:00:43 +0200*Dkim-signature*: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=3c6We2t+wN4YBxifsmVz/1mD8RBoZ1IiQqF+cKH+wW0=; b=nDoEUjAYeL350L97jI6K1JsJw6CSAEwvt+3MkOCJ6gb4+x/OMqCCcOwryl4NsEcYXa xdZ+QAme9GN/Z5svsEDQfC2R2JKyg+wXuV8s5mvbRve2uA0uVWjNZo98iUFCCRpUUZeR CSBSop1IMAqgYXWdkXb/EgGhGKOMPTiDbTQU7aHRrV8J0ec5S9C34RmN5MUbgqKLYsTh RcXtyvtN01oaXu0gcIOIl1/imttBJgp6p0CyL4vuHM8FMd+ufOnqQCfY5f9EIrpFcjf/ /3eyXRwTLnXhL20YPW9Ez4+GjIQ3P6Z8p46Rxmbe2NegcNkzq/qDjFEL211D5boG/2P/ 5Lrw==

On Thu, Aug 13, 2015 at 9:28 PM, John Daily <John.Daily@xxxxxxxxxxxxxxxxx> wrote:

Greetings, certain symmetric complex (non-Hermitian) matrices admit an LL^T/LDL^T factorization[1] (rather than an LL^H LDL^H). I am working with sparse matrices and the code changes to support this are minimal and are all encompassed in Simplicial_Cholesky_impl.h, in the factorize method, as well as the updated solve calling transpose rather than selfadjointView. I have two questions:

Yes we are aware of that and this has been a planed feature for a long time.

2) If so what would be an acceptable way to do this, that would not cause surprise to users? It would seem that a separate template parameter or even function call would make this explicit, such as instead of .factorize() calling .factorizeComplexSymmetric() or something.

We already have a SelfAdjoint and Symmetric enums to distinguish between the two cases, so perhaps an idea would be to allow to pass Symmetric to the second template parameter, like:

[Simplicial]L[D]LT<MatrixType, {{Lower,Upper,Lower|Upper}[|Symmetric] , Symmetric}>

For consistency I'm including the dense factorizations here.

Actually, this solution is already the one we adopted for PardisoLLT<> and PardisoLDLT<>.

In a second time, for consistency, we should also add a symmetricView<>() method to [Sparse]MatrixBase<> returning a SelfAdjointView<...,{Upper,Lower}[|Symmetric]>. Likewise, we could also think about adding templated variants of adjoint() / selfadjointView() to ease writing generic code with true compile-time branches...

cheers,

gael

**Follow-Ups**:**Re: [eigen] Complex symmetric Cholesky factorization***From:*John Daily

**References**:**[eigen] Complex symmetric Cholesky factorization***From:*John Daily

**Messages sorted by:**[ date | thread ]- Prev by Date:
**RE: [eigen] Compiling errors in Nuttx environment** - Next by Date:
**RE: [eigen] Compiling errors in Nuttx environment** - Previous by thread:
**[eigen] Complex symmetric Cholesky factorization** - Next by thread:
**Re: [eigen] Complex symmetric Cholesky factorization**

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