[
https://issues.apache.org/jira/browse/MATH-630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Christopher Nix updated MATH-630:
---------------------------------
Attachment: RRQRDecomposition.patch
As a starter for ten, I've attached a patch that:
1. Adds an RRQRDecomposition interface extending the current QRDecomposition.
This interface adds a getRank() method and a getP() method to obtain the
permutation matrix used in column-pivoting (Are there RRQR implementations that
don't column pivot?)
2. Adds a RRQRDecompositionImpl class, implementing the interface above, and
extending the QRDecompositionImpl class to make use of existing code.
3. Adapts QRDecompositionImpl to allow access to currently private variables
and methods. I've also split the existing code into a
performHouseholderReflection method that is useful to the RRQRDecompositionImpl
sub-class.
The getRank() method here is notably quicker than the
SingularValueDecompositionImpl method on large random matrices if tried, but
I'll admit that I've coded this ad-hoc.
It still needs unit tests.
Hopefully, a small step in the right direction.
Chris
> Rank Revealing QR Decomposition missing
> ---------------------------------------
>
> Key: MATH-630
> URL: https://issues.apache.org/jira/browse/MATH-630
> Project: Commons Math
> Issue Type: Improvement
> Affects Versions: 3.0
> Reporter: Christopher Nix
> Priority: Minor
> Attachments: RRQRDecomposition.patch
>
>
> The current QR decomposition implementation performs no column pivoting and
> is thus not rank revealing.
> A rank revealing QR decomposition could determine rank more efficiently,
> though not always as reliably, as from the Singular Value Decomposition.
> Additionally the rank revealing decomposition can be used in least-squares
> algorithms on rank-deficient matrices.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira