[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-apl] Hang in Residue
From: |
Alexey Veretennikov |
Subject: |
Re: [Bug-apl] Hang in Residue |
Date: |
Mon, 08 Jan 2018 22:42:24 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.3 (darwin) |
Hi,
Probably this could be of help:
http://www.softelectro.ru/ieee754_en.html
Elias Mårtenson <address@hidden> writes:
> I can't easily find the document online without having to pay for it, but
> doesn't the Wikipedia
> page contain all the information you need?
> https://en.m.wikipedia.org/wiki/IEEE_754
>
> On 9 Jan 2018 12:14 am, "Juergen Sauermann" <address@hidden> wrote:
>
> Hi Jay,
>
> I am still puzzled by the ISO description (and can't find the "IEEE standard
> for Binary
> Floating-Point Arithmetic (754)"
> referenced in the standard.
>
> Would you be able to provide the expected expected output of your example
> below?
>
> If I follow the ISO description of mod in the ISO APL standard word by word
> then I am
> getting pretty odd values at times.
>
> Best Regards,
> /// Jürgen
>
> On 01/08/2018 02:19 PM, Jay Foad wrote:
>
> 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 <address@hidden>
> 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
> <address@hidden> 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
> <address@hidden> 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
> <address@hidden> wrote:
>
> 1e¯200|1e200 hangs on my mac.
>
> > On Jan 5, 2018, at 6:57 AM, Juergen
> Sauermann <address@hidden>
> 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.
> >
>
>
--
Br,
/Alexey
- Re: [Bug-apl] Hang in Residue, (continued)
- Re: [Bug-apl] Hang in Residue, Juergen Sauermann, 2018/01/06
- Re: [Bug-apl] Hang in Residue, Jay Foad, 2018/01/08
- Re: [Bug-apl] Hang in Residue, Juergen Sauermann, 2018/01/08
- Re: [Bug-apl] Hang in Residue, Jay Foad, 2018/01/08
- Re: [Bug-apl] Hang in Residue, Juergen Sauermann, 2018/01/08
- Re: [Bug-apl] Hang in Residue, Jay Foad, 2018/01/08
- Re: [Bug-apl] Hang in Residue, Juergen Sauermann, 2018/01/08
- Re: [Bug-apl] Hang in Residue, Elias Mårtenson, 2018/01/08
- Re: [Bug-apl] Hang in Residue, Juergen Sauermann, 2018/01/08
- Re: [Bug-apl] Hang in Residue, Xiao-Yong Jin, 2018/01/08
- Re: [Bug-apl] Hang in Residue,
Alexey Veretennikov <=
- Re: [Bug-apl] Hang in Residue, Jay Foad, 2018/01/09
- Re: [Bug-apl] Hang in Residue, Juergen Sauermann, 2018/01/09
- Re: [Bug-apl] Hang in Residue, Jay Foad, 2018/01/10