[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: denormalized FP numbers causing exceptions



I am not sure if you can tell the compiler to handle them better,  but
you can
and probably should check for them your self. Look at the fpclassify
function.
It will tell you if have and fp number problems.  If it returns that
your number
is normalized, then you can continue.

There are about eight different states that a floating point number can
have;
quiet signaling
signaling
positive denormalized
negative denormalized
positive zero
negative zero
positive normal
negative normal

Hope this helps,
Dan


"Robert M. Riches Jr." wrote:

> Oops!  Make that 10^-300-10^-308:
>
> On Redhat 7.1, default GCC version 2.96, I'm getting floating
> exceptions on what appear to be denormalized numbers.  The code
> is the Bow (or rainbow) information retrieval toolkit, and it's
> blowing up in the following code:
>
>           double scores_sum = 0;
>           for (ci = 0; ci < barrel->cdocs->length; ci++)
>             scores_sum += scores[ci];
>
> It appears whenever an input to the '+=' operator is less than
> 10^-300-10^-308, or so, I get the floating exception.  At least
> one of the numbers is around 1, so the tiny numbers could be
> rounded to zero and it wouldn't affect the final result.  I
> suppose I could try to add code to change an array element to
> zero if it was less than about 10^290, but this may hit the same
> exception as the addition attempt.
>
> Is there a compiler option to either not generate denormalized
> numbers or to handle them gracefully?
>
> Thanks.
>
> Robert Riches
> richesr1@inetarena.com
> rriches@cse.ogi.edu
>
> _______________________________________________
> Axp-list mailing list
> Axp-list@redhat.com
> https://listman.redhat.com/mailman/listinfo/axp-list





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index] []