[Rd] optim-Bug (PR#6720)

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Apr 21 08:57:02 CEST 2004


On 21 Apr 2004, Peter Dalgaard wrote:

> kestler at neuro.informatik.uni-ulm.de writes:
> 
> > Full_Name: Dr. Hans A. Kestler
> > Version: 1.8.1.
> > OS: Linux, Win, Mac OSX
> > Submission from: (NULL) (134.60.73.116)
> > 
> > 
> > The code below produces after a different number of iterations i the following
> > error:
> > 
> > Error in optim(par = rep(0.5, length(edges)), loglik, method = "L-BFGS-B",  :
> >         non-finite value supplied by optim
> > 
> > This was reproducible on different machines (Mac G4 OSX, AMD Opteron Linux SUSE
> > 9.0, Intel P4 Suse 9.0, P4 Windows XP Prof), only with different i.
> > 
> > The non-deterministic behaviour made us recompile R with debug options and use
> > valgrind for memory-leak checking. The result was horrible. We are now in the
> > process of going through the f2c code of lbfgsb.c. The problem seems to be a
> > access violation of wn1 at run time. 
> 
> I have this down to the use of R_alloc in the vect() function (line
> 40, optim.c). Replacing with S_alloc (which zeros memory) removes the
> issue for me on this machine and on the Opteron. Could you please
> verify on other platforms? And if anyone actually understands the code
> could you verify that it makes sense to require the workspace to be
> initialized?

Zeroing the workspace is not a requirement of the original L-BFGS-B code 
that I can see.  Given that it was originally in Fortran, and Fortran 
often does zero it seems a likely symptom, but it does mean that a 
variable is being used uninitialized somewhere in the code (converted to 
C).  It would be better to leave vect alone and to zero the workspace with 
a memset call in lbfgsb.  (Incidentally, I don't know why S_alloc does not 
use memset -- we do require standard C and use in seeral other places.)

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-devel mailing list