JuliaIntervals / ValidatedNumerics.jl

Rigorous floating-point calculations with interval arithmetic in Julia
Other
84 stars 17 forks source link

IEEE 1788 conformance #67

Open dpsanders opened 8 years ago

dpsanders commented 8 years ago

It would be very useful to have a check list of functions that still need to be implemented for conformance with the IEEE 1788 standard for interval arithmetic.

Cc @lbenet

lbenet commented 8 years ago

The following is a list of required functions to be IEEE 1788 conforming, following Nehmeier's paper (cf. sect. II.C.1, "Required operations for all flavours"):

EDIT: -[ ] Case function: case

(I have worked a little bit in what remains to be done, but haven't pushed it yet.)

Aside from these points, I have implemented some of the operations required in the set based flavor, but many other are needed. Among those, we lack the reverse mode functionality, some elementary functions, the slope functions, overlap, and complete arithmetic operations (see section II.C.2). Note that we have some ad hoc implementation of divToPair in newton, but it is worth to convert it into a function.

In addition, in my opinion we should:

dpsanders commented 8 years ago

Great list, thanks!

lbenet commented 8 years ago

I forgot to include in the list that for full conformance, lots of things (typically related to rounding) have to be documented.

dpsanders commented 8 years ago

@lbenet There is a list of required reverse-mode functions on page 37 of the Standard that seems to be missing. I have added them to the above list.

lbenet commented 8 years ago

It's true that there are the reverse mode functions. If I recall correctly, this are related to one (specific) documented flavor, but it is not required for all flavors. In any case, it is worth to include those functions.

Maybe you should open another issue on this.

lbenet commented 8 years ago

I just noticed that there is an entry on the list in #65 precisely on this. It is the last item of what is required.

dpsanders commented 8 years ago

Reverse mode functions is now issue #119

We can now input 1D intervals in midpoint-radius representation, and output them in that representation. Multi-dimensional midpoint-radius is a very different direction.