Thread Links | Date Links | ||||
---|---|---|---|---|---|
Thread Prev | Thread Next | Thread Index | Date Prev | Date Next | Date Index |
P1788 Following the passing of Motion 36 I have been working further on the (set-based) draft standard text. I discussed it with a subgroup of people -- Vincent Lefevre, Michel Hack and Siegfried Rump being the most active over the last three weeks and making many substantial comments. I sent them a draft about a week ago, asking them to suggest final edits before the Novosibirsk meeting. I have not had any, so I now copy that draft to everyone without change. I have concentrated on Level 2, which I think most people see as the heart of the standard. So that is where I hope people will also concentrate comment and criticism. What IS in it. (a) Chapter/section structure with Ch 1 for introductory material Ch 2 for the set-based standard, Ch 3 for the Kaucher/modal standard, and section numbers counting up independently of chapters. So chapters are "optical dividers" of the text, as Christian Keil put it. (b) Ch 1 introduces the flavors concept, as circulated recentlyt. (c) The (set-based) Level 1. (d) Level 2, much enhanced from what I sent round some months ago. See list of its current contents below. What IS NOT in it. - Decorations. Intervals are all bare. I have had to guess, in various places, how decorations will help us. - I/O, Motion 17. It needs pruning. For instance "input" is mostly subsumed under the text2interval constructor, which in turn is mostly subsumed under the definition of interval literals. - Recommended operations. This won't take long to do. I am hoping Juergen will soon put forward a list of actions needed to complete the job, and a rough timetable, which he said he is working on. Can we finish the set-based standard within 12 months? I believe so. How good it will be, depends on the group's close scrutiny. Things you may like to scrutinise: - Interval literals. Vincent was strongly in favour of standardising these at Level 2, and I agree. They are closely related to the text2interval constructor. - I found both literals and constructors *much* harder and more time consuming than I expected. I found it necessary to alter the Level 1 text on these. Does this require a special motion to approve it? Namely, there is a difficulty that in constructing an inf-sup interval [l,u], if l and u are "mixed format" (represented in different ways, e.g. one in decimal, one in binary), it may be expensive to determine whether l <= u. With high precision numbers in extendable formats it may be *very* expensive. If we aim to make it possible for exact real computation packages like Alan Eliasen's to conform, I suspect checking l <= u can even be *undecidable*. So there have to be restrictions on mixed format [l,u] constructors/literals, but just how restricted? Have I got the right balance in the text? This applies to both nums2interval() and text2interval(), and to the inf-sup kind of literal. - Following a suggestion from Baker, I renamed the "inner" operations as "cancellative", since "inner" suggests one seeks, in finite precision, a (largest) subset of the exact result, whereas actually one seeks a (tightest) enclosure. These operations run into a problem similar to the l <= u problem for constructors, see example below. For these operations, I confess to BOTH changing the Level 1 text from what was accepted, AND deviating from the Motion 12 spec, which I believe to be unsound for set-based intervals and which IMO doesn't cater for the problems of finite precision. (In the Kaucher world, as its inputs change, zz = cancelMinus(xx,yy) can slide seamlessly between proper and improper, but in the set-based world it hits a wall between "exists" and "doesn't exist".) Regards John Pryce
Attachment:
20120916P1788draftLevel1&2.pdf
Description: Adobe PDF document
A list of all the current Level 2 headings. ------------------------------------------- 8. Level 2 description 8.1. Level 2 introduction 8.2. Naming conventions for operations 8.3. 754-conformance 8.3.1. 754-conforming mixed-type arithmetic 8.4. Datums are tagged by names 8.5. Number formats 8.6. Bare interval types 8.6.1. Definition 8.6.2. Inf-sup and mid-rad types 8.7. Multi-precision interval types\xspace 8.8. Explicit and implicit types, and Level 2 hull operation 8.8.1. Hull in one dimension 8.8.2. Interval conversion 8.8.3. Hull in several dimensions 8.9. Level 2 interval extensions 8.10. Accuracy modes for inf-sup types 8.11. Required operations on bare intervals 8.11.1. Interval literals 8.11.2. Forward-mode elementary functions 8.11.3. Interval case expressions and case function 8.11.4. Reverse-mode elementary functions 8.11.5. Cancellative addition and subtraction 8.11.6. Non-arithmetic operations 8.11.7. Constructors 8.11.8. Numeric functions of intervals 8.11.9. Boolean functions of intervals 8.11.10. Complete arithmetic, dot product function Example of difficulty with cancellative operations in finite precision. ----------------------------------------------------------------------- Consider inf-sup intervals using 3 decimal digit floating point arithmetic. Let xx=[xlo,xhi]=[.000100,1.00] and yy=[ylo,yhi]=[-1.00,-.000200]. Thus xx is slightly the wider, so zz1 = cancelMinus(xx,yy) is defined (its exact value is [1.0001, 1.0002] whose tightest 3-digit enclosure is [1.00,1.01]). However zz2 = cancelMinus(yy,xx) is not defined. Using the formulae given in the Vienna proposal, one cannot discriminate these cases using naive 3 digit arithmetic -- real or simulated extra precision must be used. I can see that in this case, one can compare (xlo+yhi)=-.000100 with (ylo+xhi)=0.000, and make the correct decision just using 3 digit arithmetic. But how to get an algorithm that works for any 754-conforming format F? That is, assume xx and yy belong to the inf-sup type derived from F, and arithmetic is done entirely in F. An answer, please, from experts on high accuracy summation.