[
https://issues.apache.org/jira/browse/MATH-274?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Luc Maisonobe resolved MATH-274.
--------------------------------
Resolution: Fixed
Assignee: Luc Maisonobe
fixed in subversion repository as of r 781845
Concerning the exception, it is not possible to check the matrix without trying
to decompose it, so providing an external check would be a waste as it would
already do almost everything. In fact, it was exactly the reason for the bug:
the check was done too early on the raw matrix, not on the matrix after some
changes have been made to its elements.
thanks for the report
> testing for symmetric positive definite matrix in CholeskyDecomposition
> -----------------------------------------------------------------------
>
> Key: MATH-274
> URL: https://issues.apache.org/jira/browse/MATH-274
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.0
> Environment: Mac OS X, NetBeans
> Reporter: Manuel Rossetti
> Assignee: Luc Maisonobe
> Priority: Minor
> Fix For: 2.0
>
>
> I used this matrix:
> double[][] cv = {
> {0.40434286, 0.09376327, 0.30328980, 0.04909388},
> {0.09376327, 0.10400408, 0.07137959, 0.04762857},
> {0.30328980, 0.07137959, 0.30458776, 0.04882449},
> {0.04909388, 0.04762857, 0.04882449, 0.07543265}
> };
> And it works fine, because it is symmetric positive definite
> I tried this matrix:
> double[][] cv = {
> {0.40434286, -0.09376327, 0.30328980, 0.04909388},
> {-0.09376327, 0.10400408, 0.07137959, 0.04762857},
> {0.30328980, 0.07137959, 0.30458776, 0.04882449},
> {0.04909388, 0.04762857, 0.04882449, 0.07543265}
> };
> And it should throw an exception but it does not. I tested the matrix in R
> and R's cholesky decomposition method returns that the matrix is not
> symmetric positive definite.
> Obviously your code is not catching this appropriately.
> By the way (in my opinion) the use of exceptions to check these conditions is
> not the best design or use for exceptions. If you are going to force the use
> to try and catch these exceptions at least provide methods to test the
> conditions prior to the possibility of the exception.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.