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

Luc Maisonobe commented on MATH-157:
------------------------------------

Looking again at this issue, as we are now looking for 2.0 which should include 
SVD.
We now have two very different proposals, a simple one from Remi and a more 
rich from Andrew.
The simple one fits in the existing structure while the rich one introduces a 
new org.apache.commons.math.linear.decomposition package with several 
utilities, among which SVD.
Both are more than a few lines and hence can be included in [math] only after 
some IP clearance has been done.
Some work is also needed to match our existing code conventions, this is a 
detail and can be handled later.

For now, we have to decide which proposal is chosen and to clear IP stuff.
My personal choice would be to choose the rich version from Andrew, because it 
introduces many interesting things. What do other people think ?

> Add support for SVD.
> --------------------
>
>                 Key: MATH-157
>                 URL: https://issues.apache.org/jira/browse/MATH-157
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 1.1
>            Reporter: Tyler Ward
>            Assignee: Luc Maisonobe
>             Fix For: 2.0
>
>         Attachments: svd.tar.gz, svd2.tar.gz, svd_src.zip
>
>
> SVD is probably the most important feature in any linear algebra package, 
> though also one of the more difficult. 
> In general, SVD is needed because very often real systems end up being 
> singular (which can be handled by QR), or nearly singular (which can't). A 
> good example is a nonlinear root finder. Often the jacobian will be nearly 
> singular, but it is VERY rare for it to be exactly singular. Consequently, LU 
> or QR produces really bad results, because they are dominated by rounding 
> error. What is needed is a way to throw out the insignificant parts of the 
> solution, and take what improvements we can get. That is what SVD provides. 
> The colt SVD algorithm has a serious infinite loop bug, caused primarily by 
> Double.NaN in the inputs, but also by underflow and overflow, which really 
> can't be prevented. 
> If worried about patents and such, SVD can be derrived from first principals 
> very easily with the acceptance of two postulates.
> 1) That an SVD always exists.
> 2) That Jacobi reduction works. 
> Both are very basic results from linear algebra, available in nearly any text 
> book. Once that's accepted, then the rest of the algorithm falls into place 
> in a very simple manner. 

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

Reply via email to