1,847
edits
(Updated links and developer information, added reference to other IEEE 1788 software and new IEEE Std 1788.1) |
m (Remove redundant Category:Packages.) |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
The GNU Octave interval package for real-valued [https://en.wikipedia.org/wiki/Interval_arithmetic interval arithmetic]. | The GNU Octave interval package for real-valued [https://en.wikipedia.org/wiki/Interval_arithmetic interval arithmetic]. | ||
* Intervals are closed, connected subsets of the real numbers. Intervals may be unbound (in either or both directions) or empty. In special cases <code>+inf</code> and <code>-inf</code> are used to denote boundaries of unbound intervals, but any member of the interval is a finite real number. | |||
* Classical functions are extended to interval functions as follows: The result of function f evaluated on interval x is an interval '''enclosure of all possible values''' of f over x where the function is defined. Most interval arithmetic functions in this package manage to produce a very accurate such enclosure. | |||
* The result of an interval arithmetic function is an interval in general. It might happen, that the mathematical range of a function consist of several intervals, but their union will be returned, e. g., 1 / [-1, 1] = [Entire]. | |||
[[File:Interval-sombrero.png|280px|thumb| | __TOC__ | ||
[[File:Interval-sombrero.png|280px|thumb|left|Example: Plotting the interval enclosure of a function]] | |||
<div style="clear:left"></div> | |||
== Distribution == | == Distribution == | ||
Line 188: | Line 193: | ||
* Methods with more than 1 parameter must convert non-interval parameters to intervals using the class constructor. This allows the user to mix non-interval parameters with interval parameters and the function treats any inputs as intervals. Invalid values will be handled by the class constructors. | * Methods with more than 1 parameter must convert non-interval parameters to intervals using the class constructor. This allows the user to mix non-interval parameters with interval parameters and the function treats any inputs as intervals. Invalid values will be handled by the class constructors. | ||
if (not (isa (x, "infsup"))) | if (not (isa (x, "infsup"))) | ||
x = infsup (x); | |||
endif | endif | ||
if (not (isa (y, "infsup"))) | if (not (isa (y, "infsup"))) | ||
y = infsup (y); | |||
endif | endif | ||
if (not (isa (x, "infsupdec"))) | if (not (isa (x, "infsupdec"))) | ||
x = infsupdec (x); | |||
endif | endif | ||
if (not (isa (y, "infsupdec"))) | if (not (isa (y, "infsupdec"))) | ||
y = infsupdec (y); | |||
endif | endif | ||
Line 210: | Line 215: | ||
If Octave functions would introduce arithmetic/rounding errors, there are interfaces to MPFR (<code>mpfr_function_d</code>) and crlibm (<code>crlibm_function</code>), which can produce guaranteed boundaries. | If Octave functions would introduce arithmetic/rounding errors, there are interfaces to MPFR (<code>mpfr_function_d</code>) and crlibm (<code>crlibm_function</code>), which can produce guaranteed boundaries. | ||
==== Vectorization & Indexing ==== | ==== Vectorization & Indexing ==== | ||
Line 227: | Line 231: | ||
== VERSOFT == | == VERSOFT == | ||
The [http://uivtx.cs.cas.cz/~rohn/matlab/ VERSOFT] software package (by Jiří Rohn) has been released under a free software license (Expat license) and algorithms may be migrated into the interval package. | The [http://uivtx.cs.cas.cz/~rohn/matlab/ VERSOFT] software package (by Jiří Rohn) has been released under a free software license (Expat license) and algorithms may be migrated into the interval package. | ||
{| | {| | ||
Line 247: | Line 249: | ||
|verdet | |verdet | ||
|style="color:red"| trapped | |style="color:red"| trapped | ||
| depends on | | depends on <code>vereig</code> | ||
|- | |- | ||
|verdistsing | |verdistsing | ||
Line 254: | Line 256: | ||
|- | |- | ||
|verfullcolrank | |verfullcolrank | ||
|style="color:red"| | |style="color:red"| trapped | ||
| | | depends on <code>verpinv</code> | ||
|- | |- | ||
|vernorm2 | |vernorm2 | ||
Line 296: | Line 298: | ||
|- | |- | ||
|vereig | |vereig | ||
|style="color:red"| | |style="color:red"| trapped | ||
| | | depends on proprietary <code>verifyeig</code> function from INTLAB, depends on complex interval arithmetic | ||
|- | |- | ||
|<s>vereigback</s> | |<s>vereigback</s> | ||
Line 305: | Line 307: | ||
|verspectrad | |verspectrad | ||
|style="color:red"| trapped | |style="color:red"| trapped | ||
| main part implemented in | | main part implemented in <code>vereig</code> | ||
|- | |- | ||
|colspan="3"|Real (or complex) data only: Matrices: Decompositions | |colspan="3"|Real (or complex) data only: Matrices: Decompositions | ||
Line 319: | Line 321: | ||
|verspectdec | |verspectdec | ||
|style="color:red"| trapped | |style="color:red"| trapped | ||
| main part implemented in | | main part implemented in <code>vereig</code> | ||
|- | |- | ||
|verthinsvd | |verthinsvd | ||
|style="color:red"| | |style="color:red"| trapped | ||
| implemented in | | implemented in <code>vereig</code> | ||
|- | |- | ||
|colspan="3"|Real (or complex) data only: Matrix functions | |colspan="3"|Real (or complex) data only: Matrix functions | ||
Line 329: | Line 331: | ||
|vermatfun | |vermatfun | ||
|style="color:red"| trapped | |style="color:red"| trapped | ||
| main part implemented in | | main part implemented in <code>vereig</code> | ||
|- | |- | ||
|colspan="3"|Real data only: Linear systems (rectangular) | |colspan="3"|Real data only: Linear systems (rectangular) | ||
Line 348: | Line 350: | ||
|- | |- | ||
|verlcpall | |verlcpall | ||
|style="color: | |style="color:green"| free | ||
| depends on <code | | depends on <code>verabsvaleqnall</code> | ||
|- | |- | ||
|<s>verlinprog</s> | |<s>verlinprog</s> | ||
Line 356: | Line 358: | ||
|- | |- | ||
|verlinprogg | |verlinprogg | ||
|style="color:red"| | |style="color:red"| trapped | ||
| | | depends on <code>verfullcolrank</code> | ||
|- | |- | ||
|verquadprog | |verquadprog | ||
Line 367: | Line 369: | ||
|verroots | |verroots | ||
|style="color:red"| trapped | |style="color:red"| trapped | ||
| main part implemented in | | main part implemented in <code>vereig</code> | ||
|- | |- | ||
|colspan="3"|Interval (or real) data: Matrices | |colspan="3"|Interval (or real) data: Matrices | ||
Line 376: | Line 378: | ||
|- | |- | ||
|verinverse | |verinverse | ||
|style="color: | |style="color:green"| free | ||
| depends on <code style="color: | | depends on <code style="color:green">verintervalhull</code>, to be migrated | ||
|- | |- | ||
|<s>verinvnonneg</s> | |<s>verinvnonneg</s> | ||
Line 388: | Line 390: | ||
|verregsing | |verregsing | ||
|style="color:red"| trapped | |style="color:red"| trapped | ||
| dependency <code>verifylss</code> is implemented as <code>mldivide</code>; depends on <code>isspd</code> (by Rump, to be checked) and <code | | dependency <code>verifylss</code> is implemented as <code>mldivide</code>; depends on <code>isspd</code> (by Rump, to be checked) and <code>verintervalhull</code>; see also [http://uivtx.cs.cas.cz/~rohn/publist/singreg.pdf] | ||
|- | |- | ||
|colspan="3"|Interval (or real) data: Matrices: Eigenvalues and singular values | |colspan="3"|Interval (or real) data: Matrices: Eigenvalues and singular values | ||
Line 394: | Line 396: | ||
|vereigsym | |vereigsym | ||
|style="color:red"| trapped | |style="color:red"| trapped | ||
| main part implemented in | | main part implemented in <code>vereig</code>, depends on <code style="color:red">verspectrad</code> | ||
|- | |- | ||
|vereigval | |vereigval | ||
Line 424: | Line 426: | ||
|- | |- | ||
|verenclinthull | |verenclinthull | ||
|style="color: | |style="color:green"| free | ||
| | | to be migrated | ||
|- | |- | ||
|verhullparam | |verhullparam | ||
|style="color: | |style="color:green"| free | ||
| | | depends on <code>verintervalhull</code>, to be migrated | ||
|- | |- | ||
|verhullpatt | |verhullpatt | ||
|style="color: | |style="color:green"| free | ||
| | | depends on <code>verhullparam</code>, to be migrated | ||
|- | |- | ||
|verintervalhull | |verintervalhull | ||
|style="color: | |style="color:green"| free | ||
| | | to be migrated | ||
|- | |- | ||
|colspan="3"|Interval (or real) data: Linear systems (rectangular) | |colspan="3"|Interval (or real) data: Linear systems (rectangular) | ||
Line 463: | Line 465: | ||
|- | |- | ||
| verabsvaleqn | | verabsvaleqn | ||
|style="color: | |style="color:green"| free | ||
| | | to be migrated | ||
|- | |- | ||
| verabsvaleqnall | | verabsvaleqnall | ||
|style="color: | |style="color:green"| free | ||
| depends on <code | | depends on <code>verabsvaleqn</code>, see also [http://uivtx.cs.cas.cz/~rohn/publist/absvaleqnall.pdf], to be migrated | ||
|- | |- | ||
| verbasintnpprob | | verbasintnpprob | ||
Line 477: | Line 479: | ||
[[Category:Octave | [[Category:Octave Forge]] |