Exemplos no pacote Rcpp. Sent from a mobile device On Aug 11, 2012 2:42 AM, "Pedro Rafael" <pedro.rafael.mari...@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+s2285057n465583...@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@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. >
_______________________________________________ R-br mailing list R-br@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.