[R-br] [OFF] Biblioteca C para matrizes.

Benilton Carvalho beniltoncarvalho em gmail.com
Sexta Agosto 10 23:04:16 BRT 2012


No básico do basico... Envolva sua função em um extern. Dai use o .Call

Sent from a mobile device
On Aug 11, 2012 2:42 AM, "Pedro Rafael" <pedro.rafael.marinho em gmail.com>
wrote:

> Interessante. Com o comando RcppArmadillo.package.skeleton é possível
> criar a estrutura de diretórios de um pacote R. Digamos que eu tenha
> um código C++ e queria arrumar ele para fazer um pacote para o R. Eu
> queria entender como se da essa comunicação. Só a filosofia mesmo. Eu
> entendo como criar um pacote do R utilizando o sistema de orientação à
> objeto S3 e sei que existe outras como S4 e R5. O que não consigo
> entender bem é como comunicar o código C/C++ com o R e como se dá a
> comunicação desses códigos (C/C++) com o R. Vi que posso chamar
> códigos do R para o C++ mas acho que o mais interessante é o
> contrário. Como chamar um código otimizado de C++ para R e criar  um
> pacote caso seja conveniente. Alguém poderia me dar um exemplo com uma
> função bem simplória só para entender por alto como funciona?
>
> Obrigado,
> Pedro Rafael Diniz Marinho.
>
>
> Em 10 de agosto de 2012 22:23, beniltoncarvalho [via R-br]
> <ml-node+s2285057n4655833h0 em n4.nabble.com> escreveu:
> > Sim. Mas antes de qualquer coisa, veja o pacote RcppArmadillo e os
> > documentos de ajuda associados. b
> >
> > 2012/8/11 Pedro Rafael <[hidden email]>:
> >
> >> Uma última dúvida. É fácil integrar códigos C++ com o R? Utilizei as
> >> funções .C() e .Call() para chamar comandos em C para R. Nunca tentei
> >> utilizando C++. A construção de pacotes R feitos utilizando funções
> >> escritas em C++ também é tranquila?
> >>
> >>
> >> Obrigado,
> >> Pedro Rafael Diniz Marinho.
> >>
> >>
> >> Em 10 de agosto de 2012 22:04, Pedro Rafael
> >> <[hidden email]> escreveu:
> >>> Que legal Benilton, vou olhar bem esse pacote. Muito obrigado pelas
> >>> informações. Vou brincar um pouco com esse pacote.  Procurei na web
> >>> outros pacotes de álgebra linear para C++ mas me parece que esse é o
> >>> pacote livre mais completo.
> >>> [   ],
> >>> Pedro Rafael Diniz Marinho.
> >>>
> >>>
> >>> Em 10 de agosto de 2012 21:31, beniltoncarvalho [via R-br]
> >>> <[hidden email]> escreveu:
> >>>> Se vc gostou do Armadillo, divirta-se com o pacote RcppArmadillo. b
> >>>>
> >>>> 2012/8/11 Pedro Rafael <[hidden email]>:
> >>>>
> >>>>> Obrigado Prof. Paulo pela informação, me ajudou bastante. Eu gostei
> >>>>> muito Benilton da biblioteca de álgebra linear "armadillo". Muito
> mais
> >>>>> fácil que a GSL. Eu acho desorganizado os códigos C. O problema que
> >>>>> quando escrevo algum código matemático em C++ sempre tem uma
> estrutura
> >>>>> procedural, deve ser o vício que tenho do C. Acabo usando quase nada
> >>>>> de Classes, Heranças, Polimorfismo, etc. Contudo, acho interessante a
> >>>>> facilidade de se trabalhar com vetores, matrizes e alocação dinâmica
> >>>>> utilizando C++.
> >>>>> [   ],
> >>>>> Pedro Rafael Diniz Marinho.
> >>>>>
> >>>>>
> >>>>> Em 10 de agosto de 2012 20:28, beniltoncarvalho [via R-br]
> >>>>> <[hidden email]> escreveu:
> >>>>>> Pedro,
> >>>>>>
> >>>>>> Há muito deixei de procurar 'a linguagem mais <escolha o adjetivo>
> >>>>>> para <escolha a tarefa>'. Fico contente em usar qualquer linguagem
> que
> >>>>>> se mostre util e nao me force a reinventar a roda. Dito isso, nao
> vejo
> >>>>>> la essas diferencas entre C ou C++. E' obvio que algum especialista
> em
> >>>>>> alguma delas encontrara' inumeros casos que servem de
> contra-exemplo;
> >>>>>> mas enqto ele faz isso, eu sigo adiante resolvendo outros problemas.
> >>>>>>
> >>>>>> b
> >>>>>>
> >>>>>> 2012/8/10 Paulo Justiniano <[hidden email]>:
> >>>>>>
> >>>>>>> Pedro
> >>>>>>>
> >>>>>>> quando se diz em evitar inverter matrizes é porque muitas contas
> >>>>>>> podem
> >>>>>>> ser
> >>>>>>> feitas sem a inversao explícita
> >>>>>>>
> >>>>>>> Por exemplo, a conta
> >>>>>>>
> >>>>>>> X'V^{-1}X
> >>>>>>>
> >>>>>>> pode ser feita evitando inversao a partir da cholesky de V
> >>>>>>> que pode ser aproveitada de calculos anteriores uma vez que já deve
> >>>>>>> ter
> >>>>>>> sido
> >>>>>>> calculada antes para obter as estimativas
> >>>>>>>
> >>>>>>> No exemplo
> >>>>>>>
> >>>>>>> cV <- chol(V)
> >>>>>>> crossprod(backsolve(cV, X, transpose=T))
> >>>>>>>
> >>>>>>> isto é ***muito*** mais rapido (compare com system.time())
> >>>>>>> do que
> >>>>>>>
> >>>>>>> t(X) %*% solve(V) %*% X
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> On Thu, 9 Aug 2012, Pedro Rafael wrote:
> >>>>>>>
> >>>>>>>> Com respeito a evitar de trabalhar com inversas de matrizes é fato
> >>>>>>>> mas
> >>>>>>>> infelizmente tenho que trabalhar. Para trabalhar com modelos de
> >>>>>>>> regressão heterocedásticos vou precisar de cálculo de inversas de
> >>>>>>>> matrizes para o cálculo da estrutura de covariância de tal
> >>>>>>>> estimador.
> >>>>>>>> [   ],
> >>>>>>>> Pedro Rafael Diniz Marinho.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Em 9 de agosto de 2012 17:02, Pedro Rafael
> >>>>>>>> <[hidden email]> escreveu:
> >>>>>>>>>
> >>>>>>>>> Verdade Benilton inverter matrizes requer um custo computacional
> >>>>>>>>> bastante elevado. Atualmente programo em C e programei muito
> pouco
> >>>>>>>>> em
> >>>>>>>>> C++ por curiosidade. Você acreditar que códigos em C++ perdem
> muito
> >>>>>>>>> desempenho em comparação à C considerando que a programação em
> >>>>>>>>> ambas
> >>>>>>>>> as linguagens sejam eficientes? Você tem boas experiências na
> >>>>>>>>> utilização de C++ para programação estatística e para uso em
> >>>>>>>>> simulações?
> >>>>>>>>>
> >>>>>>>>> Gostei bastante dessa biblioteca que você me passou, muito
> >>>>>>>>> interessante. Não conhecia. A única biblioteca para álgebra
> linear
> >>>>>>>>> livre que eu conhecia era a GSL.
> >>>>>>>>>
> >>>>>>>>> [   ],
> >>>>>>>>> Pedro Rafael Diniz Marinho.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> Em 9 de agosto de 2012 15:58, beniltoncarvalho [via R-br]
> >>>>>>>>> <[hidden email]> escreveu:
> >>>>>>>>>>
> >>>>>>>>>> Eu ainda sou do time "se vc esta' invertendo matriz, entao vc
> >>>>>>>>>> esta'
> >>>>>>>>>> fazendo algo errado"...
> >>>>>>>>>>
> >>>>>>>>>> Em C++, vc vai querer olhar o que Armadillo tem a oferecer.
> >>>>>>>>>>
> >>>>>>>>>> b
> >>>>>>>>>>
> >>>>>>>>>> 2012/8/9 Pedro Rafael <[hidden email]>:
> >>>>>>>>>>
> >>>>>>>>>>> Pessoal gostaria de saber qual uma boa biblioteca livre de C
> para
> >>>>>>>>>>> trabalhar com operações matriciais como inversas e produtos de
> >>>>>>>>>>> matrizes. Qualquer dica será interessante.
> >>>>>>>>>>>
> >>>>>>>>>>> [ ] 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.
> >>>>>>>>>>
> >>>>>>>>>> _______________________________________________
> >>>>>>>>>> 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-OFF-Biblioteca-C-para-matrizes-tp4655808p4655810.html
> >>>>>>>>>> To unsubscribe from R-br, click here.
> >>>>>>>>>> NAML
> >>>>>>>>
> >>>>>>>> _______________________________________________
> >>>>>>>> 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.
> >>>>>>>
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> 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.
> >>>>>> _______________________________________________
> >>>>>> 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-OFF-Biblioteca-C-para-matrizes-tp4655808p4655826.html
> >>>>>> To unsubscribe from R-br, click here.
> >>>>>> NAML
> >>>>> _______________________________________________
> >>>>> 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.
> >>>> _______________________________________________
> >>>> 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-OFF-Biblioteca-C-para-matrizes-tp4655808p4655830.html
> >>>> To unsubscribe from R-br, click here.
> >>>> NAML
> >> _______________________________________________
> >> 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.
> > _______________________________________________
> > 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-OFF-Biblioteca-C-para-matrizes-tp4655808p4655833.html
> > To unsubscribe from R-br, click here.
> > NAML
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120811/8c7569ab/attachment.html>


Mais detalhes sobre a lista de discussão R-br