Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Motion 8 Exception Handling PASSES



P1788,

Motion 8 Exception Handling PASSES
   Yes - 37; No - 4; Needed for quorum: 35 (one Voter moved to Observer)

The motion is listed in the attachment to this message.

George Corliss, P1788 Voting Tabulator


Here are comments received.  I gather them all here for ease of reference,
especially by the Technical Editor, in case these comments can assist
further progress.


------ Forwarded Message
From: George Corliss <George.Corliss@xxxxxxxxxxxxx>
Date: Thu, 19 Nov 2009 14:31:44 -0600
Subject: M0008.02_Exception_Handling YES

YES to M0008.02 Exception_Handling

Discussions at Dagstuhl this week have convinced me that I do not care much
for the concept of decorations - they are too complicated - but I like much
LESS any alternative I have yet heard.

As the motion promises, I expect further clarifying discussions.  I hope we
can simplify what is described so far.




------ Forwarded Message
From: Ralph Baker Kearfott <rbk@xxxxxxxxxxxx>
Date: Thu, 19 Nov 2009 16:16:37 -0600
Subject: Re: M0008.02_Exception_Handling YES

My vote is "YES"

I agree with George that more is work is needed to get
solid standard verbiage.  However, discussions
at Dagstuhl have led to my understanding "decorations" more,
and, although there is a down side, they're not so bad.
We do need SOME kind of exception handling, and there is
more than one exception we need.  Something like a "decoration"
naturally follows from that.




------ Forwarded Message
From: Nate Hayes <nh@xxxxxxxxxxxxxxxxx>
Date: Thu, 19 Nov 2009 17:14:16 -0600
Subject: Re: M0008.02_Exception_Handling YES

FWIW:

I believe it should be possible. As it stands, the rules for decorations are
overly-generalized. THis was intentional, since we don't yet know what is
the required list of trits, and various trits might potentially have
competing requirements. So the generality seemed appropriate at this stage.

If we are able to weed out certain trits and/or competing requirements, I
believe many simplifications can be made.

Nate

P.S. When trying to decide how to vote, people might want to remember at
this point we are not yet voting on language for the standard; just general
directions we want the standard to go.




------ Forwarded Message
From: John Pryce <j.d.pryce@xxxxxxxxxxxx>
Date: Sat, 21 Nov 2009 03:13:45 -0600
Subject: M0008.02_Exception_Handling YES

YES to M0008.02 Exception_Handling

Like George, I think that for handling interval exceptions, the
decoration approach is the best so far offered. My yes vote should be
interpreted as "I support what we have so far. But it needs a LOT
more work, especially in the Level 2 semantics of exceptions and how
these should be specified within the standard. Let's do that work."




------ Forwarded Message
From: "Hossam A. H. Fahmy" <hfahmy@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 22 Nov 2009 03:13:14 -0600
Subject: M0008.02_Exception_Handling YES

Dear 1788 group,

I vote Yes on our current general scheme to use decoration for exception
handling and hope that we will finalize the details as time passes.



------ Forwarded Message
From: Michel Hack <hack@xxxxxxxxxxxxxx>
Date: Sun, 22 Nov 2009 11:43:10 -0600
Subject: M0008.02_Exception_Handling YES

My vote is YES.

Having just re-read the motion, I am impressed with the care it takes
to circumscribe its scope, and to mention which aspects need refinement
through further motions -- so I can offer an unqualified YES here.


A comment on form:  it was (as usual) rather painful to extract the text
of the motion from the .pdf file (which happened to have font problems
on my PC, making it almost unprintable).  Yet it looks like the original
was in fact a plain-text document before it got mutilated by Acrobat.
The .pdf (even though compressed) was also MUCH larger than the plaintext.
It's a shame that (after PC-DOS) PCs lost the ability to handle plaintext
files well (e.g. print generically on LPT1, edit, grep, etc.).  Luckily
our listserv environment is still plaintext, though frightfully many email
systems seem to switch to HTML-only -- and rather gaudy HTML at that.  The
MSword .doc format is somewhat better at permitting text to be extracted,
but I'd love to find some general way to convert from plaintext to a
PC-friendly format (needed by most users) and back...


Minor comment on substance:  Motion 8 section 3.3 paragraph 3 states that
one cannot extract an interval from a bare decoration.  This is generally
true, but SOME decorations should map properly to either bare Empty or
bare Entire.  It is however made clear that this level of discussion is
beyond the scope of the motion at hand.


Michel Hack, IBM Research.
(I find it useful to present complete affiliation detail on Votes.)




------ Forwarded Message
From: Frédéric Goualard <Frederic.Goualard@xxxxxxxxxxxxxx>
Date: Mon, 23 Nov 2009 09:05:57 -0600
To: "stds-1788@xxxxxxxx" <stds-1788@xxxxxxxx>
Subject: Re: M0008.02_Exception_Handling NO

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I vote NO on Motion 8.02 on the following grounds:

