# LabVIEW

cancel
Showing results for
Did you mean:

## How can I check if the result is NaN

Hi!

I would like to check the result of formula node without checking the inputs one by one. Division by zero gives Inf. What about if I divide zero by zero? The result is NaN. I tried to compare (see picture) the result NaN with constant NaN but LED remained dark = false.

Ljubo.

Message 1 of 15
(17,105 Views)

## Re: How can I check if the result is NaN

Try this function. Or check if Y=0

Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
(Sorry no Labview "brag list" so far)
Message 2 of 15
(17,093 Views)

## Re: How can I check if the result is NaN

Coq rouge wrote:

Try this function.

Can't!

Never say "Oops." Always say "Ah, interesting!"

Message 3 of 15
(17,064 Views)

## Re: How can I check if the result is NaN

You will need to use the Not A Number/Path/Refnum? Function.
Certified LabVIEW Architect
Coleman Technologies
Message 4 of 15
(17,060 Views)

## Re: How can I check if the result is NaN

Thank you, Coq

Function Not A Number/Path/Refnum? works in case "zero divided by zero".

I would like to repeat: I don't want to check inputs one by one. My example is simplified to illustrate the problem. Formula can be much more complex with many inputs.

In fact I'm interested in catching all the errors which can occur during mathematical operations. C++ or Delphi for example, can report errors always when you try to execute an illegal math operation. And they have a mechanism to catch NaN, Inf ... (see Delphi code below)

b := 0;
c := 0;
try
a := b / c;
except

// this part of code is executed only if division a/b is invalid

a := 0;
end;

Is this possible in LabVIEW too ?

Regards,

Ljubo.

Message 5 of 15
(17,052 Views)

## Re: How can I check if the result is NaN

The Formula Node is somewhat limited in the number of functions and operators.  If you have the Full or Professional Development system, you might want to look at using a MathScript Node instead.

Mathscript Functions

Now is the right time to use %^<%Y-%m-%dT%H:%M:%S%3uZ>T
If you don't hate time zones, you're not a real programmer.

"You are what you don't automate"
Inplaceness is synonymous with insidiousness

Message 6 of 15
(17,035 Views)

## Re: How can I check if the result is NaN

Yes you can. I my picture is not censored. It will show how

Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
(Sorry no Labview "brag list" so far)
Message 7 of 15
(17,030 Views)

## Re: How can I check if the result is NaN

Hi, Phillip

MathScript functions give some hope. Programming class or Support could include a function or programming structure which catch an error. MathScript error output could also report an error or a warning, at least. User should know that input data is wrong. But it seems we will have to wait a newer version.

BTW, are this function trustworthy? The result of two structures (MathScript node and Formula node, see picture) are not always the same. SQRT(-1) should be NaN in both cases.

Regards,

Ljubo.

Message 8 of 15
(16,984 Views)

## Re: How can I check if the result is NaN

Ljubo wrote:

Function Not A Number/Path/Refnum? works in case "zero divided by zero".

Technically, that function will operate in any case when the value is NaN.

Ljubo wrote:

I would like to repeat: I don't want to check inputs one by one. My example is simplified to illustrate the problem. Formula can be much more complex with many inputs.

In fact I'm interested in catching all the errors which can occur during mathematical operations. C++ or Delphi for example, can report errors always when you try to execute an illegal math operation. And they have a mechanism to catch NaN, Inf ... (see Delphi code below)

b := 0;
c := 0;
try
a := b / c;
except

// this part of code is executed only if division a/b is invalid

a := 0;
end;

Is this possible in LabVIEW too ?

When you say one-by-one are you referring to an array? If so, that function is polymorphic so you can wire an array to it.

However, it sounds, based on your description, that you are trying to check *all* possible calculations being performed in LabVIEW. I'm not sure I understand the practicality of this, as 99% of calculations are not likely to create NaN/Inf values. It is usually better to identify specific parts of code in which such kinds of results can happen and check for them. As far as LabVIEW is concerned, it has no automatic way of stopping the code and reporting such errors, unless you consider conditional probes, but those only work in the development environment.

Message 9 of 15
(16,973 Views)

## Re: How can I check if the result is NaN

Ljubo wrote:

BTW, are this function trustworthy? The result of two structures (MathScript node and Formula node, see picture) are not always the same. SQRT(-1) should be NaN in both cases.

You are using the wrong datatype. The mathscript output should be set to complex (CDB).

(Still, it should be "0+1i" and not "-2.71051E-20 +1i", but that's just an approximation error.)

Message 10 of 15
(16,969 Views)