Yes, thanks! Now, when ⎕CT=0 there are some odd results:

      ⎕CT←0
      A←(-⌽A),0,A←1e¯200 1e¯100 1 1e100 1e200
      A∘.|A
 0E0   ¯1E100 ¯1E0   ¯1E¯100 ¯1E¯200 0 0E0    0E0    ¯1E200 0E0   0E0
 0E0    0E0   ¯1E0   ¯1E¯100 ¯1E¯200 0 0E0    0E0    ¯1E100 0E0   0E0
 0E0    0E0    0E0   ¯1E¯100 ¯1E¯200 0 0E0    0E0     0E0   0E0   0E0
 0E0    0E0    0E0    0E0    ¯1E¯200 0 0E0    0E0     0E0   0E0   0E0
 0E0    0E0    0E0    0E0     0E0    0 0E0    0E0     0E0   0E0   0E0
¯1E200 ¯1E100 ¯1E0   ¯1E¯100 ¯1E¯200 0 1E¯200 1E¯100  1E0   1E100 1E200
 0E0    0E0    0E0    0E0     0E0    0 0E0    0E0     0E0   0E0   0E0
 0E0    0E0    0E0    0E0     0E0    0 1E¯200 0E0     0E0   0E0   0E0
 0E0    0E0    0E0    0E0     0E0    0 1E¯200 1E¯100  0E0   0E0   0E0
 0E0    0E0    1E100  0E0     0E0    0 1E¯200 1E¯100  1E0   0E0   0E0
 0E0    0E0    1E200  0E0     0E0    0 1E¯200 1E¯100  1E0   1E100 0E0
      1e200|¯1
1E200

The standard explicitly says that the result should never be the same as
the (non-zero) left argument: "If Z is A , return zero."

Jay.

On 8 January 2018 at 12:26, Juergen Sauermann <juergen.sauerm...@t-online.de
> wrote:

> Hi Jay,
>
> maybe *SVN 1036* works better.
>
> /// Jürgen
>
>
> On 01/08/2018 01:02 PM, Jay Foad wrote:
>
> Thanks. With r1035 I get:
>
>       A←(-⌽A),0,A←1e¯200 1e¯100 1 1e100 1e200
>       A∘.|A
>  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
> ¯1E200  0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
> ¯1E200 ¯1E100 ¯1 ¯1E¯100 ¯1E¯200 0 1E¯200 1E¯100 1 1E100 1E200
>  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>
> One result stands out:
>
>       ¯1E¯200|¯1E200
> ¯1E200
>
> The result of A|B (with A non-zero) should be strictly smaller in
> magnitude than A, so this seems very wrong.
>
> Jay.
>
>
> On 8 January 2018 at 11:49, Juergen Sauermann <
> juergen.sauerm...@t-online.de> wrote:
>
>> Hi Jay,
>>
>> thanks, fixed in *SVN 1035*.
>>
>> BTW tryapl.com gives this:
>>
>> *      A←1E¯200 1E200  ¯1E¯200 ¯1E200*
>>
>> *      A ∘.∣ A*
>>
>> *0 0 0 0
>> 0 0 0 0
>> 0 0 0 0
>> 0 0 0 0*
>> /// Jürgen
>>
>>
>>
>> TOn 01/08/2018 10:29 AM, Jay Foad wrote:
>>
>> Thanks. At r1034 I get:
>>
>>       A←(-⌽A),0,A←1e¯200 1e¯100 1 1e100 1e200
>>       A∘.|A
>> DOMAIN ERROR
>>
>> And here's one of the cases that fails:
>>
>>       1e¯200|1e200
>> DOMAIN ERROR
>>
>> This still seems wrong to me, since the ISO standard for Residue says
>> "Implementations should avoid signalling limit-error in residue" with
>> advice on how to avoid it. (OK, it doesn't mention DOMAIN ERROR, but I
>> think the same principle applies.)
>>
>> Jay.
>>
>>
>> On 6 January 2018 at 11:56, Juergen Sauermann <
>> juergen.sauerm...@t-online.de> wrote:
>>
>>> Hi,
>>>
>>> thanks, fixed in *SVN 1029*.
>>>
>>> /// Jürgen
>>>
>>>
>>> On 01/05/2018 04:37 PM, Jay Foad wrote:
>>>
>>> Yes, that expression hangs on my Linux box too. It gets stuck here:
>>>
>>> FloatCell::bif_residue (this=0x555555ae13a8, Z=0x555555ae24f8,
>>>     A=0x555555ae11d8) at FloatCell.cc:643
>>> 643              while (z < 0.0)    z = z + a;
>>> (gdb) p z
>>> $1 = -inf
>>> (gdb) p a
>>> $2 = 9.9999999999999998e-201
>>>
>>> Jay.
>>>
>>> On 5 January 2018 at 15:24, Xiao-Yong Jin <jinxiaoy...@gmail.com> wrote:
>>>
>>>> 1e¯200|1e200 hangs on my mac.
>>>>
>>>> > On Jan 5, 2018, at 6:57 AM, Juergen Sauermann <
>>>> juergen.sauerm...@t-online.de> wrote:
>>>> >
>>>> > Hi Jay,
>>>> >
>>>> > hmm, interesting. I am getting this:
>>>> >
>>>> >       A←(-⌽A),0,A←1e¯200 1e¯100 1 1e100 1e200
>>>> >       A∘.|A
>>>> >  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>>>> >  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>>>> >  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>>>> >  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>>>> >  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>>>> > ¯1E200 ¯1E100 ¯1 ¯1E¯100 ¯1E¯200 0 1E¯200 1E¯100 1 1E100 1E200
>>>> >  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>>>> >  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>>>> >  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>>>> >  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>>>> >  0E0    0E0    0  0E0     0E0    0 0E0    0E0    0 0E0   0E0
>>>> >
>>>> > I suppose it is one of the A[i] ∣ A[j] which causes the hanging so it
>>>> would
>>>> > be interesting to know which one. Probably one with +/- 1E¯200 or
>>>> 1E¯100.
>>>> >
>>>> > Best Regards,
>>>> > /// Jürgen
>>>> >
>>>> >
>>>> > On 01/05/2018 12:16 PM, Jay Foad wrote:
>>>> >> At svn r1028 on Linux I get:
>>>> >>
>>>> >>       A←(-⌽A),0,A←1e¯200 1e¯100 1 1e100 1e200
>>>> >>       A∘.|A
>>>> >> (hangs)
>>>> >>
>>>> >> Jay.
>>>> >
>>>>
>>>>
>>>
>>>
>>
>>
>
>

Reply via email to