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

Reply via email to