
auto correct fail -llapack -lblas Sent from a mobile device On Aug 13, 2012 2:11 AM, "Pedro Rafael" <pedro.rafael.marinho@gmail.com> wrote:
Olá Benilton, como vai? O programa que estou testando é bem simples. Na verdade a matriz é pequena, 5 por 5. Veja:
#include<iostream> #include"armadillo"
using namespace arma;
int main() { mat A = randu<mat>(5,5); double x = det(A); return 0; }
Compilei como você me indicou e obtive o seguinte erro.
/usr/include/armadillo_bits/compiler_setup.hpp:117:6: warning: #warning "*** Detected GCC 4.7.0 / 4.7.1, which has a regression (bug)" [-Wcpp] /usr/include/armadillo_bits/compiler_setup.hpp:118:6: warning: #warning "*** See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53549 " [-Wcpp] /usr/include/armadillo_bits/compiler_setup.hpp:119:6: warning: #warning "*** A partial workaround for the bug has been activated, " [-Wcpp] /usr/include/armadillo_bits/compiler_setup.hpp:120:6: warning: #warning "*** which reduces some functionality in fixed-size matrices " [-Wcpp] /usr/bin/ld: cannot find -lapack collect2: error: ld returned 1 exit status
[ ], Pedro Rafael Diniz Marinho. Em 12 de agosto de 2012 22:06, beniltoncarvalho [via R-br] <ml-node+s2285057n4655841h48@n4.nabble.com> escreveu:
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" <[hidden email]> 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 <[hidden email]> 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] <[hidden email]> 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-tp4655... >>>>>>>>>> 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-tp4655... >>>>>> 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-tp4655... >>>> 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-tp4655... > 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-tp4655...
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-tp4655...
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.