Decorations as proposed by Motion 8.02 have the potential to greatly
enhance the usefulness of interval arithmetic libraries. I have no doubt
about that.

On the other hand, I believe that the standardization process should
sanction techniques and practices that stood the test of time. I am not
aware of any interval arithmetic library that already implements such
decorated intervals. What if, once the standard is passed, decorations
are never used because the way they were defined makes them inconvenient
to use? Are we sure that the decorations defined are the only ones of
importance to all users of interval arithmetic? Will the propagation
rules chosen prove sound for all applications of interval arithmetic?

As I understand it, nobody has any experience whatsoever with
programming with decorated intervals. With work, we may be able to
introduce in the standard a carefully chosen set of decorations with
sound propagation rules. Are we sure all of them will be worth the
trouble *in practice*?

Moreover, the whole machinery of decorations adds complexity to the
standard and raises the bar for potential implementors.

Besides, this is not as if introducing and standardizing decorations was
a necessity now: as said previously on the list, interval arithmetic
libraries have already proved their power and usefulness. And they have
done so without decorations being widely available.

More broadly, I am in favor of standardizing only what is already known
to work and to be useful. Let us add powerful additions like decorations
in the next version of the standard, once the first simple one is widely
accepted and implemented.

FG.
- --
Frédéric Goualard                                 LINA - UMR CNRS 6241
Tel.: +33 2 51 12 58 38    Univ. of Nantes - Ecole des Mines de Nantes
Fax.: +33 2 51 12 58 12            2, rue de la Houssinière - BP 92208
http://goualard.frederic.free.fr/               F-44322 NANTES CEDEX 3



------ Forwarded Message
From: Arnold Neumaier <Arnold.Neumaier@xxxxxxxxxxxx>
Date: Mon, 23 Nov 2009 10:28:12 -0600
To: Frédéric Goualard <Frederic.Goualard@xxxxxxxxxxxxxx>
Subject: Re: M0008.02_Exception_Handling NO

Frédéric Goualard wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I vote NO on Motion 8.02 on the following grounds:
>
> Decorations as proposed by Motion 8.02 have the potential to greatly
> enhance the usefulness of interval arithmetic libraries. I have no doubt
> about that.
>
> On the other hand, I believe that the standardization process should
> sanction techniques and practices that stood the test of time.
[...]
> More broadly, I am in favor of standardizing only what is already known
> to work and to be useful. Let us add powerful additions like decorations
> in the next version of the standard, once the first simple one is widely
> accepted and implemented.

Note the the IEEE754 standard also introduced directed rounding and
NaN's, for which there was no previous experience.

------ End of Forwarded Message




------ Forwarded Message
From: Frédéric GOUALARD <Frederic.Goualard@xxxxxxxxxxxxxx>
Date: Mon, 23 Nov 2009 11:51:19 -0600
To: Arnold Neumaier <Arnold.Neumaier@xxxxxxxxxxxx>
Cc: "stds-1788@xxxxxxxx" <stds-1788@xxxxxxxx>
Subject: Re: M0008.02_Exception_Handling NO

> Frédéric Goualard wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> I vote NO on Motion 8.02 on the following grounds:
>>
>> Decorations as proposed by Motion 8.02 have the potential to greatly
>> enhance the usefulness of interval arithmetic libraries. I have no doubt
>> about that.
>>
>> On the other hand, I believe that the standardization process should
>> sanction techniques and practices that stood the test of time.
> [...]
>> More broadly, I am in favor of standardizing only what is already known
>> to work and to be useful. Let us add powerful additions like decorations
>> in the next version of the standard, once the first simple one is widely
>> accepted and implemented.
>
> Note the the IEEE754 standard also introduced directed rounding and
> NaN's, for which there was no previous experience.

Or did it? My understanding was that Intel already had a conforming chip
(i8087?) before the standard was even voted thanks to Kahan's early work.

------ End of Forwarded Message




------ Forwarded Message
From: "R. Baker Kearfott" <rbk@xxxxxxxxxxxxx>
Date: Mon, 23 Nov 2009 12:31:59 -0600
To: Frédéric GOUALARD <Frederic.Goualard@xxxxxxxxxxxxxx>, stds-1788
<stds-1788@xxxxxxxxxxxxxxxxx>
Subject: Re: M0008.02_Exception_Handling NO

Frédéric,

I'm not sure about the actual timing, but I always knew the
8087 as the "IEEE chip."  It is not uncommon for vendors to
implement the standard before it is actually official.  They
run the risk of the standard being changed a little, but
they have the advantage of a conforming product right away.

Does anyone care to try out the "decorated intervals" proposal?
(For instance, it might be built on top of INTLAB.)

Best regards,

Baker



