[R-br] [OFF] Biblioteca C para matrizes.
Pedro Rafael
pedro.rafael.marinho em gmail.com
Sexta Agosto 10 23:58:40 BRT 2012
Não compreendi os exemplos. Vou dar uma lida maior e buscar mais coisas na net.
Obrigado,
Pedro Rafael Diniz Marinho.
Em 10 de agosto de 2012 23:04, beniltoncarvalho [via R-br]
<ml-node+s2285057n4655836h93 em n4.nabble.com> escreveu:
> 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" <[hidden email]> 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]
>> <[hidden email]> 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
>> [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-tp4655808p4655836.html
> To unsubscribe from R-br, click here.
> NAML
Mais detalhes sobre a lista de discussão R-br