[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