Re: [Rd] suggested minor patch for optim.R

2008-04-05 Thread Thomas Petzoldt
Ben Bolker wrote:
 optim ignores misspelled control parameters, so that trying
 to set (e.g.) maxint=1000 in  the control argument silently
 does nothing.  The patch below (watch out for line breaks! also
 posted at http://www.zoo.ufl.edu/bolker/optim_patch.R , and
 http://www.zoo.ufl.edu/bolker/optim_new.R) adds
 three lines to optim.R that issue a warning if any names of
 elements of control fail to match the internal object that
 contains the defaults.
 
Here is code that shows the behavior:

[... details deleted]

https://stat.ethz.ch/pipermail/r-devel/2008-March/048710.html

Ben,

another issue of optim is that I don't see any reason why the REPORT 
control parameter is evaluated by BFGS and L-BFGS-B only but not, 
for example, by SANN, see:

https://stat.ethz.ch/pipermail/r-devel/2008-March/048710.html

Thomas P.

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] suggested minor patch for optim.R

2008-04-05 Thread Martin Maechler
Hi Ben,

 BB == Ben Bolker [EMAIL PROTECTED]
 on Fri, 04 Apr 2008 19:08:16 -0400 writes:

BB optim ignores misspelled control parameters, so that
BB trying to set (e.g.) maxint=1000 in the control
BB argument silently does nothing.  The patch below (watch
BB out for line breaks! also posted at
BB http://www.zoo.ufl.edu/bolker/optim_patch.R , and
BB http://www.zoo.ufl.edu/bolker/optim_new.R) adds three
BB lines to optim.R that issue a warning if any names of
BB elements of control fail to match the internal object
BB that contains the defaults.

such a small change makes a lot of sense to me.


BBHere is code that shows the behavior:

[]

BBI realize this is probably too late for feature
BB freeze for 2.7.0 (?), but I'd appreciate any comments
BB ...

I'd say this is a bug fix and not a new feature, so there's
plenty of time for 2.7.0.

I'm about to commit it (i.e. a slightly more compact version).

Thank you, Ben!

Martin Maechler, ETH Zurich

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] suggested minor patch for optim.R

2008-04-05 Thread Ben Bolker

Thomas Petzoldt wrote:

Ben,

another issue of optim is that I don't see any reason why the REPORT 
control parameter is evaluated by BFGS and L-BFGS-B only but not, 
for example, by SANN, see:


https://stat.ethz.ch/pipermail/r-devel/2008-March/048710.html

Thomas P.



  Could you submit a patch?  (The easier we make it on R-core to
implement these changes, the more likely it is that they'll get in ...)

  cheers
Ben





signature.asc
Description: OpenPGP digital signature
__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] suggested minor patch for optim.R

2008-04-04 Thread Ben Bolker

optim ignores misspelled control parameters, so that trying
to set (e.g.) maxint=1000 in  the control argument silently
does nothing.  The patch below (watch out for line breaks! also
posted at http://www.zoo.ufl.edu/bolker/optim_patch.R , and
http://www.zoo.ufl.edu/bolker/optim_new.R) adds
three lines to optim.R that issue a warning if any names of
elements of control fail to match the internal object that
contains the defaults.

   Here is code that shows the behavior:

set.seed(1001)
x - rnorm(10)
y - rnorm(10,mean=1+2*x,sd=0.2)
ssqfun - function(p) { sum((y-(p[1]+p[2]*x))^2) }
## use bogus control variable
O1 - optim(fn=ssqfun,par=c(1,2),control=list(maxint=100))
## get new version
source(url(http://www.zoo.ufl.edu/bolker/optim_new.R;))
O2 - optim(fn=ssqfun,par=c(1,2),control=list(maxint=100))
O3 - optim(fn=ssqfun,par=c(1,2),control=list(maxint=100,bogus=123))

   I realize this is probably too late for feature freeze for 2.7.0 (?),
but I'd appreciate any comments ...


*** optim_orig.R2008-04-04 18:55:42.0 -0400
--- optim_new.R 2008-04-04 18:58:56.0 -0400
***
*** 37,46 
--- 37,50 
   type = 1,
   lmm = 5, factr = 1e7, pgtol = 0,
   tmax = 10, temp = 10.0)
+ orig.names - names(con)
   if (method == Nelder-Mead) con$maxit - 500
   if (method == SANN) con$maxit - 1

   con[(namc - names(control))] - control
+ newnames - names(control)[!names(control) %in% orig.names]
+ if (length(newnames)0)
+   warning(paste(unknown names in 
control:,paste(newnames,collapse=, )))
   if(con$trace  0)
   warning(read the documentation for 'trace' more carefully)
   if (method == L-BFGS-B 

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel