Interval package

From Octave
Revision as of 05:53, 14 October 2014 by Oheim (talk | contribs) (Fixed dumb error)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

The interval package provides data types and fundamental operations for real valued interval arithmetic based on the common floating-point format “binary64” a. k. a. double-precision. Interval arithmetic produces mathematically proven numerical results. It aims to be standard compliant with the (upcoming) IEEE 1788 and therefore implements the set-based interval arithmetic flavor.

Warning: The package has not yet been released.

Motivation

Give a digital computer a problem in arithmetic, and it will grind away methodically, tirelessly, at gigahertz speed, until ultimately it produces the wrong answer. … An interval computation yields a pair of numbers, an upper and a lower bound, which are guaranteed to enclose the exact answer. Maybe you still don’t know the truth, but at least you know how much you don’t know.
—Brian Hayes, DOI: 10.1511/2003.6.484
octave:1> 19 * 0.1 - 2 + 0.1
ans =  1.3878e-16
octave:1> x = infsup ("0.1");
octave:2> 19 * x - 2 + x
ans = [-3.1918911957973251e-16, +1.3877787807814457e-16]

Quick start introduction

Input and output

Decorations

Arithmetic operations

Reverse arithmetic operations

Numerical operations

Boolean operations