Take a look here, as this may help clear up the unanswered questions:

https://stat.ethz.ch/pipermail/r-devel/2008-November/051262.html

HTH
Jeff

Jeffrey A. Ryan
jeffrey.r...@insightalgo.com

ia: insight algorithmics
www.insightalgo.com

On Feb 14, 2010, at 3:18 PM, Christophe Genolini <cgeno...@u- paris10.fr> wrote:

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

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

Reply via email to