Re: Arithmetic error [message #29073 is a reply to message #12177] |
Fri, 01 February 2002 02:12   |
Nigel Wade
Messages: 286 Registered: March 1998
|
Senior Member |
|
|
Ed Wright wrote:
> in article a3b58p$kb2i$1@rook.le.ac.uk, Nigel Wade at nmw@ion.le.ac.uk
> wrote on 1/31/02 2:11 AM:
>
>> Ed Wright wrote:
>>
>>>
>>> To: IDL
>>> From: Ed Wright, JPL
>>>
>>> I require assistance with an odd problem. My current projects involves
>>> creating a dlm module of some 200+ routines from a library of 1500+
>>> routines. Several of the IDL callable routines replicate intrinsic IDL
>>> calls. While testing one such routine that calculates determinate of a
>>> 3X3 I encountered a problem. The numerical result between my determinant
>>> function and determn matches to 10^(-16).
>>>
>>> Now the odd thing. Under certain circumstances the use of my determinant
>>> function as an argument in another routine call causes an error:
>>>
>>> % Program caused arithmetic error: Floating illegal operand.
>>>
>>
>> That error means somewhere in your code you have generated a NaN (Not a
>> Number). The operations which generate NaNs include 0/0, Inf*0, sqrt(<0)
>> Inf-Inf,Inf/Inf (there may be others...).
>
> By code, should I take it to mean the external C code?
>
It could be either. Both IDL and C would generate the same floating point
exception. I can't offhand remember whether an exception in your C code
would generate this exception in IDL. But it might be that the C code
generates a Nan/Inf and then IDL generates the exception when it tries to
use it.
>>
>> Since you don't have a preceding 'Floating divide by zero', it's a fair
>> bet your error doesn't involve Inf. So, all you have to do is look
>> through your code to find where you might have a 0/0 or sqrt(<0). ;-)
>
> Oh, is that all. No problem. 300k lines - let me at them.... Mr.
> Codebuster, that's me.
Debugging external code is always fun.
I forsee extensive use of printf...
--
-----------------------------------------------------------
Nigel Wade, System Administrator, Space Plasma Physics Group,
University of Leicester, Leicester, LE1 7RH, UK
E-mail : nmw@ion.le.ac.uk
Phone : +44 (0)116 2523568, Fax : +44 (0)116 2523555
|
|
|