首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统计软件包中nlm函数的源代码

统计软件包中nlm函数的源代码
EN

Stack Overflow用户
提问于 2015-05-21 06:12:55
回答 1查看 1.9K关注 0票数 3

我需要找到nlm函数的源代码。

当我用

代码语言:javascript
复制
edit(nlm)

下面的代码显示

代码语言:javascript
复制
function (f, p, ..., hessian = FALSE, typsize = rep(1, length(p)), 
    fscale = 1, print.level = 0, ndigit = 12, gradtol = 1e-06, 
    stepmax = max(1000 * sqrt(sum((p/typsize)^2)), 1000), steptol = 1e-06, 
    iterlim = 100, check.analyticals = TRUE) 
{
    print.level <- as.integer(print.level)
    if (print.level < 0 || print.level > 2) 
        stop("'print.level' must be in {0,1,2}")
    msg <- (1 + c(8, 0, 16))[1 + print.level]
    if (!check.analyticals) 
        msg <- msg + (2 + 4)
    .External2(C_nlm, function(x) f(x, ...), p, hessian, typsize, 
        fscale, msg, ndigit, gradtol, stepmax, steptol, iterlim)
}

现在,当我想看看什么是C_nlm

我试过了

代码语言:javascript
复制
stats:::C_nlm

我得到了

代码语言:javascript
复制
$name
[1] "nlm"

$address
<pointer: 0x0000000004a83920>
attr(,"class")
[1] "RegisteredNativeSymbol"

$dll
DLL name: stats
Filename: C:/Program Files/R/R-3.1.2/library/stats/libs/x64/stats.dll
Dynamic lookup: FALSE

$numParameters
[1] 11

attr(,"class")
[1] "ExternalRoutine"  "NativeSymbolInfo"

经过一些网络搜索,我发现我需要在这之后使用grep

但我不知道怎么用它。我试过这些参考资料

如何定位.External2()调用的代码?

如何查看函数的源代码?

有谁能告诉我如何继续前进吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-21 07:00:18

您可以在这个GitHub repo:R源上浏览R源代码。

搜索它的术语"SEXP“,因为stats:::C_nlm指向一个名为"nlm"的函数,所有返回数据到R的函数都使用名为SEXP (S表达式)的数据类型。

您将在文件statsR.hoptimize.c中得到两次点击。C文件是您要找的文件,所以从SEXP nlm开始,就可以找到它了。

代码语言:javascript
复制
SEXP nlm(SEXP call, SEXP op, SEXP args, SEXP rho)
{
    SEXP value, names, v, R_gradientSymbol, R_hessianSymbol;

    double *x, *typsiz, fscale, gradtl, stepmx,
    steptol, *xpls, *gpls, fpls, *a, *wrk, dlt;

    int code, i, j, k, itnlim, method, iexp, omsg, msg,
    n, ndigit, iagflg, iahflg, want_hessian, itncnt;


/* .Internal(
 *  nlm(function(x) f(x, ...), p, hessian, typsize, fscale,
 *      msg, ndigit, gradtol, stepmax, steptol, iterlim)
 */
    function_info *state;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30365843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档