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

Draft Level 2, in time for Novosibirsk



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.