commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Luc Maisonobe (JIRA)" <j...@apache.org>
Subject [jira] Commented: (MATH-223) QRDecomposition can easily be made to run about twice as fast
Date Wed, 03 Sep 2008 08:53:44 GMT

    [ https://issues.apache.org/jira/browse/MATH-223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12627935#action_12627935
] 

Luc Maisonobe commented on MATH-223:
------------------------------------

Thanks.
Could you please have a look at the new implementation on the subversion repository, in 2.0
branch ?

Decomposition algorithms are currently being refactored a lot. One important modification
is to had directly solve method in the decomposition class, thus removing the need for most
user classes to call the getQ()/getR() or getU()/getL() methods.

I am currently working on the Singular Value Decomposition implementation (most probably using
the wonderful MRRR algorithm). Once this will be done, I intend to make a performance improvement
pass on all decomposition algorithms, in particular looking at cache-efficient implementations.
Some ideas may be extracted from  http://eprints.ma.man.ac.uk/210/01/covered/MIMS_ep2006_56.pdf
(this is for bi-diagonalisation and this is using BLAS, but you get the idea).

> QRDecomposition can easily be made to run about twice as fast
> -------------------------------------------------------------
>
>                 Key: MATH-223
>                 URL: https://issues.apache.org/jira/browse/MATH-223
>             Project: Commons Math
>          Issue Type: Improvement
>    Affects Versions: 1.2
>         Environment: Any
>            Reporter: John Mulcahy
>            Priority: Minor
>         Attachments: QRDecompositionImpl.java
>
>
> The QRDecomposition will run much faster (about twice as fast) if the qr and Q matrices
are calculated as their transposes and the transposition is sorted out in the getQ() method.
Using the transposes allows the loops to iterate over rows of the transposed matrices rather
than columns. It might also be useful to cache the Q matrix locally when it is generated in
case there are any subsequent calls to getQ() as this is the most expensive part of the decomposition.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message