[
https://issues.apache.org/jira/browse/MATH-1137?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14059106#comment-14059106
]
Nigel Goodwin commented on MATH-1137:
-------------------------------------
ps. Gilles, way back in Aug 2011 you said the lines
{code}
if (newPoint.getEntry(j) == lowerDifference.getEntry(j)) {
bdtest = work1.getEntry(j);
}
if (newPoint.getEntry(j) == upperDifference.getEntry(j)) {
bdtest = -work1.getEntry(j);
}
{code}
are never entered, and if that is still true, then bdtest = bdtol and so the
line in question is also never executed!
Note also the C++ version has (J + J*J)/2, so IMHO that is also incorrect.
In my experience with my L-BFGS-B conversion, the trickiest part was dealing
with parameter v. value argument passing and what happened when an argument was
changed inside a subroutine. Java and Fortran are very different. It took me
days with detailed comparisons of outputs to trace and correct bugs. A good
check would be to look at all places where methods change values of
arguments.....this is all part of Java 101 which I haven't yet taken =}. bdtest
is a primitive, so I think it's OK to change it and then check against bdtol.
If bdtest was a Double, I think it would be different.
> BOBYQA incorrect indexing
> -------------------------
>
> Key: MATH-1137
> URL: https://issues.apache.org/jira/browse/MATH-1137
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 3.3
> Reporter: Nigel Goodwin
>
--
This message was sent by Atlassian JIRA
(v6.2#6252)