[R] .Internal

rkevinburton at charter.net rkevinburton at charter.net
Mon Mar 23 23:48:16 CET 2009


Sorry to be so dense but the article that you suggest does not give any information on how the arguments are packed up. I look at the call:

val <- .Internal(fmin(function(arg) -f(arg, ...), lower, upper, tol))

and then with the help of this article I find do_fmin in optimize.c:

SEXP attribute_hidden do_fmin(SEXP call, SEXP op, SEXP args, SEXP rho)

Again there doesn't seem to be any coorespondance between lower, upper, tol and the arguments to do_fmin. So I am missing a step.

Thank you.

Kevin


---- Berwin A Turlach <berwin at maths.uwa.edu.au> wrote: 
> G'day Kevin,
> 
> On Wed, 18 Mar 2009 21:46:51 -0700
> <rkevinburton at charter.net> wrote:
> 
> > I was trying to find source for optimize and I ran across
> > 
> > function (f, interval, ..., lower = min(interval), upper =
> > max(interval), maximum = FALSE, tol = .Machine$double.eps^0.25) 
> > {
> >     if (maximum) {
> >         val <- .Internal(fmin(function(arg) -f(arg, ...), lower, 
> >             upper, tol))
> >         list(maximum = val, objective = f(val, ...))
> >     }
> >     else {
> >         val <- .Internal(fmin(function(arg) f(arg, ...), lower, 
> >             upper, tol))
> >         list(minimum = val, objective = f(val, ...))
> >     }
> > }
> > 
> > Then I did a search for fmin and i came up with:
> > 
> > /* fmin(f, xmin, xmax tol) */
> > SEXP attribute_hidden do_fmin(SEXP call, SEXP op, SEXP args, SEXP rho)
> > 
> > 
> > So my question is where do I find the intermediary step between 
> > 
> > .Internal(fmin(function(arg) f(arg, ...), lower,  upper, tol))
> > 
> > and
> > 
> > SEXP attribute_hidden do_fmin(SEXP call, SEXP op, SEXP args, SEXP rho)
> 
> @Article{Rnews:Ligges:2006,
>   author       = {Uwe Ligges},
>   title        = {{R} {H}elp {D}esk: {Accessing} the Sources},
>   journal      = {R News},
>   year         = 2006,
>   volume       = 6,
>   number       = 4,
>   pages        = {43--45},
>   month        = {October},
>   url          = http,
>   pdf	       = Rnews2006-4
> }
> 
> http://CRAN.R-project.org/doc/Rnews/Rnews_2006-4.pdf
> 
> > The number of arguments doesn't match up. I am guessing that lower
> > and upper somehow get merged into the args. And rho is 'tol'. Right?
> 
> Unlikely.  In "Writing R Extensions" (and the functions I looked up),
> 'rho' usually denotes an environment that is used to evaluate
> expressions in.  Typically (i.e. in cases that I had need to look at),
> all arguments are rolled into the SEXP arg for internal functions.
> 
> HTH.
> 
> Cheers,
> 
> 	Berwin




More information about the R-help mailing list