------ Forwarded Message
From: Michel Hack <hack@xxxxxxxxxxxxxx>
Date: Mon, 23 Nov 2009 13:24:35 -0600
To: stds-1788 <stds-1788@xxxxxxxxxxxxxxxxx>
Subject: IEEE 754-1985 and Intel 8087

(Let's not misuse a "Subject:" reserved for voting!)

The Intel chip did come out before the standard, and indeed there were
several deviations, some of which got corrected in later versions.

One of the issues that got settled late was the decision to support
only one kind of infinity, signed affine infinity, and to drop the
unsigned projective infinity.  There were also changes with respect
to NaNs and so-called "pseudo-subnormal" entities (if I can trust my
memory; my "8087 book" is at home and I'm not).

The whole thrust of the Kahan-initiated effort was however to enshrine a
complete set of floating-point primitives, not just common practice which
at the time was a scattered set of incompatible formats and features.
Here I want to stress "complete" -- precisely to avoid that missing but
needed features would be implemented in diverging and incompatible ways.

It is true that some things were overspecified and thus never fully
supported, such as the exception model (which may have been adequate
in its time but is problematic in today's multicore world), and others
were underspecified and thus led to incompatibilities which 754-2008
had to carry along -- but on the whole I think it was rather successful.

To get back to Motion 8:  this is 1788's attempt at laying the proper
foundations for exception support.  SOMETHING is needed, and so the
issue CANNOT be deferred to a "revised 1788" -- otherwise we will end
up with grossly-incompatible disjoint "solutions".

Michel.





------ Forwarded Message
From: Bob Davis <bob@xxxxxxxx>
Date: Mon, 23 Nov 2009 14:29:48 -0600
To: "R. Baker Kearfott" <rbk@xxxxxxxxxxxxx>
Cc: Frédéric Goualard <Frederic.Goualard@xxxxxxxxxxxxxx>,
"stds-1788@xxxxxxxx" <stds-1788@xxxxxxxx>
Subject: Re: Standardizing existing practice or not?

Baker,

New techniques and libraries for Interval Artitmatic are or will be
developed and written over the next decade, of generation, by the
members of this committee or by their students as an ongoing process.

The operations will be carried out on devices that we are surely not
aware of  yet in bits or Qubits, or on organic problem solvers.

Speed of computing the answer to an operation is always brought forward
to boost a particular algorithm/method over another.  The rate of change
of the processing power continues to increase making those arguments
relatively less important.  As I recall, subject to a better memory, in
the floating point math, much, much less than 1% of the computational
time was actually spent on actual FP operations, except in one or two
concocted cases, while the remainder was just handling the data.  I
suspect the same will hold for IA.  The usefulness of IA is probably not
computationally speed driven.

IEEE 754 served the industry well by making sure that users got the SAME
answer for a given operation with the same input regardless of the
technique, hardware or software used to get the answer.  P1788 could
strive for a similar success story.

The SAME answer is not necessarily always the most correct answer, which
may be arguable, but is more useful.  Reproducible results of IA
operations, defined independently of specific library, or algorithm,
should foster the use of IA.

My $0.02 on this.

Respectfully,
Bob Davis




------ Forwarded Message
From: Sylvain Pion <Sylvain.Pion@xxxxxxxxxxxxxxx>
Date: Tue, 24 Nov 2009 11:12:49 -0600
To: stds-1788 <stds-1788@xxxxxxxxxxxxxxxxx>
Subject: M0008.02_Exception_Handling NO

I vote NO for motion M0008.02.


It's obviously important to know about discontinuities and
other exceptional events in interval computations, but I would
prefer to see this addressed in the standard by introducing
variants of functions which return some additional information
separately, and leave the propagation rules outside of the
standard completely.

The motion text is too imprecise for me at this stage to agree
on the particular direction it proposes.  For example, not
specifying which properties are considered can change the
deal : some properties could be altered by an addition
operation, while some others can only be altered by more
complex operations.  And if costly operations (say,
division, sqrt, or worse) are the only ones concerned, then we
could consider that the cost of a separate treatment/propagation
of the additional information is amortized, and so
folding this task inside the main decorated-interval
operation would not be needed.

My goal here is to make it *easy* for hardware vendors
to support the critical interval operations.  That is,
it should be a relative no-brainer to extend an existing
SIMD unit to support the interval functions of this standard.

Concretely, what I would propose instead would be to have
functions like sqrt(x) which return an interval y, together
with the "exceptional" information in a separate (integer) register i.
This should vectorize without problem, with an accompanying
integer vector-register.
Then if you need to propagate or combine the information
one way or another, you do it by considering the information
registers.


Of course, at the programming language level, one can
encapsulate all the propagation rules the way the motion says
(or rather, says a later motion would specify).
But I think that this part should not be specified in this standard.
This is more a topic for the -er subgroup anyway.


Some other remarks on the motion :

- "trit" is not a very good name to me for {true, false, possibly}
  since it does not carry a relation to ternary logic specifically.
  tribool might be better (as in boost::tribool for those who know
  about this class).  Maybe 4 values might find more use and still
  fit in 2 bits.  The C++ interval proposal comes with a bool_set class
  representing {true, false, true_or_false, neither_true_nor_false}.
  (I don't claim this name is better, for the 4th value can be useful)

- I can't make sense of the rationale paragraph for limiting
  the trits to 5 since it only considers bare decorations.

- In my experience using IA for controlling rounding error propagation,
  I never needed those exceptions.  However, there is one place where
  I use C++ exceptions, which is when comparing intervals.  Strangely,
  this does not seem to be covered by the motion, although the text
  is fuzzy enough that we could interpret it as if it did (?).
  Note : the C++ interval proposal makes the comparison operators return
         a bool_set object mentioned above.

--
Sylvain Pion
INRIA Sophia-Antipolis
Geometrica Project-Team
CGAL, http://cgal.org/




------ Forwarded Message
From: Nate Hayes <nh@xxxxxxxxxxxxxxxxx>
Reply-To: Nate Hayes <nh@xxxxxxxxxxxxxxxxx>
Date: Tue, 24 Nov 2009 11:29:05 -0600
To: Sylvain Pion <Sylvain.Pion@xxxxxxxxxxxxxxx>, stds-1788
<stds-1788@xxxxxxxxxxxxxxxxx>
Subject: Vectorizing motion 8

Sylvain Pion wrote:
> My goal here is to make it *easy* for hardware vendors
> to support the critical interval operations.  That is,
> it should be a relative no-brainer to extend an existing
> SIMD unit to support the interval functions of this standard.
>
> Concretely, what I would propose instead would be to have
> functions like sqrt(x) which return an interval y, together
> with the "exceptional" information in a separate (integer) register i.
> This should vectorize without problem, with an accompanying
> integer vector-register.
> Then if you need to propagate or combine the information
> one way or another, you do it by considering the information
> registers.

I also agree with all of this, although IMHO what you describe is a concrete
implementation of a decorated interval. So it is an example of a (would-be)
conforming implementation.

For example, if the values in the integer registers are not propogated, then
this can be viewed as a "forgetful" operation.

> Of course, at the programming language level, one can
> encapsulate all the propagation rules the way the motion says
> (or rather, says a later motion would specify).
> But I think that this part should not be specified in this standard.


I agree.
This was by design.

Sincerely,

Nate




------ Forwarded Message
From: Jean-Pierre Merlet <Jean-Pierre.Merlet@xxxxxxxxxxxxxxx>
Reply-To: "Jean-Pierre.Merlet@xxxxxxxxxxxxxxx"
<Jean-Pierre.Merlet@xxxxxxxxxxxxxxx>
Date: Thu, 26 Nov 2009 06:48:22 -0600
To: "stds-1788@xxxxxxxxxxxxxxxxx" <stds-1788@xxxxxxxxxxxxxxxxx>
Subject: M0008.02_Exception_Handling YES

My vote is reluctantly YES. I feel that exception handling at the
interval level will not be sufficient and that treatment at the
expression level will be necessary. But what is proposed may be
sufficient to handle relatively simple cases




------ Forwarded Message
From: Gilles Chabert <gilles.chabert@xxxxxx>
Date: Thu, 26 Nov 2009 10:22:34 -0600
To: "owner-stds-1788@xxxxxxxxxxxxxxxxx" <owner-stds-1788@xxxxxxxxxxxxxxxxx>
Cc: stds-1788 <stds-1788@xxxxxxxxxxxxxxxxx>
Subject: M0008.02_Exception_Handling NO

I vote NO, following Sylvain Pion's arguments

------ End of Forwarded Message




------ Forwarded Message
From: Vincent Lefevre <vincent@xxxxxxxxxx>
Date: Fri, 27 Nov 2009 10:54:04 -0600
To: "stds-1788@xxxxxxxx" <stds-1788@xxxxxxxx>
Subject: M0008.02_Exception_Handling YES

My vote is YES.

Note: I haven't had the time to read all the discussions yet. But
the end of 3.4 (about a possible hardware representation of bare
decorations by a pair of FP numbers, one or two of which being a
NaN) is a bit surprising. This representation is fine (though more
or less a hack) if the goal is to have a common type allowing to
represent a bare interval and a bare decoration at the same time,
but this doesn't seem to be really useful: if one wants to deal
with decorated intervals without much restriction, one would then
need a tuple of 4 FP numbers, which would be inefficient...

--
Vincent Lefèvre <vincent@xxxxxxxxxx> - Web: <http://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / Arénaire project (LIP, ENS-Lyon)



Attachment: Motion8.02.pdf
Description: Motion8.02.pdf