Thanks, this helps a lot.

So if I understand correctly:
in package P1, I want to export printMatrix and printMatrixInt. In my file P1.c, I have to add

void R_init_P1(DllInfo *info){
   R_registerCCallable("longitudinalData","printMatrix",printMatrix);
   R_registerCCallable("longitudinalData","printMatrixInt",printMatrixInt);
};


In P2.c, I have to add :

void R_init_P2(DllInfo *info){
   printMatrix = R_GetCCallable("longitudinalData","printMatrix");
   printMatrixInt = R_GetCCallable("longitudinalData","printMatrixInt");
};


I still have a problem here: "Writing R ext" say that 'printMatrix' and 'printMatrixInt' should have "an appropriate declaration". What is the appropriate declaration?

Christophe


Hello,

This was discussed this week in the thread "LinkingTo and C++".

It is possible, and documented in WRE section 5.4 : http://cran.r-project.org/doc/manuals/R-exts.html#Registering-native-routines

Romain

On 02/14/2010 12:58 PM, Christophe Genolini wrote:

Hi the list,

In a package P1, I write a function f1 in C, potentially an internal
function (not to be called from R).
In a package P2, I write a function f2 in C. The f2 function needs to
use f1 from P1. Is it possible ?

--- 8< ---- In file P1.c ---------
double f1(x,y){
....
}

--- 8< ---- In file P2.c ---------
void f2(x,y,z){
double result;
....
result = f1(x,y);
....
}

Thanks
Christophe


______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to