Re: Motion 31: V04.2 Revision of proposed Level 1 text
Ulrich, and Van
On 13 Feb 2012, at 11:16, Ulrich Kulisch wrote:
> Let me summarize what has been said: To adapt the computer more to the needs of interval arithmetic two requirements are needed:
>
> I. fast hardware support for interval arithmetic (easy obtainable on existing processors), and
> II. a fast and exact multiply and accumulate operation (continued addition), or what is equivalent to it, an exact scalar product (for the double precision format. For a simple sketch see the poster).
>
> Both are basic arithmetic operations for interval arithmetic and should be listed as such in the document.
>
> Let me make another remark: Arithmetic for extended real intervals (closed and connected sets of real numbers) is free of exceptions. So a standard for interval arithmetic could be greatly simplified by a more strict separation form IEEE754 for floating-point arithmetic (no automatic type transfer from floating-point to interval).
I agree with much that you write in this email, but this question still concerns me: How are the features specified in Motion 9 realised at the User Program level? Must it be possible to define Complete Format (CF) variables? The specification that completeAddition must be able to evaluate
CF = CF + CF, i.e. add two CF values to get a CF result,
seemingly implies that a language must support such variables. Whereas if one weakens this to only require
CF = CF + FP, i.e. add a floating point value to a CF values to get a CF result,
one can get by with just a single CF object that acts as an accumulator.
In the former case a language needs a constructor for CF objects, and variables referencing them, and presumably assignments to such variables. Hence, I fear, it complicates P1788 as we must specify a CF constructor?
In the latter case it doesn't need a constructor or CF variables as the accumulator can be "just there"; and a "reset accumulator to zero" operation takes the place of assignment. Like a cash till.
How does it work in XSC?
John