From nashjc at uottawa.ca  Mon Sep  8 14:48:03 2014
From: nashjc at uottawa.ca (Prof J C Nash (U30A))
Date: Mon, 08 Sep 2014 08:48:03 -0400
Subject: [Rd] lbfgsb from C/C++
Message-ID: <540DA583.1080504@uottawa.ca>

I won't comment on the C/C++ option, as I'm not expert in that. However,
R users and developers should know that Nocedal et al. who developed
L-BFGS-B released an update to correct a fault in 2011. It was important
enough that an ACM TOMS article was used for the announcement.

I recently implemented a wrapper to the new Fortran code. As it is a
reverse communication code, the main task was getting rid of all the
Fortran WRITE() statements (not a happy experience!).

Maybe Dirk has ideas on how to make the wrapper more efficient and the
call from C or C++ direct for those who need that.

The code will be incorporated eventually in the optimx package, but for
now an experimental (NOTE - EXPERIMENTAL) version lbfgsb3 is up on
r-forge under the optimizer project. I'd be happy to exchange ideas
off-list on this.

Here's the reference to the TOMS announcement:

@Article{Morales:2011:FSL,
  author =       "Jos\'e Luis Morales and Jorge Nocedal",
  title =        "Remark on ``{Algorithm} 778: {L-BFGS-B}: {Fortran}
Subroutines
		  for Large-Scale Bound Constrained Optimization''",
  journal =      "{ACM} Transactions on Mathematical Software",
  accepted =     "15 April 2011",
  volume =       "38",
  number =       "1",
  month =        nov,
  URL =          "http://doi.acm.org/10.1145/2049662.2049669",
  pages =        "7:1--7:4",
  year =         "2011",
  abstract =     "
                 This remark describes an improvement and a correction
                 to Algorithm 778. It is shown that the performance of
                 the algorithm can be improved significantly by making
                 a relatively simple modification to the subspace
                 minimization phase. The correction concerns an error
                 caused by the use of routine dpmeps to estimate machine
                 precision.",
}

John Nash



[Rd] lbfgsb from C/C++
Prof J C Nash (U30A