commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nigel Goodwin (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MATH-1137) BOBYQA incorrect indexing
Date Fri, 11 Jul 2014 18:00:12 GMT

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

Mime
View raw message