comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: Ug...Floating Illegal Operand...leave me alone!
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Ug...Floating Illegal Operand...leave me alone! [message #25776] Tue, 17 July 2001 19:03 Go to previous message
Jeff Guerber is currently offline  Jeff Guerber
Messages: 41
Registered: July 2000
Member
Matt,

It sounds to me like some data in your 73rd dataset is likely producing
a situation where both (b*c) and d are 0.0 (or rather, some elements of
b*c and d, since you imply they're arrays). They would not necessarily be
0.0 in the input dataset -- if b, c, and d are themselves the result of
calculations, you could get zeros due to eg. underflows, in which the
result of a calculation is so small that the computer has to set it to
zero (for example, 1.e-30 * 1.e-30).

Try printing out b*c and d before you do the division, and look for
zeros. (I don't think there's a way to make IDL halt at the time the
error occurs, as it does with other errors.) Also, try printing out a and
looking for the value "NaN" (a floating-point "Not-a-Number", which is
the result of 0./0.) Once variable (or array element) becomes a NaN, the
NaN just propagates through any further calculations that the variable
takes part in, eventually showing up on the output. (That's one of the
really nice things about IEEE arithmetic -- you can tell which results are
illegitimate.) Hope this helps,

Jeff Guerber
Raytheon ITSS / NASA GSFC code 971
(but I don't speak for either one)

On 17 Jul 2001, Matt wrote:

> Hey everyone,
>
> I'm rather new to the world of IDL...so bear with me. I've been
> attempting to debug a program all afternoon...but the damn "Program
> caused an arithmetic error: Floating illegal operand" message won't go
> away no matter what I do. I've narrowed the problem down to an
> expression in the following form:
> a=a+((b*c)/d) where all the variables are of DOUBLE precision. They
> were originally FLOAT but I changed them all and thought it may have
> been the problem, but apparently it wasn't.
>
> A little more detail on the program: I'm working through about 73
> datasets using a for loop. The expression above is embedded in an
> additional for loop so as to perform some manipulations ((b*c)/d) on
> arrays and sum all these manipulations into 'a.' The interesting
> thing is, I can run 1, 10, or even 72 datasets and not get the
> "floating illegal operand" error. Only when I run all 73 datasets at
> once do I recieve the message when the program is complete. I'm
> getting results as well...I just question whether or not they're right
> because of the arithmetic error.
>
> I'm not sure if the Check_math function would help out here or not. I
> tried using it earlier but I couldn't actually figure out how to use
> it properly. Can anyone help me out here at all? Either helping me
> diagnose this or helping me figure out how to use the check_math
> function? I'm really stumped and extremely frustrated. Thanks.
>
> Matt
> randomguy79@yahoo.com
[Message index]
 
Read Message
Read Message
Previous Topic: Re: widget-programming
Next Topic: Re: OPLOT fails intermittently, any ideas?

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Sat Oct 11 05:54:14 PDT 2025

Total time taken to generate the page: 1.27892 seconds