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

Luc Maisonobe commented on MATH-195:
------------------------------------

FunctionEvaluationException is mainly an exception designed for users 
functions, its often not an exception commons-math creates by itself.
Numerous example are linked to solving a physical problem (say finding an 
energy level in theoretical physics or  finding a spacecraft orbit that best 
fir a set of observations in a flight dynamics problem). These user functions 
may not be computable at some points and the general mathematical algorithm 
cannot know it beforehand. So when user code encounters a problem, he must be 
able to raise an exception and commons-math must be able to stop in this case.

Although since we currently do not have constrained optimization (except in the 
linear case), we cannot prevent the general optimizing algorithm to wander 
outside of the user function defining domain and hence violate users function 
precondition. So it would be difficult to have a separate policy for 
preconditions and for other kinds of errors.

Changing FunctionEvaluatinException to unchecked may be a good move, but our 
algorithms should document that these exceptions can arise if user code throws 
them.

> Inconsistencies in the Exception hierarchy
> ------------------------------------------
>
>                 Key: MATH-195
>                 URL: https://issues.apache.org/jira/browse/MATH-195
>             Project: Commons Math
>          Issue Type: Improvement
>    Affects Versions: 1.1, 1.2, 2.0, Nightly Builds
>            Reporter: Thomas Chust
>            Assignee: Gilles
>            Priority: Minor
>             Fix For: 3.0
>
>   Original Estimate: 0.17h
>  Remaining Estimate: 0.17h
>
> I think there are some inconsistencies in the hierarchy of exceptions used by 
> the Commons Math library which could easily be fixed:
>   - org.apache.commons.math.linear.MatrixIndexException should really be a 
> subclass of
>     java.lang.IndexOutOfBoundsException.
>   - Either org.apache.commons.math.linear.InvalidMatrixException should be 
> checked or
>     org.apache.commons.math.random.NotPositiveDefiniteMatrixException and
>     org.apache.commons.math.geometry.NotARotationMatrixException should be 
> unchecked, but in any case the latter two
>     should be subclasses of the former. An unchecked InvalidMatrixException 
> should probably be a subclass of
>     java.lang.ArithmeticException while a checked InvalidMatrixException 
> should be a subclass of
>     org.apache.commons.math.MathException.

-- 
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