来自Cubature包的C代码

时间:2011-02-27 02:18:15

标签: c statistics

你能帮我理解Cubature package的C代码吗?

我的具体问题:

1)fwrapper函数rcubature.c文件的用途是什么?

void fWrapper(unsigned ndim, const double *x, void *fdata, unsigned fdim, double *fval) {
    SEXP xx, fx;
    double *rx, *rfx;
    int i;


    PROTECT(xx = allocVector(REALSXP, ndim));
    rx = REAL(xx);
    for (i = 0; i < ndim; ++i) {
        rx[i] = x[i];
    }
    defineVar(install("x"), xx, CUB_common_env);
    PROTECT(fx = eval(f, CUB_common_env));

    rfx = REAL(fx);
    for (i = 0; i < fdim; ++i) {
        fval[i] = rfx[i];
    }
    UNPROTECT(2);
    count++;
}

2)defineVar中的fWrapper电话有什么作用?

0 个答案:

没有答案