Skip to content
Back to formatted view

Raw Message

Message-ID: <CAChCbnrKD1Bo7oHwTd4GVzzBwCe-nPwYqNFWO74uYcHOoNemKw@mail.gmail.com>
Date: 2011-12-28T01:36:17Z
From: James Muller
Subject: Initializing a large data structure to be accessed strictly within a shared C library
In-Reply-To: <4EFA6C51.5010300@gmail.com>

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--