Hi Kacper,

thanks , fixed in SVN 376.

Except that (not so obviously) :

*       1E¯15 = 1E¯14
0
*

**/// Jürgen


On 07/15/2014 11:55 AM, Kacper Gutowski wrote:
When either of arguments of = has imaginary part of magnitude greater
than comparison tolerance, a domain error is thrown.

       ⎕CT
1E¯13
       0J1 = 0J1
DOMAIN ERROR
       0J1=0J1
       ^  ^

There are no conditions under which = is allowed to throw a domain
error at all so this is serious.


When it returns a value, it's still incorrect:

       0J¯1E¯15 = 0J1E¯15
1
       1E¯15J¯1E¯15 = ¯1E¯15J1E¯15
1

Both should be 0 regardless of ⎕CT because signs differ (arguments
are not in the same half-plane).  It's handled correctly for reals:

       ¯1E¯15 = 1E¯15
0


On the other hand:

       ⎕CT
1E¯13
       1J1E¯15 = 1J1E¯14
0
       1E¯15J0 = 1E¯14J0
0
       1E¯15 = 1E¯14
1

All obviously should be 1.


-k



Reply via email to