[R] Okay, here is what I am doing
Romain Francois
romain at r-enthusiasts.com
Thu Apr 8 22:38:20 CEST 2010
Do you have the tools ? What operating system are you using ? What
happens if you do this:
> code <- '#include <Rdefines.h>\nSEXP f(){\n return R_NilValue ; }'
> writeLines( code, "test.c" )
> system( "R CMD SHLIB test.c" )
> dyn.load( "test.so" )
> .Call( "f" )
Romain
Le 08/04/10 20:28, satu a écrit :
>
>
> All is done in R 2.10.1 wiht the package "inline" version 0.3.4,,,
> this are the packages that I have loaded into the workspace
>> search()
> [1] ".GlobalEnv" "package:inline" "package:stats"
> "package:graphics" "package:grDevices" "package:datasets" "package:rcom"
> [8] "package:rscproxy" "package:utils" "package:methods" "Autoloads"
> "package:base"
>
> This is pure copy and paste from the PDF file
>
>> x<- as.numeric(1:10)
>> n<- as.integer(10)
>> x
> [1] 1 2 3 4 5 6 7 8 9 10
>> n
> [1] 10
>> sigSq<- signature(n="integer", x="numeric")
>> codeSq<- "
> + for (int i=0; i< *n; i++) {
> + x[i] = x[i]*x[i];
> + }"
>> sigSq
> n x
> "integer" "numeric"
>> codeSq
> [1] "\nfor (int i=0; i< *n; i++) {\nx[i] = x[i]*x[i];\n}"
>> sigQd<- signature(n="integer", x="numeric")
>> codeQd<- "
> + squarefn(n, x);
> + squarefn(n, x);
> + "
>> sigQd
> n x
> "integer" "numeric"
>> codeQd
> [1] "\nsquarefn(n, x);\nsquarefn(n, x);\n"
>> fns<- cfunction( list(squarefn=sigSq, quadfn=sigQd),
> + list(codeSq, codeQd),
> + convention=".C")
>
> ERROR(s) during compilation: source code errors or compiler configuration
> errors!
>
> Program source:
> 1: #include<R.h>
> 2:
> 3:
> 4: extern "C" {
> 5: void squarefn ( int * n, double * x );
> 6: }
> 7:
> 8: void squarefn ( int * n, double * x ) {
> 9:
> 10: for (int i=0; i< *n; i++) {
> 11: x[i] = x[i]*x[i];
> 12: }
> 13: }
> 14: extern "C" {
> 15: void quadfn ( int * n, double * x );
> 16: }
> 17:
> 18: void quadfn ( int * n, double * x ) {
> 19:
> 20: squarefn(n, x);
> 21: squarefn(n, x);
> 22:
> 23: }
> Error in compileCode(f, code, language, verbose) :
> Compilation ERROR, function(s)/method(s) not created!
>
> Following the example shown in this PDF,,, after the fns<- cfunction( ,,, )
> follows:
>
> squarefn<- fns[["squarefn"]]
> quadfn<- fns[["quadfn"]]
> squarefn(n, x)$x
> quadfn(n, x)$x
>
> but the compile error shows up right after the cfunction(,,,) sentence.
>
>
--
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
|- http://bit.ly/9aKDM9 : embed images in Rd documents
|- http://tr.im/OIXN : raster images and RImageJ
|- http://tr.im/OcQe : Rcpp 0.7.7
More information about the R-help
mailing list