RE: [eigen] Symmetric Indefinite Solver Support |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: "eigen@xxxxxxxxxxxxxxxxxxx" <eigen@xxxxxxxxxxxxxxxxxxx>
- Subject: RE: [eigen] Symmetric Indefinite Solver Support
- From: "Cowing-Zitron, Christopher" <ccowingzitron@xxxxxxxx>
- Date: Thu, 25 Jul 2013 00:55:43 +0000
- Accept-language: en-US
- Dkim-signature: v=1; a=rsa-sha256; c=simple/simple; d=ucsd.edu; i=ccowingzitron@xxxxxxxx; q=dns/txt; s=041709-iport; t=1374713746; x=1406249746; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=BiI0kqv7kohfmeyFzfJnzkrqM/6g6Fy7OcNVaoqrpLQ=; b=YbuZfMvmmW0OGLzqQpQ0C+zBgdNn7NV1eWADn4Zl8e2G+WPKggpzCn9C k8jQYZ7I35i5KrdIiQqYmiT8KRK8VBDCfvm989LkkuvIYlTQNc2FFGQi3 lD2kEOexHpYH4SULJZdHeUXkqu55xtsHcEsUF+STjYYuZUp1FcyVvCC2o s=;
- Thread-index: Ac6IvkNCb0OcIiG8RWSfuUtij7djGQAQ7vyA//+ejbg=
- Thread-topic: [eigen] Symmetric Indefinite Solver Support
Hi Christoph,
I went through the code of the Pardiso and Pastix wrappers, and they do both, in their LDLt factorization init() calls, set the appropriate flags for the respective solver to do 2x2 pivoting for indefinite matrices. But the comments in the code (i.e. lines 607-620 in PaStiXSupport.h) say that the solver requires the matrix to be positive definite. So it does appear that it is simply a mistake in the comments/documentation.
Would it still be useful to the Eigen community for me to contribute HSL wrappers?
-- Chris
________________________________________
From: Christoph Hertzberg [chtz@xxxxxxxxxxxxxxxxxxxxxxxx]
Sent: Wednesday, July 24, 2013 4:41 PM
To: eigen@xxxxxxxxxxxxxxxxxxx
Subject: Re: [eigen] Symmetric Indefinite Solver Support
On 25.07.2013 00:44, Cowing-Zitron, Christopher wrote:
> I've been going through the Eigen documentation, and it appears that
> all the symmetry-preserving factorizations available require the
> matrix to be positive definite. Obviously, this is necessarily the
SelfAdjointEigenSolver also works on indefinite matrices (of course
that's a bad choice, if you basically want to solve a linear system).
> case for the built-in LLt and LDLt factorizations, as they don't do
> any pivoting.
LDLt does pivoting (but only 1x1) and it only requires the matrix to be
semidefinite (positive or negative). It also works for some indefinite
matrices (those that don't require 2x2 pivoting, e.g. [1 0; 0 -1] is no
problem).
> But the documentation also claims that the Pardiso and
> Pastix LDLt modules only support definite matrices, whereas I know
> both of those libraries do support 2x2 pivoting for indefinite
> problems. Is this simply an error in the Eigen documentation? Or have
It's certainly possible that there is an error in the documentation.
Did you try out what happens when you pass an indefinite matrix to
Pardiso/Pastix?
cheers,
Christoph
--
----------------------------------------------
Dipl.-Inf., Dipl.-Math. Christoph Hertzberg
Cartesium 0.049
Universität Bremen
Enrique-Schmidt-Straße 5
28359 Bremen
Tel: +49 (421) 218-64252
----------------------------------------------