Summary: | LDLT isPositive incorrectly returns false for a positive semidefinite matrix | ||||||
---|---|---|---|---|---|---|---|
Product: | Eigen | Reporter: | Charles Collicutt <charles.collicutt> | ||||
Component: | Cholesky | Assignee: | Jitse Niesen <jitseniesen> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Unknown | CC: | gael.guennebaud, jitseniesen | ||||
Priority: | Normal | ||||||
Version: | 3.2 | ||||||
Hardware: | All | ||||||
OS: | All | ||||||
Whiteboard: | |||||||
Bug Depends on: | |||||||
Bug Blocks: | 558 | ||||||
Attachments: |
|
Description
Charles Collicutt
2014-02-04 17:34:36 UTC
Typo: "it returns false on some positive definite matrices" should be "it returns false on some positive semidefinite matrices". Also, I've tested this with a fresh checkout from bitbucket.org and it behaves the same as the 3.2.0 release. I can confirm this. Even worse, isPositive and isNegative both return false for the zero matrix, which is of course both positive semi-definite and negative semi-definite. It does not seem that the case of the zero matrix is taken into account in the current implementation. In the presence of round-off error, the difference between positive definite and positive semi-definite is of course rather tricky, but for these matrices we should be able to do the right thing. Related may be the fix of bug 608. I just committed a fix. changeset: 5751:b7308ae775bb user: Jitse Niesen <jitse@maths.leeds.ac.uk> date: Thu Feb 06 11:06:06 2014 +0000 summary: Fix bug 736: LDLT isPositive returns false for a positive semidefinite matrix changeset: 5752:6bb4d49bca4e branch: 3.2 tag: tip parent: 5748:79cff6ee0ed5 user: Jitse Niesen <jitse@maths.leeds.ac.uk> date: Thu Feb 06 11:06:06 2014 +0000 summary: Fix bug 736: LDLT isPositive returns false for a positive semidefinite matrix -- GitLab Migration Automatic Message -- This bug has been migrated to gitlab.com's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.com/libeigen/eigen/issues/736. |