Problema de 'underflow' no C/C++

1. Problema de 'underflow' no C/C++

Ednilton Santos de Oliveira
ednilton_so

(usa KUbuntu)

Enviado em 12/02/2011 - 15:29h

Olá pessoal,

Eu sei que a pergunta é um pouco específica, mas vai que dá sorte e alguém aí sabe. Estou fazendo umas contas em C usando o GSL (GNU Scientific Library), e estou tendo um problema com funções de Bessel. O código é compilado numa boa, mas quando está executando, ele retorna, depois de um tempo, o seguinte erro:
gsl: gamma.c:1467: ERROR: underflow
Default GSL error handler invoked.

Estou trabalhando com ordens muito grandes da função de Bessel, n=110, por exemplo. Já entendi que o problema é porque o GSL tenta dá valores a função de Bessel que são menores de o tipo "long double". Já mudei inclusive a precisão da função para "long double" pra ver se vai, mas dá o mesmo erro.

Já procurei no Google, mas como sou novo no C, talvez esteja deixando passar algo.

Obrigado.


  


2. Re: Problema de 'underflow' no C/C++

Fagner Amaral de Souza Candido
f_Candido

(usa Ubuntu)

Enviado em 13/02/2011 - 21:27h

Opa,

Bom, encontrei isso : http://www.opensubscriber.com/message/help-gsl@gnu.org/9700691.html

Realmente, é algo bem específico, está trabalhando com filtro de sinais?

Abraços


3. Re

Ednilton Santos de Oliveira
ednilton_so

(usa KUbuntu)

Enviado em 14/02/2011 - 18:00h

Olá,

Obrigado pela ajuda. Parece que a solução é razoável, mas um pouco que jogar a poeira para baixo do tapete. Ainda tenho que testar. O que eu fiz deu certo, foi dá um corte quando as funções atingem valores menores que 1e-300. Não sei se é a melhor forma de fazer isso, já que, aparentemente, estou com uma função que oscila.

Bem, não trabalho com filtro de sinais não. Trabalho com Gravitação Semiclássica e estou estudando o problema de espalhamento por buracos negros. A gente usa muito as funções de Bessel para realizar cálculos numéricos nessa área.

Abraço.


4. Re: Problema de 'underflow' no C/C++

Fagner Amaral de Souza Candido
f_Candido

(usa Ubuntu)

Enviado em 14/02/2011 - 18:31h

Opa,

Marque como resolvido, e talvez ajude alguém que tiver um problema semelhante.

Abraços


5. Re

Ednilton Santos de Oliveira
ednilton_so

(usa KUbuntu)

Enviado em 14/02/2011 - 18:33h

Olá,

Não sei se posso dizer que foi resolvido. O que eu fiz foi dar um contorno ao problema. Vou esperar mais alguns dias para ver se alguém aparece com uma solução mais de programador mesmo. Senão, marco como resolvido.

Valeu.


6. Re: Problema de 'underflow' no C/C++

Fagner Amaral de Souza Candido
f_Candido

(usa Ubuntu)

Enviado em 14/02/2011 - 19:27h

Olá,

Talvez isso não seja somente uma solução paliativa. Caso tu conheça sua função e como a mesma oscila, tu pode determinar os valores máximos e minímos que ela pode alcançar. Desta forma, essa pode ser uma decisão de projeto.

Abraços






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts