Fiz um programa muito simples para entender. O programa simplesmente soma um número com outro e está abaixo:

/* INICIO */
#include <R.h> 

/* Funcao Principal */ 
void soma1(double *a, double *b, double *res) 
     *res = *a + *b; 
/* FIM */

Depois de gerar o arquivo soma1.dll fiz no R:

dyn.load("soma1.dll")
soma2 <- function(a,b){
.C("soma1", as.double(a), as.double(b), res = a + b)$res
}

O programa está pensado corretamente? Aproveito para pedir desculpas por aperriar tanto vocês e batendo na tecla só nesse assunto.

Saudações,
Pedro Rafael


Em 26 de agosto de 2011 16:57, Leandro Marino [via R-br] <ml-node+3771831-993372325-223914@n4.nabble.com> escreveu:

Estou com uma dúvida!

 

Se for criar um pacote no R (apenas para uso interno aqui na empresa) com diversas rotinas em C, terei que compilá-lo para cada uma dos OS e arquiteruras? No caso uso Win e Linux (32 e 64)!

 

Atenciosamente,
Leandro Lins Marino
Centro de Avaliação
Fundação CESGRANRIO
Rua Santa Alexandrina, 1011 - 2º andar
Rio de Janeiro, RJ - CEP: 20261-903
( (21) 2103-9600 R.:236
* [hidden email]

 

P  Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE 

 

Esta mensagem, incluindo seus anexos, pode conter informacoes privilegiadas e/ou de carater confidencial, nao podendo ser retransmitida sem autorizacao do remetente. Se voce nao e o destinatario ou pessoa autorizada a recebe-la, informamos que o seu uso, divulgacao, copia ou arquivamento sao proibidos.

Portanto, se você recebeu esta mensagem por engano, por favor, nos informe respondendo imediatamente a este e-mail e em seguida apague-a.

 

De: [hidden email] [mailto:[hidden email]] Em nome de Pedro Rafael
Enviada em: sexta-feira, 26 de agosto de 2011 16:34
Para: [hidden email]
Assunto: Re: [R-br] [Dúvida] Invocar funções C++ no R

 

Fiz um programa muito simples para entender. O programa simplesmente soma um número com outro e está abaixo:

 

/* INICIO */

#include <R.h> 

 

/* Funcao Principal */ 

void soma1(double *a, double *b, double *res) 

     *res = *a + *b; 

/* FIM */

 

Depois de gerar o arquivo soma1.dll fiz no R:

 

dyn.load("soma1.dll")

soma2 <- function(a,b){

            .C("soma1", as.double(a), as.double(b), res = a + b)$res

            }

 

O programa está pensado corretamente? Aproveito para pedir desculpas por aperriar tanto vocês e batendo na tecla só nesse assunto.

 

Saudações,

Pedro Rafael

 

 

 

Em 26 de agosto de 2011 12:37, beniltoncarvalho [via R-br] <[hidden email]> escreveu:

Depende apenas do que vc estiver fazendo. .Call() e' conveniente por
retornar objetos ao R diretamente. O .C() e' legal pq vc pode pegar
funcoes ja' prontas em C e apenas criar um wrapper (vide GSL). b

_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.


If you reply to this email, your message will be added to the discussion below:

http://r-br.2285057.n4.nabble.com/R-br-Duvida-Invocar-funcoes-C-no-R-tp3768159p3771222.html

To unsubscribe from R-br, click here.



 

--
Saudações,

Pedro Rafael Diniz Marinho.

 


_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.


If you reply to this email, your message will be added to the discussion below:
http://r-br.2285057.n4.nabble.com/R-br-Duvida-Invocar-funcoes-C-no-R-tp3768159p3771831.html
To unsubscribe from R-br, click here.



--
Saudações,
Pedro Rafael Diniz Marinho.