Modérateur : Groupe des modérateurs
Code : Tout sélectionner
void convolve(double *a, int *na, double *b, int *nb, double *ab)
{
int i, j, nab = *na + *nb - 1;
for(i = 0; i < nab; i++)
ab[i] = 0.0;
for(i = 0; i < *na; i++)
for(j = 0; j < *nb; j++)
ab[i + j] += a[i] * b[j];
}
Code : Tout sélectionner
conv <- function(a, b)
{
.C("convolve",
as.double(a),
as.integer(length(a)),
as.double(b),
as.integer(length(b)),
ab = double(length(a) + length(b) - 1)
)$ab
}
Code : Tout sélectionner
cl /MT /Ox /D "WIN32" /c *.c
link /dll /export:convolve /out:mypkg.dll *.obj
Code : Tout sélectionner
> dyn.load('mypkg.dll')
DLL name: mypkg
Filename: d:/R/Essais/mypkg.dll
Dynamic lookup: TRUE
Warning message:
DLL attempted to change FPU control word from 8001f to 9001f
> is.loaded('convolve')
[1] TRUE
> conv(1:3,4:5)
[1] 4 13 22 15
je souhaiterais importer du C++ dans R, pour accélerer mon programme, mais je n'y arrive pas, malgré toute la documentation de R.
Code : Tout sélectionner
# include <stdio.h>
# include <stdlib.h>
int fibiter(int a, int b, int c);
void fib(int*n);
Code : Tout sélectionner
# include <stdio.h>
# include <stdlib.h>
# include"fib.h"
# include "R.h"
int fibiter(int a, int b, int c){
if( c <= 0) return b;
else return fibiter (a+b,a,c-1);
}
void fib(int*n){
*n=fibiter(1,0,*n);
}
Code : Tout sélectionner
Rcmd SHLIB fib.c
Code : Tout sélectionner
gcc --shared -o fib.dll fib.c libR.a
Code : Tout sélectionner
dyn.load("C:/your_directory/fib.dll")
fibo <-function(n) unlist(.C("fib",as.integer(n)))
sapply(1:10,function(x) fibo(x))
[1] 1 1 2 3 5 8 13 21 34 55
Code : Tout sélectionner
# include <stdio.h>
# include <stdlib.h>
# include "R.h"
void arsim(double *x, long *n,double *phi)
{
long i;
for(i=1;i<*n;i++)
x[i]=*phi * x[i-1] + x[i];
}
Code : Tout sélectionner
gcc --shared -o Ar.dll Ar.c libR.a
Code : Tout sélectionner
dyn.load("C:/Documents and Settings/bad/Mes documents/Rdeveloppement/Ar.dll")
arsim <-function(x,a,b) .C("arsim",as.double(x),as.integer(a),as.integer(b))
x <- rnorm(10)
arsim(x,10,0.7)
Je ne sais pas à quoi cela correspond. Est ce que ce genre d'erreur est connu ? Est ce qu'il pourrait s'agir du manque de la libR.a ?Incorrect command line argument: --f
Code : Tout sélectionner
bcc32 -u- -6 -O2 -WDE convolve.c
J'ai trouvé cette erreur sur internet et la méthode pour résoudre le problème a l'air plus qu'au dessus de mes moyens !Unresolved external '_main' referenced from C:\Program Files\Borland\Cbuilder\Lib\COX32.obj
Je ne sais pas à quoi cela correspond. Est ce que ce genre d'erreur est connu ?
PATH=%GTK_BASEPATH%\bin;C:\Perl\bin\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\programs\GTK\2.0\bin;C:\programs\MiKTeX 2.5\miktex\bin;C:\programs\MinGW\bin;C:\programs\Rtools\bin;C:\programs\R\R-2.4.1\bin;C:\programs\R\R-2.4.1\include;C:\programs\Rtools\bin;C:\programs\MinGW\include;C:\Program Files\QuickTime\QTSystem\;C:\programs\Rtools\bin;C:\Python25;C:\Program Files\Fichiers communs\ODBC\Data Sources;
Est ce qu'il pourrait s'agir du manque de la libR.a ?
Code : Tout sélectionner
gcc --shared -o MaDLL.dll MaDLL.c libR.a
comme ça tout le monde a appris quelque chose
Retourner vers « Archives : Environnement de R »
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité