[Rd] Initializing a large data structure to be accessed strictly within a shared C library

James Muller james.s.muller at gmail.com
Wed Dec 28 02:36:17 CET 2011


Thanks Duncan, you've unclogged my thinking. For anybody interested,
see below a sketch of the solution.

Cheers,

James


--START SKETCH OF SOLUTION--

#include <R.h>
#include <Rinternals.h>

static typedef struct {
    int nrow, ncol;
    double *data;
} _myparticle_data_struct;
static _myparticle_data_struct myparticle_data;

void myparticle_init() {
    // Before we begin, call this from .Call() to Ralloc() memory and load the
    // data into to myparticle_data.data
}

void myparticle_free() {
    // When we're done with the PSO, .Call() to Free() the data
}

void myparticle_eval(double *value, double *x) {
    // .Call() to evaluate the value *value given vector x[]
}

--END SKETCH OF SOLUTION--



More information about the R-devel mailing list