No, that’s not normal, it's not supposed to give you a runtime error.
Anything that results in an answer that is Not a Number is supposed to be set 
to NaN, not give you a runtime error 217 and terminate.
Infinity minus itself is undefined and therefore Not a Number and should be set 
to NaN, but I don't get NaN, I get a fatal runtime error 217.   To answer your 
question:  if you know Inf + Inf = Inf and you know Inf - Inf = Nan then 
Properly evaluating from left to right: Inf + Inf - Inf = Inf - Inf = NAN     
or if you want to do it the other way:  inf - inf + inf  = NaN + Inf = NaN

(+inf) + (+inf) should and does give you (+inf)
(-inf) + (-inf) should and does give you (-inf)
(+inf) - (+inf) should give you (NAN)  but it gives you Runtime Error 217
(-inf) - (-inf) should give you (NAN)  but it gives you Runtime Error 217
(+inf) + (-inf) should give you (NAN)  but it gives you Runtime Error 217
(-inf) + (+inf) should give you (NAN)  but it gives you Runtime Error 217

Snip from refrence at: https://en.wikipedia.org/wiki/NaN 
Operations generating NaN:
There are three kinds of operations that can return NaN:

1. Operations with a NaN as at least one operand.

2. Indeterminate forms: 
      a. The divisions (±0) / (±0) and (±∞) / (±∞).
      b. The multiplications (±0) × (±∞) and (±∞) × (±0).
      c. The additions (+∞) + (−∞), (−∞) + (+∞) and equivalent subtractions 
(+∞) − (+∞) and (−∞) −  (−∞).
      d. The standard has alternative functions for powers: 
            The standard pow function and the integer exponent pown function 
define 0⁰, 1∞, and ∞⁰ as 1.
            The powr function defines all three indeterminate forms as invalid 
operations and so returns NaN.

3. Real operations with complex results, for example: 
      The square root of a negative number.
      The logarithm of a negative number.
      The inverse sine or cosine of a number that is less than −1 or greater 
than 1.

#2c clearly defines that NaN is set for the above conditions that are failing 
with a runtime error 217

Also reference:
https://www.philforhumanity.com/Infinity_Minus_Infinity.html


James
-----Original Message-----
From: fpc-pascal [mailto:fpc-pascal-boun...@lists.freepascal.org] On Behalf Of 
Marco van de Voort
Sent: Wednesday, June 20, 2018 9:21 AM
To: FPC-Pascal users discussions <fpc-pascal@lists.freepascal.org>
Subject: Re: [fpc-pascal] math with infinity and NaN

In our previous episode, C Western said:
> > I can do things like +infinity*2 and +infinity-3 and even 
> > sqr(infinity) and power(infinity,10) the results are still +Inf which is 
> > expected?
> >  ??but I can?t do anything involving subtracting infinity from 
> > infinity.?

Isn't that normal? Otherwise, what would inf+inf-inf be if you know that
(inf+inf) =inf


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org 
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to