[eigen-commits] commit/eigen: 5 new changesets

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


5 new commits in eigen:

https://bitbucket.org/eigen/eigen/commits/9da6c621d055/
Changeset:   9da6c621d055
User:        rmlarsen
Date:        2016-01-28 23:07:26+00:00
Summary:     Change Eigen's ColPivHouseholderQR to use the numerically stable norm downdate formula from http://www.netlib.org/lapack/lawnspdf/lawn176.pdf, which has been used in LAPACK's xGEQPF and xGEQP3 since 2006. With the old formula, the code chooses the wrong pivots and fails to correctly determine rank on graded matrices.

This change also adds additional checks for non-increasing diagonal in R11 to existing unit tests, and adds a new unit test with the Kahan matrix, which consistently fails for the original code.

Benchmark timings on Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz. Code compiled with AVX & FMA. I just ran on square matrices of 3 difference sizes.

Benchmark               Time(ns)     CPU(ns) Iterations
-------------------------------------------------------
Before:
BM_EigencolPivQR/64        53677       53627      12890
BM_EigencolPivQR/512    15265408    15250784         46
BM_EigencolPivQR/4k  15403556228 15388788368          2

After (non-vectorized version):
Benchmark               Time(ns)     CPU(ns) Iterations  Degradation
--------------------------------------------------------------------
BM_EigencolPivQR/64        63736       63669      10844         18.5%
BM_EigencolPivQR/512    16052546    16037381         43          5.1%
BM_EigencolPivQR/4k  15149263620 15132025316          2         -2.0%

Performance-wise there seems to be a ~18.5% degradation for small (64x64) matrices, probably due to the cost of more O(min(m,n)^2) sqrt operations that are not needed for the unstable formula.
Affected #:  2 files

https://bitbucket.org/eigen/eigen/commits/37db0155cfbe/
Changeset:   37db0155cfbe
User:        rmlarsen
Date:        2016-02-01 19:10:30+00:00
Summary:     merging.
Affected #:  45 files

https://bitbucket.org/eigen/eigen/commits/6901ee7288f8/
Changeset:   6901ee7288f8
User:        rmlarsen
Date:        2016-02-03 17:55:30+00:00
Summary:     Make the array of directly compute column norms a member to avoid allocation in computeInPlace.
Affected #:  1 file

https://bitbucket.org/eigen/eigen/commits/9cef618eb175/
Changeset:   9cef618eb175
User:        rmlarsen
Date:        2016-02-03 18:12:10+00:00
Summary:     Fix bad line break. Don't repeat Kahan matrix test since it is deterministic.
Affected #:  2 files

https://bitbucket.org/eigen/eigen/commits/f881df1ee69c/
Changeset:   f881df1ee69c
User:        ggael
Date:        2016-02-03 20:37:06+00:00
Summary:     Merged in rmlarsen/eigen (pull request #161)

Change Eigen's ColPivHouseholderQR to use  numerically stable norm downdate formula
Affected #:  2 files

Repository URL: https://bitbucket.org/eigen/eigen/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.



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