[R-br] [OFF] Biblioteca C para matrizes.
Benilton Carvalho
beniltoncarvalho em gmail.com
Domingo Agosto 12 22:06:23 BRT 2012
Vc precisa linkar p lapack blas
g++ -O2 -lapack -lblas programa.cpp
Obvio, não testado. Adicionalmente, p matriz grande vc deveria usar
log_det.
Sent from a mobile device
On Aug 13, 2012 12:44 AM, "Pedro Rafael" <pedro.rafael.marinho em gmail.com>
wrote:
> Pessoal estou tendo um problema com a biblioteca armadillo no linux
> fedora. Quando vou calcular o determinante de uma matriz muito pequena
> funciona mas quando a minha matriz é grande ocorre o seguinte erro:
>
> error: det(): use of ATLAS or LAPACK needs to be enabled
>
> Já instalei as bibliotecas cmake, blas-devel, lapack-devel,
> atlas-devel, boost-devel mas o erro permanece. Alguém já teve isso ou
> poderia dar uma dica de como corrigir esse problema?
>
> Obrigado,
> Pedro Rafael Diniz Marinho.
>
>
> Em 10 de agosto de 2012 23:58, Pedro Rafael
> <pedro.rafael.marinho em gmail.com> escreveu:
> > 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
> _______________________________________________
> 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/20120813/f6ddfcb8/attachment.html>
Mais detalhes sobre a lista de discussão R-br