diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index 6c05e5f1..6a09c210 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.11.2","generation_timestamp":"2024-12-24T11:27:08","documenter_version":"1.8.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.11.3","generation_timestamp":"2025-01-25T22:47:38","documenter_version":"1.8.0"}} \ No newline at end of file diff --git a/dev/examples/pi/index.html b/dev/examples/pi/index.html index 0952638d..f5acc36d 100644 --- a/dev/examples/pi/index.html +++ b/dev/examples/pi/index.html @@ -34,4 +34,4 @@ improved_pi_interval = backward_sum(10^6) -midradius(improved_pi_interval)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">(3.141592653589793, 4.787281682183675e-13)</code></pre><section class="footnotes is-size-7"><ul><li class="footnote" id="footnote-1"><a class="tag is-link" href="#citeref-1">1</a>W. Tucker, <a href="https://press.princeton.edu/books/hardcover/9780691147819/validated-numerics"><em>Validated Numerics: A Short Introduction to Rigorous Computations</em></a>, Princeton University Press, 2011.</li></ul></section></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../manual/api/">« API</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Tuesday 24 December 2024 11:27">Tuesday 24 December 2024</span>. Using Julia version 1.11.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> +midradius(improved_pi_interval)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">(3.141592653589793, 4.787281682183675e-13)</code></pre><section class="footnotes is-size-7"><ul><li class="footnote" id="footnote-1"><a class="tag is-link" href="#citeref-1">1</a>W. Tucker, <a href="https://press.princeton.edu/books/hardcover/9780691147819/validated-numerics"><em>Validated Numerics: A Short Introduction to Rigorous Computations</em></a>, Princeton University Press, 2011.</li></ul></section></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../manual/api/">« API</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Saturday 25 January 2025 22:47">Saturday 25 January 2025</span>. Using Julia version 1.11.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/dev/index.html b/dev/index.html index 33d41ad1..059a497f 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ <!DOCTYPE html> -<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Home · IntervalArithmetic.jl</title><meta name="title" content="Home · IntervalArithmetic.jl"/><meta property="og:title" content="Home · IntervalArithmetic.jl"/><meta property="twitter:title" content="Home · IntervalArithmetic.jl"/><meta name="description" content="Documentation for IntervalArithmetic.jl."/><meta property="og:description" content="Documentation for IntervalArithmetic.jl."/><meta property="twitter:description" content="Documentation for IntervalArithmetic.jl."/><meta property="og:url" content="https://juliaintervals.github.io/IntervalArithmetic.jl/"/><meta property="twitter:url" content="https://juliaintervals.github.io/IntervalArithmetic.jl/"/><link rel="canonical" href="https://juliaintervals.github.io/IntervalArithmetic.jl/"/><script data-outdated-warner src="assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="assets/documenter.js"></script><script src="search_index.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="assets/themeswap.js"></script><link href="assets/intervalarithmetic.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href>IntervalArithmetic.jl</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li class="is-active"><a class="tocitem" href>Home</a><ul class="internal"><li><a class="tocitem" href="#Installation"><span>Installation</span></a></li><li><a class="tocitem" href="#Citation"><span>Citation</span></a></li><li><a class="tocitem" href="#Related-packages"><span>Related packages</span></a></li></ul></li><li><a class="tocitem" href="intro/">Overview</a></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="manual/construction/">Constructing intervals</a></li><li><a class="tocitem" href="manual/usage/">Usage</a></li><li><a class="tocitem" href="manual/api/">API</a></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="examples/pi/">Rigorous computation of <span>$\pi$</span></a></li></ul></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Home</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Home</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/master/docs/src/index.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="IntervalArithmetic.jl"><a class="docs-heading-anchor" href="#IntervalArithmetic.jl">IntervalArithmetic.jl</a><a id="IntervalArithmetic.jl-1"></a><a class="docs-heading-anchor-permalink" href="#IntervalArithmetic.jl" title="Permalink"></a></h1><p>IntervalArithmetic.jl is a Julia package for validated numerics in Julia. All calculations are carried out using <a href="https://en.wikipedia.org/wiki/Interval_arithmetic">interval arithmetic</a> where quantities are treated as intervals. The final result is a rigorous enclosure of the true value.</p><h2 id="Installation"><a class="docs-heading-anchor" href="#Installation">Installation</a><a id="Installation-1"></a><a class="docs-heading-anchor-permalink" href="#Installation" title="Permalink"></a></h2><pre><code class="language-julia-repl hljs" style="display:block;">julia> using Pkg # Julia v1.9 or above</code><code class="nohighlight hljs ansi" style="display:block;"></code><br/><code class="language-julia-repl hljs" style="display:block;">julia> Pkg.add("IntervalArithmetic")</code><code class="nohighlight hljs ansi" style="display:block;"></code></pre><h2 id="Citation"><a class="docs-heading-anchor" href="#Citation">Citation</a><a id="Citation-1"></a><a class="docs-heading-anchor-permalink" href="#Citation" title="Permalink"></a></h2><p>If you use the IntervalArithmetic library in your publication, research, teaching, or other activities, please use the BibTeX template <a href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/main/CITATION.bib">CITATION.bib</a>.</p><h2 id="Related-packages"><a class="docs-heading-anchor" href="#Related-packages">Related packages</a><a id="Related-packages-1"></a><a class="docs-heading-anchor-permalink" href="#Related-packages" title="Permalink"></a></h2><ul><li><a href="https://github.com/andrioni/MPFI.jl">MPFI.jl</a>, a Julia wrapper around the <a href="http://perso.ens-lyon.fr/nathalie.revol/software.html">MPFI C library</a>, a multiple-precision interval arithmetic library based on MPFR</li><li><a href="https://github.com/invenia/Intervals.jl">Intervals.jl</a>, an alternative implementation of basic interval functions by Invenia Technical Computing</li></ul></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="intro/">Overview »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Tuesday 24 December 2024 11:27">Tuesday 24 December 2024</span>. Using Julia version 1.11.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> +<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Home · IntervalArithmetic.jl</title><meta name="title" content="Home · IntervalArithmetic.jl"/><meta property="og:title" content="Home · IntervalArithmetic.jl"/><meta property="twitter:title" content="Home · IntervalArithmetic.jl"/><meta name="description" content="Documentation for IntervalArithmetic.jl."/><meta property="og:description" content="Documentation for IntervalArithmetic.jl."/><meta property="twitter:description" content="Documentation for IntervalArithmetic.jl."/><meta property="og:url" content="https://juliaintervals.github.io/IntervalArithmetic.jl/"/><meta property="twitter:url" content="https://juliaintervals.github.io/IntervalArithmetic.jl/"/><link rel="canonical" href="https://juliaintervals.github.io/IntervalArithmetic.jl/"/><script data-outdated-warner src="assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="assets/documenter.js"></script><script src="search_index.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="assets/themeswap.js"></script><link href="assets/intervalarithmetic.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href>IntervalArithmetic.jl</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li class="is-active"><a class="tocitem" href>Home</a><ul class="internal"><li><a class="tocitem" href="#Installation"><span>Installation</span></a></li><li><a class="tocitem" href="#Citation"><span>Citation</span></a></li><li><a class="tocitem" href="#Related-packages"><span>Related packages</span></a></li></ul></li><li><a class="tocitem" href="intro/">Overview</a></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="manual/construction/">Constructing intervals</a></li><li><a class="tocitem" href="manual/usage/">Usage</a></li><li><a class="tocitem" href="manual/api/">API</a></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="examples/pi/">Rigorous computation of <span>$\pi$</span></a></li></ul></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Home</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Home</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/master/docs/src/index.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="IntervalArithmetic.jl"><a class="docs-heading-anchor" href="#IntervalArithmetic.jl">IntervalArithmetic.jl</a><a id="IntervalArithmetic.jl-1"></a><a class="docs-heading-anchor-permalink" href="#IntervalArithmetic.jl" title="Permalink"></a></h1><p>IntervalArithmetic.jl is a Julia package for validated numerics in Julia. All calculations are carried out using <a href="https://en.wikipedia.org/wiki/Interval_arithmetic">interval arithmetic</a> where quantities are treated as intervals. The final result is a rigorous enclosure of the true value.</p><h2 id="Installation"><a class="docs-heading-anchor" href="#Installation">Installation</a><a id="Installation-1"></a><a class="docs-heading-anchor-permalink" href="#Installation" title="Permalink"></a></h2><pre><code class="language-julia-repl hljs" style="display:block;">julia> using Pkg # Julia v1.9 or above</code><code class="nohighlight hljs ansi" style="display:block;"></code><br/><code class="language-julia-repl hljs" style="display:block;">julia> Pkg.add("IntervalArithmetic")</code><code class="nohighlight hljs ansi" style="display:block;"></code></pre><h2 id="Citation"><a class="docs-heading-anchor" href="#Citation">Citation</a><a id="Citation-1"></a><a class="docs-heading-anchor-permalink" href="#Citation" title="Permalink"></a></h2><p>If you use the IntervalArithmetic library in your publication, research, teaching, or other activities, please use the BibTeX template <a href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/main/CITATION.bib">CITATION.bib</a>.</p><h2 id="Related-packages"><a class="docs-heading-anchor" href="#Related-packages">Related packages</a><a id="Related-packages-1"></a><a class="docs-heading-anchor-permalink" href="#Related-packages" title="Permalink"></a></h2><ul><li><a href="https://github.com/andrioni/MPFI.jl">MPFI.jl</a>, a Julia wrapper around the <a href="http://perso.ens-lyon.fr/nathalie.revol/software.html">MPFI C library</a>, a multiple-precision interval arithmetic library based on MPFR</li><li><a href="https://github.com/invenia/Intervals.jl">Intervals.jl</a>, an alternative implementation of basic interval functions by Invenia Technical Computing</li></ul></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="intro/">Overview »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Saturday 25 January 2025 22:47">Saturday 25 January 2025</span>. Using Julia version 1.11.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/dev/intro/index.html b/dev/intro/index.html index ea89d083..d08d5273 100644 --- a/dev/intro/index.html +++ b/dev/intro/index.html @@ -4,4 +4,4 @@ [a^2, b^2], & 0 \le a \le b, \\ [0, \max(a^2, b^2)], & a \le 0 \le b, \\ [b^2, a^2], & a \le b \le 0. -\end{cases}\]</p><p>Of course, we must round the lower endpoint down and the upper endpoint up to get a guaranteed enclosure of the true result.</p><p>IntervalArithmetic defines such behaviour for a wide set of basic functions, thereby allowing the evaluation of more complex functions such as</p><p class="math-container">\[f(x) = \sin(3x^2 - 2 \cos(1/x))\]</p><h2 id="Applications"><a class="docs-heading-anchor" href="#Applications">Applications</a><a id="Applications-1"></a><a class="docs-heading-anchor-permalink" href="#Applications" title="Permalink"></a></h2><p>To illustrate the use of interval arithmetic, consider the following:</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> using IntervalArithmetic</code><code class="nohighlight hljs ansi" style="display:block;"></code><br/><code class="language-julia-repl hljs" style="display:block;">julia> f(x) = x^2 - 2</code><code class="nohighlight hljs ansi" style="display:block;">f (generic function with 1 method)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> x = interval(3, 4)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(3.0, 4.0, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> f(x)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(7.0, 14.0, com)_NG</code></pre><p>Since <code>f(x)</code> does not contain <code>0</code>, the true range of the function <span>$f$</span> over the interval <span>$[3, 4]$</span> is guaranteed not to contain <span>$0$</span>, and hence we obtain the following property.</p><p><strong>Theorem:</strong> <span>$f$</span> has no root in the interval <span>$[3, 4]$</span>.</p><p>This theorem has been obtained using floating-point computations! In fact, we can even extend this to semi-infinite intervals:</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> f(interval(3, Inf))</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(7.0, Inf, dac)_NG</code></pre><p>Therefore, we have excluded the whole unbounded set <span>$[3, \infty)$</span> from possibly containing roots of <span>$f$</span>.</p><p>Interval arithmetic is the foundation of more powerful and elaborate methods in the field of computer-assisted proofs (see e.g. <a href="https://juliaintervals.github.io/IntervalRootFinding.jl">IntervalRootFinding.jl</a>).</p><p>The interested reader may refer to the following books:</p><ul><li>R. E. Moore, R. B. Kearfott and M. J. Cloud, <a href="https://doi.org/10.1137/1.9780898717716"><em>Introduction to Interval Analysis</em></a>, Society for Industrial and Applied Mathematics (2009)</li><li>W. Tucker, <a href="https://press.princeton.edu/books/hardcover/9780691147819/validated-numerics"><em>Validated Numerics: A Short Introduction to Rigorous Computations</em></a>, Princeton University Press (2010)</li></ul><h2 id="Compliance-with-the-IEEE-standard-for-interval-arithmetic"><a class="docs-heading-anchor" href="#Compliance-with-the-IEEE-standard-for-interval-arithmetic">Compliance with the IEEE standard for interval arithmetic</a><a id="Compliance-with-the-IEEE-standard-for-interval-arithmetic-1"></a><a class="docs-heading-anchor-permalink" href="#Compliance-with-the-IEEE-standard-for-interval-arithmetic" title="Permalink"></a></h2><p><a href="https://juliaintervals.github.io/IntervalArithmetic.jl">IntervalArithmetic.jl</a> complies with the specifications described in the <a href="https://ieeexplore.ieee.org/document/7140721">IEEE standard for interval arithmetic</a>. However, the reverse-mode of functions are not implemented (see Section 10.5.4).</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../">« Home</a><a class="docs-footer-nextpage" href="../manual/construction/">Constructing intervals »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Tuesday 24 December 2024 11:27">Tuesday 24 December 2024</span>. Using Julia version 1.11.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> +\end{cases}\]</p><p>Of course, we must round the lower endpoint down and the upper endpoint up to get a guaranteed enclosure of the true result.</p><p>IntervalArithmetic defines such behaviour for a wide set of basic functions, thereby allowing the evaluation of more complex functions such as</p><p class="math-container">\[f(x) = \sin(3x^2 - 2 \cos(1/x))\]</p><h2 id="Applications"><a class="docs-heading-anchor" href="#Applications">Applications</a><a id="Applications-1"></a><a class="docs-heading-anchor-permalink" href="#Applications" title="Permalink"></a></h2><p>To illustrate the use of interval arithmetic, consider the following:</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> using IntervalArithmetic</code><code class="nohighlight hljs ansi" style="display:block;"></code><br/><code class="language-julia-repl hljs" style="display:block;">julia> f(x) = x^2 - 2</code><code class="nohighlight hljs ansi" style="display:block;">f (generic function with 1 method)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> x = interval(3, 4)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(3.0, 4.0, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> f(x)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(7.0, 14.0, com)_NG</code></pre><p>Since <code>f(x)</code> does not contain <code>0</code>, the true range of the function <span>$f$</span> over the interval <span>$[3, 4]$</span> is guaranteed not to contain <span>$0$</span>, and hence we obtain the following property.</p><p><strong>Theorem:</strong> <span>$f$</span> has no root in the interval <span>$[3, 4]$</span>.</p><p>This theorem has been obtained using floating-point computations! In fact, we can even extend this to semi-infinite intervals:</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> f(interval(3, Inf))</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(7.0, Inf, dac)_NG</code></pre><p>Therefore, we have excluded the whole unbounded set <span>$[3, \infty)$</span> from possibly containing roots of <span>$f$</span>.</p><p>Interval arithmetic is the foundation of more powerful and elaborate methods in the field of computer-assisted proofs (see e.g. <a href="https://juliaintervals.github.io/IntervalRootFinding.jl">IntervalRootFinding.jl</a>).</p><p>The interested reader may refer to the following books:</p><ul><li>R. E. Moore, R. B. Kearfott and M. J. Cloud, <a href="https://doi.org/10.1137/1.9780898717716"><em>Introduction to Interval Analysis</em></a>, Society for Industrial and Applied Mathematics (2009)</li><li>W. Tucker, <a href="https://press.princeton.edu/books/hardcover/9780691147819/validated-numerics"><em>Validated Numerics: A Short Introduction to Rigorous Computations</em></a>, Princeton University Press (2010)</li></ul><h2 id="Compliance-with-the-IEEE-standard-for-interval-arithmetic"><a class="docs-heading-anchor" href="#Compliance-with-the-IEEE-standard-for-interval-arithmetic">Compliance with the IEEE standard for interval arithmetic</a><a id="Compliance-with-the-IEEE-standard-for-interval-arithmetic-1"></a><a class="docs-heading-anchor-permalink" href="#Compliance-with-the-IEEE-standard-for-interval-arithmetic" title="Permalink"></a></h2><p><a href="https://juliaintervals.github.io/IntervalArithmetic.jl">IntervalArithmetic.jl</a> complies with the specifications described in the <a href="https://ieeexplore.ieee.org/document/7140721">IEEE standard for interval arithmetic</a>. However, the reverse-mode of functions are not implemented (see Section 10.5.4).</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../">« Home</a><a class="docs-footer-nextpage" href="../manual/construction/">Constructing intervals »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Saturday 25 January 2025 22:47">Saturday 25 January 2025</span>. Using Julia version 1.11.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/dev/manual/api/index.html b/dev/manual/api/index.html index e08f2203..c65d89d2 100644 --- a/dev/manual/api/index.html +++ b/dev/manual/api/index.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>API · IntervalArithmetic.jl</title><meta name="title" content="API · IntervalArithmetic.jl"/><meta property="og:title" content="API · IntervalArithmetic.jl"/><meta property="twitter:title" content="API · IntervalArithmetic.jl"/><meta name="description" content="Documentation for IntervalArithmetic.jl."/><meta property="og:description" content="Documentation for IntervalArithmetic.jl."/><meta property="twitter:description" content="Documentation for IntervalArithmetic.jl."/><meta property="og:url" content="https://juliaintervals.github.io/IntervalArithmetic.jl/manual/api/"/><meta property="twitter:url" content="https://juliaintervals.github.io/IntervalArithmetic.jl/manual/api/"/><link rel="canonical" href="https://juliaintervals.github.io/IntervalArithmetic.jl/manual/api/"/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script><link href="../../assets/intervalarithmetic.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../../">IntervalArithmetic.jl</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><a class="tocitem" href="../../intro/">Overview</a></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="../construction/">Constructing intervals</a></li><li><a class="tocitem" href="../usage/">Usage</a></li><li class="is-active"><a class="tocitem" href>API</a></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="../../examples/pi/">Rigorous computation of <span>$\pi$</span></a></li></ul></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Manual</a></li><li class="is-active"><a href>API</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>API</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/master/docs/src/manual/api.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="API"><a class="docs-heading-anchor" href="#API">API</a><a id="API-1"></a><a class="docs-heading-anchor-permalink" href="#API" title="Permalink"></a></h1><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.IntervalArithmetic" href="#IntervalArithmetic.IntervalArithmetic"><code>IntervalArithmetic.IntervalArithmetic</code></a> — <span class="docstring-category">Module</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">IntervalArithmetic</code></pre><p>Library for validated numerics using interval arithmetic.</p><p>Learn more: https://github.com/JuliaIntervals/IntervalArithmetic.jl</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/IntervalArithmetic.jl#L1-L7">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.BareInterval" href="#IntervalArithmetic.BareInterval"><code>IntervalArithmetic.BareInterval</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">BareInterval{T<:NumTypes}</code></pre><p>Interval type for guaranteed computation with interval arithmetic according to the IEEE Standard 1788-2015. Unlike <a href="#IntervalArithmetic.Interval"><code>Interval</code></a>, this bare interval does not have decorations, is not a subtype of <code>Real</code> and errors on operations mixing <code>BareInterval</code> and <code>Number</code>.</p><p>Fields:</p><ul><li><code>lo :: T</code></li><li><code>hi :: T</code></li></ul><p>Constructor compliant with the IEEE Standard 1788-2015: <a href="#IntervalArithmetic.bareinterval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}} where T"><code>bareinterval</code></a>.</p><p>See also: <a href="#IntervalArithmetic.Interval"><code>Interval</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/construction.jl#L64-L79">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.ExactReal" href="#IntervalArithmetic.ExactReal"><code>IntervalArithmetic.ExactReal</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ExactReal{T<:Real} <: Real</code></pre><p>Real numbers with the assurance that they precisely correspond to the number described by their binary form. The purpose is to guarantee that a non interval number is exact, so that <code>ExactReal</code> can be used with <code>Interval</code> without producing the "NG" flag.</p><div class="admonition is-danger"><header class="admonition-header">Danger</header><div class="admonition-body"><p>By using <code>ExactReal</code>, users acknowledge the responsibility of ensuring that the number they input corresponds to their intended value. For example, <code>ExactReal(0.1)</code> implies that the user knows that <span>$0.1$</span> can not be represented exactly as a binary number, and that they are using a slightly different number than <span>$0.1$</span>. To help identify the binary number, <code>ExactReal</code> is displayed without any rounding.</p><pre><code class="language-julia hljs">julia> ExactReal(0.1) +<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>API · IntervalArithmetic.jl</title><meta name="title" content="API · IntervalArithmetic.jl"/><meta property="og:title" content="API · IntervalArithmetic.jl"/><meta property="twitter:title" content="API · IntervalArithmetic.jl"/><meta name="description" content="Documentation for IntervalArithmetic.jl."/><meta property="og:description" content="Documentation for IntervalArithmetic.jl."/><meta property="twitter:description" content="Documentation for IntervalArithmetic.jl."/><meta property="og:url" content="https://juliaintervals.github.io/IntervalArithmetic.jl/manual/api/"/><meta property="twitter:url" content="https://juliaintervals.github.io/IntervalArithmetic.jl/manual/api/"/><link rel="canonical" href="https://juliaintervals.github.io/IntervalArithmetic.jl/manual/api/"/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script><link href="../../assets/intervalarithmetic.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../../">IntervalArithmetic.jl</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><a class="tocitem" href="../../intro/">Overview</a></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="../construction/">Constructing intervals</a></li><li><a class="tocitem" href="../usage/">Usage</a></li><li class="is-active"><a class="tocitem" href>API</a></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="../../examples/pi/">Rigorous computation of <span>$\pi$</span></a></li></ul></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Manual</a></li><li class="is-active"><a href>API</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>API</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/master/docs/src/manual/api.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="API"><a class="docs-heading-anchor" href="#API">API</a><a id="API-1"></a><a class="docs-heading-anchor-permalink" href="#API" title="Permalink"></a></h1><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.IntervalArithmetic" href="#IntervalArithmetic.IntervalArithmetic"><code>IntervalArithmetic.IntervalArithmetic</code></a> — <span class="docstring-category">Module</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">IntervalArithmetic</code></pre><p>Library for validated numerics using interval arithmetic.</p><p>Learn more: https://github.com/JuliaIntervals/IntervalArithmetic.jl</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/IntervalArithmetic.jl#L1-L7">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.BareInterval" href="#IntervalArithmetic.BareInterval"><code>IntervalArithmetic.BareInterval</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">BareInterval{T<:NumTypes}</code></pre><p>Interval type for guaranteed computation with interval arithmetic according to the IEEE Standard 1788-2015. Unlike <a href="#IntervalArithmetic.Interval"><code>Interval</code></a>, this bare interval does not have decorations, is not a subtype of <code>Real</code> and errors on operations mixing <code>BareInterval</code> and <code>Number</code>.</p><p>Fields:</p><ul><li><code>lo :: T</code></li><li><code>hi :: T</code></li></ul><p>Constructor compliant with the IEEE Standard 1788-2015: <a href="#IntervalArithmetic.bareinterval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}} where T"><code>bareinterval</code></a>.</p><p>See also: <a href="#IntervalArithmetic.Interval"><code>Interval</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/construction.jl#L64-L79">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.ExactReal" href="#IntervalArithmetic.ExactReal"><code>IntervalArithmetic.ExactReal</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ExactReal{T<:Real} <: Real</code></pre><p>Real numbers with the assurance that they precisely correspond to the number described by their binary form. The purpose is to guarantee that a non interval number is exact, so that <code>ExactReal</code> can be used with <code>Interval</code> without producing the "NG" flag.</p><div class="admonition is-danger"><header class="admonition-header">Danger</header><div class="admonition-body"><p>By using <code>ExactReal</code>, users acknowledge the responsibility of ensuring that the number they input corresponds to their intended value. For example, <code>ExactReal(0.1)</code> implies that the user knows that <span>$0.1$</span> can not be represented exactly as a binary number, and that they are using a slightly different number than <span>$0.1$</span>. To help identify the binary number, <code>ExactReal</code> is displayed without any rounding.</p><pre><code class="language-julia hljs">julia> ExactReal(0.1) ExactReal{Float64}(0.1000000000000000055511151231257827021181583404541015625)</code></pre><p>In case of doubt, <a href="#IntervalArithmetic.has_exact_display-Tuple{Real}"><code>has_exact_display</code></a> can be use to check if the string representation of a <code>Real</code> is equal to its binary value.</p></div></div><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> setdisplay(:full); julia> 0.5 * interval(1) @@ -16,7 +16,7 @@ julia> [ExactReal(1), interval(2)] 2-element Vector{Interval{Float64}}: Interval{Float64}(1.0, 1.0, com) - Interval{Float64}(2.0, 2.0, com)</code></pre><p>See also: <a href="#IntervalArithmetic.@exact-Tuple{Any}"><code>@exact</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/exact_literals.jl#L1-L49">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.Interval" href="#IntervalArithmetic.Interval"><code>IntervalArithmetic.Interval</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Interval{T<:NumTypes} <: Real</code></pre><p>Interval type for guaranteed computation with interval arithmetic according to the IEEE Standard 1788-2015. This structure combines a <a href="#IntervalArithmetic.BareInterval"><code>BareInterval</code></a> together with a <a href="@ref"><code>Decoration</code></a>.</p><p>Fields:</p><ul><li><code>bareinterval :: BareInterval{T}</code></li><li><code>decoration :: Decoration</code></li><li><code>isguaranteed :: Bool</code></li></ul><p>Constructors compliant with the IEEE Standard 1788-2015:</p><ul><li><a href="#IntervalArithmetic.interval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}, Tuple{Type{T}, Any, Any, IntervalArithmetic.Decoration}} where T"><code>interval</code></a></li><li><a href="@ref"><code>..</code></a></li><li><a href="@ref"><code>±</code></a></li><li><a href="#IntervalArithmetic.@I_str-Tuple{Any}"><code>@I_str</code></a></li></ul><p>See also: <a href="@ref"><code>±</code></a>, <a href="@ref"><code>..</code></a> and <a href="#IntervalArithmetic.@I_str-Tuple{Any}"><code>@I_str</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/construction.jl#L252-L271">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.bareinterval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}} where T" href="#IntervalArithmetic.bareinterval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}} where T"><code>IntervalArithmetic.bareinterval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">bareinterval(T, a, b)</code></pre><p>Create the bare interval <span>$[a, b]$</span> according to the IEEE Standard 1788-2015. The validity of the interval is checked by <a href="@ref"><code>is_valid_interval</code></a>: if <code>true</code> then a <code>BareInterval{T}</code> is constructed, otherwise an empty interval is returned.</p><div class="admonition is-danger"><header class="admonition-header">Danger</header><div class="admonition-body"><p>Nothing is done to compensate for the fact that floating point literals are rounded to the nearest when parsed (e.g. <code>0.1</code>). In such cases, parse the string containing the desired value to ensure its tight enclosure.</p></div></div><p>See also: <a href="#IntervalArithmetic.interval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}, Tuple{Type{T}, Any, Any, IntervalArithmetic.Decoration}} where T"><code>interval</code></a>, <a href="@ref"><code>±</code></a>, <a href="@ref"><code>..</code></a> and <a href="#IntervalArithmetic.@I_str-Tuple{Any}"><code>@I_str</code></a>.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> setdisplay(:full); + Interval{Float64}(2.0, 2.0, com)</code></pre><p>See also: <a href="#IntervalArithmetic.@exact-Tuple{Any}"><code>@exact</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/exact_literals.jl#L1-L49">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.Interval" href="#IntervalArithmetic.Interval"><code>IntervalArithmetic.Interval</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Interval{T<:NumTypes} <: Real</code></pre><p>Interval type for guaranteed computation with interval arithmetic according to the IEEE Standard 1788-2015. This structure combines a <a href="#IntervalArithmetic.BareInterval"><code>BareInterval</code></a> together with a <a href="@ref"><code>Decoration</code></a>.</p><p>Fields:</p><ul><li><code>bareinterval :: BareInterval{T}</code></li><li><code>decoration :: Decoration</code></li><li><code>isguaranteed :: Bool</code></li></ul><p>Constructors compliant with the IEEE Standard 1788-2015:</p><ul><li><a href="#IntervalArithmetic.interval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}, Tuple{Type{T}, Any, Any, IntervalArithmetic.Decoration}} where T"><code>interval</code></a></li><li><a href="@ref"><code>..</code></a></li><li><a href="@ref"><code>±</code></a></li><li><a href="#IntervalArithmetic.@I_str-Tuple{Any}"><code>@I_str</code></a></li></ul><p>See also: <a href="@ref"><code>±</code></a>, <a href="@ref"><code>..</code></a> and <a href="#IntervalArithmetic.@I_str-Tuple{Any}"><code>@I_str</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/construction.jl#L252-L271">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.bareinterval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}} where T" href="#IntervalArithmetic.bareinterval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}} where T"><code>IntervalArithmetic.bareinterval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">bareinterval(T, a, b)</code></pre><p>Create the bare interval <span>$[a, b]$</span> according to the IEEE Standard 1788-2015. The validity of the interval is checked by <a href="@ref"><code>is_valid_interval</code></a>: if <code>true</code> then a <code>BareInterval{T}</code> is constructed, otherwise an empty interval is returned.</p><div class="admonition is-danger"><header class="admonition-header">Danger</header><div class="admonition-body"><p>Nothing is done to compensate for the fact that floating point literals are rounded to the nearest when parsed (e.g. <code>0.1</code>). In such cases, parse the string containing the desired value to ensure its tight enclosure.</p></div></div><p>See also: <a href="#IntervalArithmetic.interval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}, Tuple{Type{T}, Any, Any, IntervalArithmetic.Decoration}} where T"><code>interval</code></a>, <a href="@ref"><code>±</code></a>, <a href="@ref"><code>..</code></a> and <a href="#IntervalArithmetic.@I_str-Tuple{Any}"><code>@I_str</code></a>.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> setdisplay(:full); julia> bareinterval(1//1, π) BareInterval{Rational{Int64}}(1//1, 85563208//27235615) @@ -28,8 +28,8 @@ BareInterval{Float64}(1.0, 3.1415926535897936) julia> bareinterval(BigFloat, 1, π) -BareInterval{BigFloat}(1.0, 3.141592653589793238462643383279502884197169399375105820974944592307816406286233)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/construction.jl#L150-L182">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.bisect-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Real}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.bisect-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Real}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.bisect</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">bisect(x, α=0.5) -bisect(x, i, α=0.5)</code></pre><p>Split an interval <code>x</code> at a relative position <code>α</code>, where <code>α = 0.5</code> corresponds to the midpoint.</p><p>Split the <code>i</code>-th component of a vector <code>x</code> at a relative position <code>α</code>, where <code>α = 0.5</code> corresponds to the midpoint.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/bisect.jl#L1-L10">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat" href="#IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>IntervalArithmetic.bounds</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">bounds(x)</code></pre><p>Bounds of <code>x</code> given as a tuple. Unlike <a href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>inf</code></a>, this function does not normalize the infimum of the interval.</p><p>See also: <a href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>inf</code></a>, <a href="#IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>sup</code></a>, <a href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>mid</code></a>, <a href="#IntervalArithmetic.diam-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>diam</code></a>, <a href="#IntervalArithmetic.radius-Tuple{BareInterval}"><code>radius</code></a> and <a href="#IntervalArithmetic.midradius-Tuple{BareInterval}"><code>midradius</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/numeric.jl#L55-L63">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.cancelminus-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.cancelminus-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.cancelminus</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">cancelminus(x, y)</code></pre><p>Compute the unique interval <code>z</code> such that <code>y + z == x</code>.</p><p>The result is decorated by at most <code>trv</code> (Section 11.7.1).</p><p>Implement the <code>cancelMinus</code> function of the IEEE Standard 1788-2015 (Section 9.2).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/cancellative.jl#L5-L13">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.cancelplus-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.cancelplus-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.cancelplus</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">cancelplus(x, y)</code></pre><p>Compute the unique interval <code>z</code> such that <code>y - z == x</code>; this is semantically equivalent to <code>cancelminus(x, -y)</code>.</p><p>The result is decorated by at most <code>trv</code> (Section 11.7.1).</p><p>Implement the <code>cancelPlus</code> function of the IEEE Standard 1788-2015 (Section 9.2).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/cancellative.jl#L46-L55">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.diam-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat" href="#IntervalArithmetic.diam-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>IntervalArithmetic.diam</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">diam(x)</code></pre><p>Diameter of <code>x</code>. If <code>x</code> is complex, then the diameter is the maximum diameter between its real and imaginary parts.</p><p>Implement the <code>wid</code> function of the IEEE Standard 1788-2015 (Table 9.2).</p><p>See also: <a href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>inf</code></a>, <a href="#IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>sup</code></a>, <a href="#IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>bounds</code></a>, <a href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>mid</code></a>, <a href="#IntervalArithmetic.radius-Tuple{BareInterval}"><code>radius</code></a> and <a href="#IntervalArithmetic.midradius-Tuple{BareInterval}"><code>midradius</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/numeric.jl#L139-L149">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.dist-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:AbstractFloat" href="#IntervalArithmetic.dist-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:AbstractFloat"><code>IntervalArithmetic.dist</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">dist(x, y)</code></pre><p>Distance between <code>x</code> and <code>y</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/numeric.jl#L290-L294">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.emptyinterval-Union{Tuple{Type{BareInterval{T}}}, Tuple{T}} where T<:AbstractFloat" href="#IntervalArithmetic.emptyinterval-Union{Tuple{Type{BareInterval{T}}}, Tuple{T}} where T<:AbstractFloat"><code>IntervalArithmetic.emptyinterval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">emptyinterval(T=default_numtype())</code></pre><p>Create an empty interval. This interval is an exception to the fact that the lower bound is larger than the upper one.</p><p>Implement the <code>empty</code> function of the IEEE Standard 1788-2015 (Section 10.5.2).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/constants.jl#L4-L11">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.entireinterval-Union{Tuple{Type{BareInterval{T}}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.entireinterval-Union{Tuple{Type{BareInterval{T}}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.entireinterval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">entireinterval(T=default_numtype())</code></pre><p>Create an interval representing the entire real line, or the entire complex plane if <code>T</code> is complex.</p><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>Depending on the flavor, infinity may or may not be considered part of the interval.</p></div></div><p>Implement the <code>entire</code> function of the IEEE Standard 1788-2015 (Section 10.5.2).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/constants.jl#L31-L42">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.extended_div-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.extended_div-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.extended_div</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">extended_div(x, y)</code></pre><p>Two-output division.</p><p>Implement the <code>mulRevToPair</code> function of the IEEE Standard 1788-2015 (Section 10.5.5).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/extended_div.jl#L4-L10">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.fastpow-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.fastpow-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.fastpow</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">fastpow(x, y)</code></pre><p>A faster implementation of <code>pow(x, y)</code>, at the cost of maybe returning a larger interval.</p><p>See also: <a href="#IntervalArithmetic.pow-Tuple{Any, Any}"><code>pow</code></a>, <a href="#IntervalArithmetic.pown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>pown</code></a> and <a href="#IntervalArithmetic.fastpown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>fastpown</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/arithmetic/power.jl#L317-L324">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.fastpown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.fastpown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.fastpown</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">fastpown(x, n)</code></pre><p>A faster implementation of <code>pown(x, n)</code>, at the cost of maybe returning a larger interval.</p><p>See also: <a href="#IntervalArithmetic.pown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>pown</code></a>, <a href="#IntervalArithmetic.pow-Tuple{Any, Any}"><code>pow</code></a> and <a href="#IntervalArithmetic.fastpow-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>fastpow</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/arithmetic/power.jl#L357-L364">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.has_exact_display-Tuple{Real}" href="#IntervalArithmetic.has_exact_display-Tuple{Real}"><code>IntervalArithmetic.has_exact_display</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">has_exact_display(x::Real)</code></pre><p>Determine if the display of <code>x</code> up to 2000 decimals is equal to the bitwise value of <code>x</code>. This is famously not true for the float displayed as <code>0.1</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/exact_literals.jl#L170-L175">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.hull-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.hull-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.hull</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">hull(x, y)</code></pre><p>Return the interval hull of the intervals <code>x</code> and <code>y</code>, considered as (extended) sets of real numbers, i.e. the smallest interval that contains all of <code>x</code> and <code>y</code>.</p><p>The result is decorated by at most <code>trv</code> (Section 11.7.1).</p><p>Implement the <code>convexHull</code> function of the IEEE Standard 1788-2015 (Section 9.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/set_operations.jl#L40-L50">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.in_interval-Tuple{Number, BareInterval}" href="#IntervalArithmetic.in_interval-Tuple{Number, BareInterval}"><code>IntervalArithmetic.in_interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">in_interval(x, y)</code></pre><p>Test whether <code>x</code> is an element of <code>y</code>.</p><p>Implement the <code>isMember</code> function of the IEEE Standard 1788-2015 (Section 10.6.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L202-L208">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat" href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>IntervalArithmetic.inf</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">inf(x)</code></pre><p>Lower bound, or infimum, of <code>x</code>. For a zero <code>AbstractFloat</code> lower bound, a negative zero is returned.</p><p>Implement the <code>inf</code> function of the IEEE Standard 1788-2015 (Table 9.2).</p><p>See also: <a href="#IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>sup</code></a>, <a href="#IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>bounds</code></a>, <a href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>mid</code></a>, <a href="#IntervalArithmetic.diam-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>diam</code></a>, <a href="#IntervalArithmetic.radius-Tuple{BareInterval}"><code>radius</code></a> and <a href="#IntervalArithmetic.midradius-Tuple{BareInterval}"><code>midradius</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/numeric.jl#L6-L16">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.interiordiff-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.interiordiff-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.interiordiff</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">interiordiff(x, y)</code></pre><p>Remove the interior of <code>y</code> from <code>x</code>. If <code>x</code> and <code>y</code> are vectors, then they are treated as multi-dimensional intervals.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/set_operations.jl#L70-L75">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.intersect_interval-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.intersect_interval-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.intersect_interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">intersect_interval(x, y)</code></pre><p>Returns the intersection of the intervals <code>x</code> and <code>y</code>, considered as (extended) sets of real numbers. That is, the set that contains the points common in <code>x</code> and <code>y</code>.</p><p>The result is decorated by at most <code>trv</code> (Section 11.7.1).</p><p>Implement the <code>intersection</code> function of the IEEE Standard 1788-2015 (Section 9.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/set_operations.jl#L5-L15">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.interval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}, Tuple{Type{T}, Any, Any, IntervalArithmetic.Decoration}} where T" href="#IntervalArithmetic.interval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}, Tuple{Type{T}, Any, Any, IntervalArithmetic.Decoration}} where T"><code>IntervalArithmetic.interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">interval(T, a, b, d = com)</code></pre><p>Create the interval <span>$[a, b]$</span> according to the IEEE Standard 1788-2015. The validity of the interval is checked by <a href="@ref"><code>is_valid_interval</code></a>: if <code>true</code> then an <code>Interval{T}</code> is constructed, otherwise an NaI (Not an Interval) is returned.</p><div class="admonition is-danger"><header class="admonition-header">Danger</header><div class="admonition-body"><p>Nothing is done to compensate for the fact that floating point literals are rounded to the nearest when parsed (e.g. <code>0.1</code>). In such cases, parse the string containing the desired value to ensure its tight enclosure.</p></div></div><p>See also: <a href="@ref"><code>±</code></a>, <a href="@ref"><code>..</code></a> and <a href="#IntervalArithmetic.@I_str-Tuple{Any}"><code>@I_str</code></a>.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> setdisplay(:full); +BareInterval{BigFloat}(1.0, 3.141592653589793238462643383279502884197169399375105820974944592307816406286233)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/construction.jl#L150-L182">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.bisect-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Real}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.bisect-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Real}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.bisect</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">bisect(x, α=0.5) +bisect(x, i, α=0.5)</code></pre><p>Split an interval <code>x</code> at a relative position <code>α</code>, where <code>α = 0.5</code> corresponds to the midpoint.</p><p>Split the <code>i</code>-th component of a vector <code>x</code> at a relative position <code>α</code>, where <code>α = 0.5</code> corresponds to the midpoint.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/bisect.jl#L1-L10">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat" href="#IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>IntervalArithmetic.bounds</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">bounds(x)</code></pre><p>Bounds of <code>x</code> given as a tuple. Unlike <a href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>inf</code></a>, this function does not normalize the infimum of the interval.</p><p>See also: <a href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>inf</code></a>, <a href="#IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>sup</code></a>, <a href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>mid</code></a>, <a href="#IntervalArithmetic.diam-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>diam</code></a>, <a href="#IntervalArithmetic.radius-Tuple{BareInterval}"><code>radius</code></a> and <a href="#IntervalArithmetic.midradius-Tuple{BareInterval}"><code>midradius</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/numeric.jl#L55-L63">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.cancelminus-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.cancelminus-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.cancelminus</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">cancelminus(x, y)</code></pre><p>Compute the unique interval <code>z</code> such that <code>y + z == x</code>.</p><p>The result is decorated by at most <code>trv</code> (Section 11.7.1).</p><p>Implement the <code>cancelMinus</code> function of the IEEE Standard 1788-2015 (Section 9.2).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/cancellative.jl#L5-L13">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.cancelplus-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.cancelplus-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.cancelplus</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">cancelplus(x, y)</code></pre><p>Compute the unique interval <code>z</code> such that <code>y - z == x</code>; this is semantically equivalent to <code>cancelminus(x, -y)</code>.</p><p>The result is decorated by at most <code>trv</code> (Section 11.7.1).</p><p>Implement the <code>cancelPlus</code> function of the IEEE Standard 1788-2015 (Section 9.2).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/cancellative.jl#L46-L55">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.diam-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat" href="#IntervalArithmetic.diam-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>IntervalArithmetic.diam</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">diam(x)</code></pre><p>Diameter of <code>x</code>. If <code>x</code> is complex, then the diameter is the maximum diameter between its real and imaginary parts.</p><p>Implement the <code>wid</code> function of the IEEE Standard 1788-2015 (Table 9.2).</p><p>See also: <a href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>inf</code></a>, <a href="#IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>sup</code></a>, <a href="#IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>bounds</code></a>, <a href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>mid</code></a>, <a href="#IntervalArithmetic.radius-Tuple{BareInterval}"><code>radius</code></a> and <a href="#IntervalArithmetic.midradius-Tuple{BareInterval}"><code>midradius</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/numeric.jl#L139-L149">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.dist-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:AbstractFloat" href="#IntervalArithmetic.dist-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:AbstractFloat"><code>IntervalArithmetic.dist</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">dist(x, y)</code></pre><p>Distance between <code>x</code> and <code>y</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/numeric.jl#L290-L294">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.emptyinterval-Union{Tuple{Type{BareInterval{T}}}, Tuple{T}} where T<:AbstractFloat" href="#IntervalArithmetic.emptyinterval-Union{Tuple{Type{BareInterval{T}}}, Tuple{T}} where T<:AbstractFloat"><code>IntervalArithmetic.emptyinterval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">emptyinterval(T=default_numtype())</code></pre><p>Create an empty interval. This interval is an exception to the fact that the lower bound is larger than the upper one.</p><p>Implement the <code>empty</code> function of the IEEE Standard 1788-2015 (Section 10.5.2).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/constants.jl#L4-L11">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.entireinterval-Union{Tuple{Type{BareInterval{T}}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.entireinterval-Union{Tuple{Type{BareInterval{T}}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.entireinterval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">entireinterval(T=default_numtype())</code></pre><p>Create an interval representing the entire real line, or the entire complex plane if <code>T</code> is complex.</p><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>Depending on the flavor, infinity may or may not be considered part of the interval.</p></div></div><p>Implement the <code>entire</code> function of the IEEE Standard 1788-2015 (Section 10.5.2).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/constants.jl#L31-L42">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.extended_div-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.extended_div-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.extended_div</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">extended_div(x, y)</code></pre><p>Two-output division.</p><p>Implement the <code>mulRevToPair</code> function of the IEEE Standard 1788-2015 (Section 10.5.5).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/extended_div.jl#L4-L10">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.fastpow-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.fastpow-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.fastpow</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">fastpow(x, y)</code></pre><p>A faster implementation of <code>pow(x, y)</code>, at the cost of maybe returning a larger interval.</p><p>See also: <a href="#IntervalArithmetic.pow-Tuple{Any, Any}"><code>pow</code></a>, <a href="#IntervalArithmetic.pown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>pown</code></a> and <a href="#IntervalArithmetic.fastpown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>fastpown</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/arithmetic/power.jl#L317-L324">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.fastpown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.fastpown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.fastpown</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">fastpown(x, n)</code></pre><p>A faster implementation of <code>pown(x, n)</code>, at the cost of maybe returning a larger interval.</p><p>See also: <a href="#IntervalArithmetic.pown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>pown</code></a>, <a href="#IntervalArithmetic.pow-Tuple{Any, Any}"><code>pow</code></a> and <a href="#IntervalArithmetic.fastpow-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>fastpow</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/arithmetic/power.jl#L357-L364">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.has_exact_display-Tuple{Real}" href="#IntervalArithmetic.has_exact_display-Tuple{Real}"><code>IntervalArithmetic.has_exact_display</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">has_exact_display(x::Real)</code></pre><p>Determine if the display of <code>x</code> up to 2000 decimals is equal to the bitwise value of <code>x</code>. This is famously not true for the float displayed as <code>0.1</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/exact_literals.jl#L170-L175">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.hull-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.hull-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.hull</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">hull(x, y)</code></pre><p>Return the interval hull of the intervals <code>x</code> and <code>y</code>, considered as (extended) sets of real numbers, i.e. the smallest interval that contains all of <code>x</code> and <code>y</code>.</p><p>The result is decorated by at most <code>trv</code> (Section 11.7.1).</p><p>Implement the <code>convexHull</code> function of the IEEE Standard 1788-2015 (Section 9.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/set_operations.jl#L40-L50">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.in_interval-Tuple{Number, BareInterval}" href="#IntervalArithmetic.in_interval-Tuple{Number, BareInterval}"><code>IntervalArithmetic.in_interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">in_interval(x, y)</code></pre><p>Test whether <code>x</code> is an element of <code>y</code>.</p><p>Implement the <code>isMember</code> function of the IEEE Standard 1788-2015 (Section 10.6.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L202-L208">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat" href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>IntervalArithmetic.inf</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">inf(x)</code></pre><p>Lower bound, or infimum, of <code>x</code>. For a zero <code>AbstractFloat</code> lower bound, a negative zero is returned.</p><p>Implement the <code>inf</code> function of the IEEE Standard 1788-2015 (Table 9.2).</p><p>See also: <a href="#IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>sup</code></a>, <a href="#IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>bounds</code></a>, <a href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>mid</code></a>, <a href="#IntervalArithmetic.diam-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>diam</code></a>, <a href="#IntervalArithmetic.radius-Tuple{BareInterval}"><code>radius</code></a> and <a href="#IntervalArithmetic.midradius-Tuple{BareInterval}"><code>midradius</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/numeric.jl#L6-L16">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.interiordiff-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.interiordiff-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.interiordiff</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">interiordiff(x, y)</code></pre><p>Remove the interior of <code>y</code> from <code>x</code>. If <code>x</code> and <code>y</code> are vectors, then they are treated as multi-dimensional intervals.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/set_operations.jl#L70-L75">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.intersect_interval-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.intersect_interval-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.intersect_interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">intersect_interval(x, y)</code></pre><p>Returns the intersection of the intervals <code>x</code> and <code>y</code>, considered as (extended) sets of real numbers. That is, the set that contains the points common in <code>x</code> and <code>y</code>.</p><p>The result is decorated by at most <code>trv</code> (Section 11.7.1).</p><p>Implement the <code>intersection</code> function of the IEEE Standard 1788-2015 (Section 9.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/set_operations.jl#L5-L15">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.interval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}, Tuple{Type{T}, Any, Any, IntervalArithmetic.Decoration}} where T" href="#IntervalArithmetic.interval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}, Tuple{Type{T}, Any, Any, IntervalArithmetic.Decoration}} where T"><code>IntervalArithmetic.interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">interval(T, a, b, d = com)</code></pre><p>Create the interval <span>$[a, b]$</span> according to the IEEE Standard 1788-2015. The validity of the interval is checked by <a href="@ref"><code>is_valid_interval</code></a>: if <code>true</code> then an <code>Interval{T}</code> is constructed, otherwise an NaI (Not an Interval) is returned.</p><div class="admonition is-danger"><header class="admonition-header">Danger</header><div class="admonition-body"><p>Nothing is done to compensate for the fact that floating point literals are rounded to the nearest when parsed (e.g. <code>0.1</code>). In such cases, parse the string containing the desired value to ensure its tight enclosure.</p></div></div><p>See also: <a href="@ref"><code>±</code></a>, <a href="@ref"><code>..</code></a> and <a href="#IntervalArithmetic.@I_str-Tuple{Any}"><code>@I_str</code></a>.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> setdisplay(:full); julia> interval(1//1, π) Interval{Rational{Int64}}(1//1, 85563208//27235615, com) @@ -41,7 +41,7 @@ Interval{Float64}(1.0, 3.1415926535897936, com) julia> interval(BigFloat, 1, π) -Interval{BigFloat}(1.0, 3.141592653589793238462643383279502884197169399375105820974944592307816406286233, com)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/construction.jl#L372-L404">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isatomic-Tuple{BareInterval{<:AbstractFloat}}" href="#IntervalArithmetic.isatomic-Tuple{BareInterval{<:AbstractFloat}}"><code>IntervalArithmetic.isatomic</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isatomic(x)</code></pre><p>Test whether <code>x</code> is unable to be split. This occurs if the interval is empty, or if its lower and upper bounds are equal, or if the bounds are consecutive floating-point numbers.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L313-L319">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isbounded-Tuple{BareInterval}" href="#IntervalArithmetic.isbounded-Tuple{BareInterval}"><code>IntervalArithmetic.isbounded</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isbounded(x)</code></pre><p>Test whether <code>x</code> is empty or has finite bounds.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L271-L275">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.iscommon-Tuple{BareInterval}" href="#IntervalArithmetic.iscommon-Tuple{BareInterval}"><code>IntervalArithmetic.iscommon</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">iscommon(x)</code></pre><p>Test whether <code>x</code> is not empty and bounded.</p><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>This is does not take into consideration the decoration of the interval.</p></div></div></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L297-L304">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isdisjoint_interval-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.isdisjoint_interval-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.isdisjoint_interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isdisjoint_interval(x, y)</code></pre><p>Test whether <code>x</code> and <code>y</code> have no common elements.</p><p>Implement the <code>disjoint</code> function of the IEEE Standard 1788-2015 (Table 9.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L116-L122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isempty_interval-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.isempty_interval-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.isempty_interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isempty_interval(x)</code></pre><p>Test whether <code>x</code> contains no elements.</p><p>Implement the <code>isEmpty</code> function of the IEEE Standard 1788-2015 (Section 10.6.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L229-L235">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isentire_interval-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.isentire_interval-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.isentire_interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isentire_interval(x)</code></pre><p>Test whether <code>x</code> is the entire real line.</p><p>Implement the <code>isEntire</code> function of the IEEE Standard 1788-2015 (Section 10.6.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L246-L252">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isequal_interval-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.isequal_interval-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.isequal_interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isequal_interval(x, y)</code></pre><p>Test whether <code>x</code> and <code>y</code> are identical.</p><p>Implement the <code>equal</code> function of the IEEE Standard 1788-2015 (Table 9.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L10-L16">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isguaranteed-Tuple{Interval}" href="#IntervalArithmetic.isguaranteed-Tuple{Interval}"><code>IntervalArithmetic.isguaranteed</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isguaranteed(x::BareInterval) +Interval{BigFloat}(1.0, 3.141592653589793238462643383279502884197169399375105820974944592307816406286233, com)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/construction.jl#L372-L404">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isatomic-Tuple{BareInterval{<:AbstractFloat}}" href="#IntervalArithmetic.isatomic-Tuple{BareInterval{<:AbstractFloat}}"><code>IntervalArithmetic.isatomic</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isatomic(x)</code></pre><p>Test whether <code>x</code> is unable to be split. This occurs if the interval is empty, or if its lower and upper bounds are equal, or if the bounds are consecutive floating-point numbers.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L313-L319">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isbounded-Tuple{BareInterval}" href="#IntervalArithmetic.isbounded-Tuple{BareInterval}"><code>IntervalArithmetic.isbounded</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isbounded(x)</code></pre><p>Test whether <code>x</code> is empty or has finite bounds.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L271-L275">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.iscommon-Tuple{BareInterval}" href="#IntervalArithmetic.iscommon-Tuple{BareInterval}"><code>IntervalArithmetic.iscommon</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">iscommon(x)</code></pre><p>Test whether <code>x</code> is not empty and bounded.</p><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>This is does not take into consideration the decoration of the interval.</p></div></div></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L297-L304">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isdisjoint_interval-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.isdisjoint_interval-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.isdisjoint_interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isdisjoint_interval(x, y)</code></pre><p>Test whether <code>x</code> and <code>y</code> have no common elements.</p><p>Implement the <code>disjoint</code> function of the IEEE Standard 1788-2015 (Table 9.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L116-L122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isempty_interval-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.isempty_interval-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.isempty_interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isempty_interval(x)</code></pre><p>Test whether <code>x</code> contains no elements.</p><p>Implement the <code>isEmpty</code> function of the IEEE Standard 1788-2015 (Section 10.6.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L229-L235">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isentire_interval-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.isentire_interval-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.isentire_interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isentire_interval(x)</code></pre><p>Test whether <code>x</code> is the entire real line.</p><p>Implement the <code>isEntire</code> function of the IEEE Standard 1788-2015 (Section 10.6.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L246-L252">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isequal_interval-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.isequal_interval-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.isequal_interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isequal_interval(x, y)</code></pre><p>Test whether <code>x</code> and <code>y</code> are identical.</p><p>Implement the <code>equal</code> function of the IEEE Standard 1788-2015 (Table 9.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L10-L16">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isguaranteed-Tuple{Interval}" href="#IntervalArithmetic.isguaranteed-Tuple{Interval}"><code>IntervalArithmetic.isguaranteed</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isguaranteed(x::BareInterval) isguaranteed(x::Interval) isguaranteed(x::Complex{<:Interval})</code></pre><p>Test whether the interval is not guaranteed to encompass all possible numerical errors. This happens whenever an <a href="#IntervalArithmetic.Interval"><code>Interval</code></a> is constructed using <code>convert(::Type{<:Interval}, ::Real)</code>, which may occur implicitly when mixing intervals and <code>Real</code> types.</p><p>Since conversion between <code>BareInterval</code> and <code>Number</code> is prohibited, this implies that <code>isguaranteed(::BareInterval) == true</code>.</p><p>In the case of a complex interval <code>x</code>, this is semantically equivalent to <code>isguaranteed(real(x)) & isguaranteed(imag(x))</code>.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> isguaranteed(bareinterval(1)) true @@ -53,8 +53,8 @@ false julia> isguaranteed(interval(1) + 0) -false</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/construction.jl#L332-L363">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isinterior-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.isinterior-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.isinterior</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isinterior(x, y)</code></pre><p>Test whether <code>x</code> is in the interior of <code>y</code>. If <code>x</code> and <code>y</code> are intervals, this is semantically equivalent to <code>isstrictsubset(x, y)</code>.</p><p>Implement the <code>interior</code> function of the IEEE Standard 1788-2015 (Table 9.3).</p><p>See also: <a href="#IntervalArithmetic.isstrictsubset-Tuple{BareInterval, BareInterval}"><code>isstrictsubset</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L86-L95">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isnai-Tuple{BareInterval}" href="#IntervalArithmetic.isnai-Tuple{BareInterval}"><code>IntervalArithmetic.isnai</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isnai(x)</code></pre><p>Test whether <code>x</code> is an NaI (Not an Interval).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L261-L265">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isstrictless-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.isstrictless-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.isstrictless</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isstrictless(x, y)</code></pre><p>Test whether <code>inf(x) < inf(y)</code> and <code>sup(x) < sup(y)</code>, where <code><</code> is replaced by <code>≤</code> for infinite values.</p><p>Implement the <code>strictLess</code> function of the IEEE Standard 1788-2015 (Table 10.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L158-L165">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isstrictsubset-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.isstrictsubset-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.isstrictsubset</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isstrictsubset(x, y)</code></pre><p>Test whether <code>x</code> is a strict subset of <code>y</code>. If <code>x</code> and <code>y</code> are intervals, this is semantically equivalent to <code>isinterior(x, y)</code>. If <code>x</code> and <code>y</code> are vectors, <code>x</code> must be a subset of <code>y</code> with at least one of their component being a strict subset.</p><p>See also: <a href="#IntervalArithmetic.isinterior-Tuple{BareInterval, BareInterval}"><code>isinterior</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L64-L73">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.issubset_interval-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.issubset_interval-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.issubset_interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">issubset_interval(x, y)</code></pre><p>Test whether <code>x</code> is contained in <code>y</code>.</p><p>Implement the <code>subset</code> function of the IEEE Standard 1788-2015 (Table 9.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L38-L44">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isthin-Tuple{BareInterval, Number}" href="#IntervalArithmetic.isthin-Tuple{BareInterval, Number}"><code>IntervalArithmetic.isthin</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isthin(x, y)</code></pre><p>Test whether <code>x</code> contains only <code>y</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L344-L348">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isthin-Tuple{BareInterval}" href="#IntervalArithmetic.isthin-Tuple{BareInterval}"><code>IntervalArithmetic.isthin</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isthin(x)</code></pre><p>Test whether <code>x</code> contains only a real.</p><p>Implement the <code>isSingleton</code> function of the IEEE Standard 1788-2015 (Table 9.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L329-L335">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isthininteger-Tuple{BareInterval}" href="#IntervalArithmetic.isthininteger-Tuple{BareInterval}"><code>IntervalArithmetic.isthininteger</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isthininteger(x)</code></pre><p>Test whether <code>x</code> contains only an integer.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L387-L391">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isthinone-Tuple{BareInterval}" href="#IntervalArithmetic.isthinone-Tuple{BareInterval}"><code>IntervalArithmetic.isthinone</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isthinone(x)</code></pre><p>Test whether <code>x</code> contains only one.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L374-L378">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isthinzero-Tuple{BareInterval}" href="#IntervalArithmetic.isthinzero-Tuple{BareInterval}"><code>IntervalArithmetic.isthinzero</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isthinzero(x)</code></pre><p>Test whether <code>x</code> contains only zero.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L361-L365">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isunbounded-Tuple{BareInterval}" href="#IntervalArithmetic.isunbounded-Tuple{BareInterval}"><code>IntervalArithmetic.isunbounded</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isunbounded(x)</code></pre><p>Test whether <code>x</code> is not empty and has infinite bounds.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L284-L288">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isweakless-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.isweakless-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.isweakless</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isweakless(x, y)</code></pre><p>Test whether <code>inf(x) ≤ inf(y)</code> and <code>sup(x) ≤ sup(y)</code>, where <code><</code> is replaced by <code>≤</code> for infinite values.</p><p>Implement the <code>less</code> function of the IEEE Standard 1788-2015 (Table 10.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L143-L150">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.mag-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat" href="#IntervalArithmetic.mag-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>IntervalArithmetic.mag</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">mag(x)</code></pre><p>Magnitude of <code>x</code>.</p><p>Implement the <code>mag</code> function of the IEEE Standard 1788-2015 (Table 9.2).</p><p>See also: <a href="#IntervalArithmetic.mig-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}"><code>mig</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/numeric.jl#L228-L236">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat" href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>IntervalArithmetic.mid</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">mid(x, α = 0.5)</code></pre><p>Relative midpoint of <code>x</code>, for <code>α</code> between 0 and 1 such that <code>mid(x, 0)</code> is the lower bound of the interval, <code>mid(x, 1)</code> its upper bound, and <code>mid(x, 0.5)</code> its midpoint.</p><p>Implement the <code>mid</code> function of the IEEE Standard 1788-2015 (Table 9.2).</p><p>See also: <a href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>inf</code></a>, <a href="#IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>sup</code></a>, <a href="#IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>bounds</code></a>, <a href="#IntervalArithmetic.diam-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>diam</code></a>, <a href="#IntervalArithmetic.radius-Tuple{BareInterval}"><code>radius</code></a> and <a href="#IntervalArithmetic.midradius-Tuple{BareInterval}"><code>midradius</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/numeric.jl#L78-L89">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.midradius-Tuple{BareInterval}" href="#IntervalArithmetic.midradius-Tuple{BareInterval}"><code>IntervalArithmetic.midradius</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">midradius(x)</code></pre><p>Midpoint and radius of <code>x</code>.</p><p>Function required by the IEEE Standard 1788-2015 in Section 10.5.9 for the set-based flavor.</p><p>See also: <a href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>inf</code></a>, <a href="#IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>sup</code></a>, <a href="#IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>bounds</code></a>, <a href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>mid</code></a>, <a href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>mid</code></a> and <a href="#IntervalArithmetic.radius-Tuple{BareInterval}"><code>radius</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/numeric.jl#L200-L210">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.mig-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.mig-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.mig</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">mig(x)</code></pre><p>Mignitude of <code>x</code>.</p><p>Implement the <code>mig</code> function of the IEEE Standard 1788-2015 (Table 9.2).</p><p>See also: <a href="#IntervalArithmetic.mag-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>mag</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/numeric.jl#L258-L266">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.mince!-Union{Tuple{T}, Tuple{AbstractVector{<:BareInterval}, BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.mince!-Union{Tuple{T}, Tuple{AbstractVector{<:BareInterval}, BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.mince!</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">mince!(v, x, n)</code></pre><p>In-place version of <a href="#IntervalArithmetic.mince-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>mince</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/bisect.jl#L49-L53">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.mince-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.mince-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.mince</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">mince(x, n)</code></pre><p>Split an interval <code>x</code> in <code>n</code> intervals of the same diameter.</p><p>Split the <code>i</code>-th component of a vector <code>x</code> in <code>n[i]</code> intervals of the same diameter; <code>n</code> can be a tuple of integers, or a single integer in which case the same <code>n</code> is used for all the components of <code>x</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/bisect.jl#L32-L40">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.nai-Union{Tuple{Type{Interval{T}}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.nai-Union{Tuple{Type{Interval{T}}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.nai</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">nai(T=default_numtype())</code></pre><p>Create an NaI (Not an Interval).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/constants.jl#L58-L62">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.overlap-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.overlap-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.overlap</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">overlap(x::BareInterval, y::BareInterval) -overlap(x::Interval, y::Interval)</code></pre><p>Implement the <code>overlap</code> function of the IEEE Standard 1788-2015 (Table 10.7).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/overlap.jl#L31-L36">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.pow-Tuple{Any, Any}" href="#IntervalArithmetic.pow-Tuple{Any, Any}"><code>IntervalArithmetic.pow</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">pow(x, y)</code></pre><p>Compute the power of the positive real part of <code>x</code> by <code>y</code>. In particular, even if <code>y</code> is a thin integer, this is not equivalent to <code>pown(x, sup(y))</code>.</p><p>Implement the <code>pow</code> function of the IEEE Standard 1788-2015 (Table 9.1).</p><p>See also: <a href="#IntervalArithmetic.fastpow-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>fastpow</code></a>, <a href="#IntervalArithmetic.pown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>pown</code></a> and <a href="#IntervalArithmetic.fastpown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>fastpown</code></a>.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> setdisplay(:full); +false</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/construction.jl#L332-L363">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isinterior-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.isinterior-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.isinterior</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isinterior(x, y)</code></pre><p>Test whether <code>x</code> is in the interior of <code>y</code>. If <code>x</code> and <code>y</code> are intervals, this is semantically equivalent to <code>isstrictsubset(x, y)</code>.</p><p>Implement the <code>interior</code> function of the IEEE Standard 1788-2015 (Table 9.3).</p><p>See also: <a href="#IntervalArithmetic.isstrictsubset-Tuple{BareInterval, BareInterval}"><code>isstrictsubset</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L86-L95">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isnai-Tuple{BareInterval}" href="#IntervalArithmetic.isnai-Tuple{BareInterval}"><code>IntervalArithmetic.isnai</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isnai(x)</code></pre><p>Test whether <code>x</code> is an NaI (Not an Interval).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L261-L265">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isstrictless-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.isstrictless-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.isstrictless</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isstrictless(x, y)</code></pre><p>Test whether <code>inf(x) < inf(y)</code> and <code>sup(x) < sup(y)</code>, where <code><</code> is replaced by <code>≤</code> for infinite values.</p><p>Implement the <code>strictLess</code> function of the IEEE Standard 1788-2015 (Table 10.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L158-L165">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isstrictsubset-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.isstrictsubset-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.isstrictsubset</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isstrictsubset(x, y)</code></pre><p>Test whether <code>x</code> is a strict subset of <code>y</code>. If <code>x</code> and <code>y</code> are intervals, this is semantically equivalent to <code>isinterior(x, y)</code>. If <code>x</code> and <code>y</code> are vectors, <code>x</code> must be a subset of <code>y</code> with at least one of their component being a strict subset.</p><p>See also: <a href="#IntervalArithmetic.isinterior-Tuple{BareInterval, BareInterval}"><code>isinterior</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L64-L73">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.issubset_interval-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.issubset_interval-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.issubset_interval</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">issubset_interval(x, y)</code></pre><p>Test whether <code>x</code> is contained in <code>y</code>.</p><p>Implement the <code>subset</code> function of the IEEE Standard 1788-2015 (Table 9.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L38-L44">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isthin-Tuple{BareInterval, Number}" href="#IntervalArithmetic.isthin-Tuple{BareInterval, Number}"><code>IntervalArithmetic.isthin</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isthin(x, y)</code></pre><p>Test whether <code>x</code> contains only <code>y</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L344-L348">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isthin-Tuple{BareInterval}" href="#IntervalArithmetic.isthin-Tuple{BareInterval}"><code>IntervalArithmetic.isthin</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isthin(x)</code></pre><p>Test whether <code>x</code> contains only a real.</p><p>Implement the <code>isSingleton</code> function of the IEEE Standard 1788-2015 (Table 9.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L329-L335">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isthininteger-Tuple{BareInterval}" href="#IntervalArithmetic.isthininteger-Tuple{BareInterval}"><code>IntervalArithmetic.isthininteger</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isthininteger(x)</code></pre><p>Test whether <code>x</code> contains only an integer.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L387-L391">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isthinone-Tuple{BareInterval}" href="#IntervalArithmetic.isthinone-Tuple{BareInterval}"><code>IntervalArithmetic.isthinone</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isthinone(x)</code></pre><p>Test whether <code>x</code> contains only one.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L374-L378">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isthinzero-Tuple{BareInterval}" href="#IntervalArithmetic.isthinzero-Tuple{BareInterval}"><code>IntervalArithmetic.isthinzero</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isthinzero(x)</code></pre><p>Test whether <code>x</code> contains only zero.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L361-L365">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isunbounded-Tuple{BareInterval}" href="#IntervalArithmetic.isunbounded-Tuple{BareInterval}"><code>IntervalArithmetic.isunbounded</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isunbounded(x)</code></pre><p>Test whether <code>x</code> is not empty and has infinite bounds.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L284-L288">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.isweakless-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.isweakless-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.isweakless</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">isweakless(x, y)</code></pre><p>Test whether <code>inf(x) ≤ inf(y)</code> and <code>sup(x) ≤ sup(y)</code>, where <code><</code> is replaced by <code>≤</code> for infinite values.</p><p>Implement the <code>less</code> function of the IEEE Standard 1788-2015 (Table 10.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L143-L150">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.mag-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat" href="#IntervalArithmetic.mag-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>IntervalArithmetic.mag</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">mag(x)</code></pre><p>Magnitude of <code>x</code>.</p><p>Implement the <code>mag</code> function of the IEEE Standard 1788-2015 (Table 9.2).</p><p>See also: <a href="#IntervalArithmetic.mig-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}"><code>mig</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/numeric.jl#L228-L236">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat" href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>IntervalArithmetic.mid</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">mid(x, α = 0.5)</code></pre><p>Relative midpoint of <code>x</code>, for <code>α</code> between 0 and 1 such that <code>mid(x, 0)</code> is the lower bound of the interval, <code>mid(x, 1)</code> its upper bound, and <code>mid(x, 0.5)</code> its midpoint.</p><p>Implement the <code>mid</code> function of the IEEE Standard 1788-2015 (Table 9.2).</p><p>See also: <a href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>inf</code></a>, <a href="#IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>sup</code></a>, <a href="#IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>bounds</code></a>, <a href="#IntervalArithmetic.diam-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>diam</code></a>, <a href="#IntervalArithmetic.radius-Tuple{BareInterval}"><code>radius</code></a> and <a href="#IntervalArithmetic.midradius-Tuple{BareInterval}"><code>midradius</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/numeric.jl#L78-L89">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.midradius-Tuple{BareInterval}" href="#IntervalArithmetic.midradius-Tuple{BareInterval}"><code>IntervalArithmetic.midradius</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">midradius(x)</code></pre><p>Midpoint and radius of <code>x</code>.</p><p>Function required by the IEEE Standard 1788-2015 in Section 10.5.9 for the set-based flavor.</p><p>See also: <a href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>inf</code></a>, <a href="#IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>sup</code></a>, <a href="#IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>bounds</code></a>, <a href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>mid</code></a>, <a href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>mid</code></a> and <a href="#IntervalArithmetic.radius-Tuple{BareInterval}"><code>radius</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/numeric.jl#L200-L210">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.mig-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.mig-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.mig</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">mig(x)</code></pre><p>Mignitude of <code>x</code>.</p><p>Implement the <code>mig</code> function of the IEEE Standard 1788-2015 (Table 9.2).</p><p>See also: <a href="#IntervalArithmetic.mag-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>mag</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/numeric.jl#L258-L266">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.mince!-Union{Tuple{T}, Tuple{AbstractVector{<:BareInterval}, BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.mince!-Union{Tuple{T}, Tuple{AbstractVector{<:BareInterval}, BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.mince!</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">mince!(v, x, n)</code></pre><p>In-place version of <a href="#IntervalArithmetic.mince-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>mince</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/bisect.jl#L49-L53">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.mince-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.mince-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.mince</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">mince(x, n)</code></pre><p>Split an interval <code>x</code> in <code>n</code> intervals of the same diameter.</p><p>Split the <code>i</code>-th component of a vector <code>x</code> in <code>n[i]</code> intervals of the same diameter; <code>n</code> can be a tuple of integers, or a single integer in which case the same <code>n</code> is used for all the components of <code>x</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/bisect.jl#L32-L40">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.nai-Union{Tuple{Type{Interval{T}}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.nai-Union{Tuple{Type{Interval{T}}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.nai</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">nai(T=default_numtype())</code></pre><p>Create an NaI (Not an Interval).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/constants.jl#L58-L62">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.overlap-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.overlap-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.overlap</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">overlap(x::BareInterval, y::BareInterval) +overlap(x::Interval, y::Interval)</code></pre><p>Implement the <code>overlap</code> function of the IEEE Standard 1788-2015 (Table 10.7).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/overlap.jl#L31-L36">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.pow-Tuple{Any, Any}" href="#IntervalArithmetic.pow-Tuple{Any, Any}"><code>IntervalArithmetic.pow</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">pow(x, y)</code></pre><p>Compute the power of the positive real part of <code>x</code> by <code>y</code>. In particular, even if <code>y</code> is a thin integer, this is not equivalent to <code>pown(x, sup(y))</code>.</p><p>Implement the <code>pow</code> function of the IEEE Standard 1788-2015 (Table 9.1).</p><p>See also: <a href="#IntervalArithmetic.fastpow-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>fastpow</code></a>, <a href="#IntervalArithmetic.pown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>pown</code></a> and <a href="#IntervalArithmetic.fastpown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>fastpown</code></a>.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> setdisplay(:full); julia> pow(bareinterval(2, 3), bareinterval(2)) BareInterval{Float64}(4.0, 9.0) @@ -63,7 +63,7 @@ Interval{Float64}(0.0, 1.0, trv) julia> pow(interval(-1, 1), interval(-3)) -Interval{Float64}(1.0, Inf, trv)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/arithmetic/power.jl#L109-L133">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.pown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.pown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.pown</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">pown(x, n)</code></pre><p>Implement the <code>pown</code> function of the IEEE Standard 1788-2015 (Table 9.1).</p><p>See also: <a href="#IntervalArithmetic.fastpown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>fastpown</code></a>, <a href="#IntervalArithmetic.pow-Tuple{Any, Any}"><code>pow</code></a> and <a href="#IntervalArithmetic.fastpow-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>fastpow</code></a>.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> setdisplay(:full); +Interval{Float64}(1.0, Inf, trv)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/arithmetic/power.jl#L109-L133">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.pown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}" href="#IntervalArithmetic.pown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>IntervalArithmetic.pown</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">pown(x, n)</code></pre><p>Implement the <code>pown</code> function of the IEEE Standard 1788-2015 (Table 9.1).</p><p>See also: <a href="#IntervalArithmetic.fastpown-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:Union{AbstractFloat, Rational}"><code>fastpown</code></a>, <a href="#IntervalArithmetic.pow-Tuple{Any, Any}"><code>pow</code></a> and <a href="#IntervalArithmetic.fastpow-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>fastpow</code></a>.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> setdisplay(:full); julia> pown(bareinterval(2, 3), 2) BareInterval{Float64}(4.0, 9.0) @@ -72,7 +72,7 @@ Interval{Float64}(-1.0, 1.0, com) julia> pown(interval(-1, 1), -3) -Interval{Float64}(-Inf, Inf, trv)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/arithmetic/power.jl#L202-L223">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.precedes-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.precedes-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.precedes</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">precedes(x, y)</code></pre><p>Test whether any element of <code>x</code> is lesser or equal to every elements of <code>y</code>.</p><p>Implement the <code>precedes</code> function of the IEEE Standard 1788-2015 (Table 10.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L174-L180">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.radius-Tuple{BareInterval}" href="#IntervalArithmetic.radius-Tuple{BareInterval}"><code>IntervalArithmetic.radius</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">radius(x)</code></pre><p>Radius of <code>x</code>, such that <code>issubset_interval(x, mid(x) ± radius(x))</code>. If <code>x</code> is complex, then the radius is the maximum radius between its real and imaginary parts.</p><p>Implement the <code>rad</code> function of the IEEE Standard 1788-2015 (Table 9.2).</p><p>See also: <a href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>inf</code></a>, <a href="#IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>sup</code></a>, <a href="#IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>bounds</code></a>, <a href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>mid</code></a>, <a href="#IntervalArithmetic.diam-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>diam</code></a> and <a href="#IntervalArithmetic.midradius-Tuple{BareInterval}"><code>midradius</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/numeric.jl#L171-L182">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.rootn-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:AbstractFloat" href="#IntervalArithmetic.rootn-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:AbstractFloat"><code>IntervalArithmetic.rootn</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">rootn(x::BareInterval, n::Integer)</code></pre><p>Compute the real <code>n</code>-th root of <code>x</code>.</p><p>Implement the <code>rootn</code> function of the IEEE Standard 1788-2015 (Table 9.1).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/arithmetic/power.jl#L274-L280">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.setdisplay" href="#IntervalArithmetic.setdisplay"><code>IntervalArithmetic.setdisplay</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">setdisplay(format::Symbol; decorations::Bool, ng_flag::Bool, sigdigits::Int)</code></pre><p>Change the format used by <code>show</code> to display intervals.</p><p>Possible options:</p><ul><li><code>format</code> can be:<ul><li><code>:infsup</code>: display intervals as <code>[a, b]</code>.</li><li><code>:midpoint</code>: display intervals as <code>m ± r</code>.</li><li><code>:full</code>: display interval bounds entirely, ignoring <code>sigdigits</code>.</li></ul></li><li><code>decorations</code>: display the decorations or not.</li><li><code>ng_flag</code>: display the NG flag or not.</li><li><code>sigdigits</code>: number (greater or equal to 1) of significant digits to display.</li></ul><p>Initially, the display options are set to <code>setdisplay(:infsup; decorations = true, ng_flag = true, sigdigits = 6)</code>. If any of <code>format</code>, <code>decorations</code>, <code>ng_flag</code> and <code>sigdigits</code> is omitted, then their value is left unchanged.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> setdisplay(:infsup; decorations = true, sigdigits = 6) # default display options +Interval{Float64}(-Inf, Inf, trv)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/arithmetic/power.jl#L202-L223">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.precedes-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.precedes-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.precedes</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">precedes(x, y)</code></pre><p>Test whether any element of <code>x</code> is lesser or equal to every elements of <code>y</code>.</p><p>Implement the <code>precedes</code> function of the IEEE Standard 1788-2015 (Table 10.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L174-L180">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.radius-Tuple{BareInterval}" href="#IntervalArithmetic.radius-Tuple{BareInterval}"><code>IntervalArithmetic.radius</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">radius(x)</code></pre><p>Radius of <code>x</code>, such that <code>issubset_interval(x, mid(x) ± radius(x))</code>. If <code>x</code> is complex, then the radius is the maximum radius between its real and imaginary parts.</p><p>Implement the <code>rad</code> function of the IEEE Standard 1788-2015 (Table 9.2).</p><p>See also: <a href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>inf</code></a>, <a href="#IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>sup</code></a>, <a href="#IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>bounds</code></a>, <a href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>mid</code></a>, <a href="#IntervalArithmetic.diam-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>diam</code></a> and <a href="#IntervalArithmetic.midradius-Tuple{BareInterval}"><code>midradius</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/numeric.jl#L171-L182">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.rootn-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:AbstractFloat" href="#IntervalArithmetic.rootn-Union{Tuple{T}, Tuple{BareInterval{T}, Integer}} where T<:AbstractFloat"><code>IntervalArithmetic.rootn</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">rootn(x::BareInterval, n::Integer)</code></pre><p>Compute the real <code>n</code>-th root of <code>x</code>.</p><p>Implement the <code>rootn</code> function of the IEEE Standard 1788-2015 (Table 9.1).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/arithmetic/power.jl#L274-L280">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.setdisplay" href="#IntervalArithmetic.setdisplay"><code>IntervalArithmetic.setdisplay</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">setdisplay(format::Symbol; decorations::Bool, ng_flag::Bool, sigdigits::Int)</code></pre><p>Change the format used by <code>show</code> to display intervals.</p><p>Possible options:</p><ul><li><code>format</code> can be:<ul><li><code>:infsup</code>: display intervals as <code>[a, b]</code>.</li><li><code>:midpoint</code>: display intervals as <code>m ± r</code>.</li><li><code>:full</code>: display interval bounds entirely, ignoring <code>sigdigits</code>.</li></ul></li><li><code>decorations</code>: display the decorations or not.</li><li><code>ng_flag</code>: display the NG flag or not.</li><li><code>sigdigits</code>: number (greater or equal to 1) of significant digits to display.</li></ul><p>Initially, the display options are set to <code>setdisplay(:infsup; decorations = true, ng_flag = true, sigdigits = 6)</code>. If any of <code>format</code>, <code>decorations</code>, <code>ng_flag</code> and <code>sigdigits</code> is omitted, then their value is left unchanged.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> setdisplay(:infsup; decorations = true, sigdigits = 6) # default display options Display options: - format: infsup - decorations: true @@ -110,7 +110,7 @@ - significant digits: 3 julia> x -[0.0999, 0.301]</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/display.jl#L22-L84">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.strictprecedes-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.strictprecedes-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.strictprecedes</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">strictprecedes(x, y)</code></pre><p>Test whether any element of <code>x</code> is strictly lesser than every elements of <code>y</code>.</p><p>Implement the <code>strictPrecedes</code> function of the IEEE Standard 1788-2015 (Table 10.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/boolean.jl#L188-L194">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat" href="#IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>IntervalArithmetic.sup</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">sup(x)</code></pre><p>Upper bound, or supremum, of <code>x</code>.</p><p>Implement the <code>sup</code> function of the IEEE Standard 1788-2015 (Table 9.2).</p><p>See also: <a href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>inf</code></a>, <a href="#IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>bounds</code></a>, <a href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>mid</code></a>, <a href="#IntervalArithmetic.diam-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>diam</code></a>, <a href="#IntervalArithmetic.radius-Tuple{BareInterval}"><code>radius</code></a> and <a href="#IntervalArithmetic.midradius-Tuple{BareInterval}"><code>midradius</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/interval_operations/numeric.jl#L31-L40">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.@I_str-Tuple{Any}" href="#IntervalArithmetic.@I_str-Tuple{Any}"><code>IntervalArithmetic.@I_str</code></a> — <span class="docstring-category">Macro</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">I"str"</code></pre><p>Create an interval by parsing the string <code>"str"</code>; this is semantically equivalent to <code>parse(Interval{default_numtype()}, "str")</code>.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> setdisplay(:full); +[0.0999, 0.301]</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/display.jl#L22-L84">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.strictprecedes-Tuple{BareInterval, BareInterval}" href="#IntervalArithmetic.strictprecedes-Tuple{BareInterval, BareInterval}"><code>IntervalArithmetic.strictprecedes</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">strictprecedes(x, y)</code></pre><p>Test whether any element of <code>x</code> is strictly lesser than every elements of <code>y</code>.</p><p>Implement the <code>strictPrecedes</code> function of the IEEE Standard 1788-2015 (Table 10.3).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/boolean.jl#L188-L194">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat" href="#IntervalArithmetic.sup-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>IntervalArithmetic.sup</code></a> — <span class="docstring-category">Method</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">sup(x)</code></pre><p>Upper bound, or supremum, of <code>x</code>.</p><p>Implement the <code>sup</code> function of the IEEE Standard 1788-2015 (Table 9.2).</p><p>See also: <a href="#IntervalArithmetic.inf-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>inf</code></a>, <a href="#IntervalArithmetic.bounds-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>bounds</code></a>, <a href="#IntervalArithmetic.mid-Union{Tuple{BareInterval{T}}, Tuple{T}, Tuple{BareInterval{T}, Any}} where T<:AbstractFloat"><code>mid</code></a>, <a href="#IntervalArithmetic.diam-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:AbstractFloat"><code>diam</code></a>, <a href="#IntervalArithmetic.radius-Tuple{BareInterval}"><code>radius</code></a> and <a href="#IntervalArithmetic.midradius-Tuple{BareInterval}"><code>midradius</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/interval_operations/numeric.jl#L31-L40">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.@I_str-Tuple{Any}" href="#IntervalArithmetic.@I_str-Tuple{Any}"><code>IntervalArithmetic.@I_str</code></a> — <span class="docstring-category">Macro</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">I"str"</code></pre><p>Create an interval by parsing the string <code>"str"</code>; this is semantically equivalent to <code>parse(Interval{default_numtype()}, "str")</code>.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> setdisplay(:full); julia> I"[3, 4]" Interval{Float64}(3.0, 4.0, com) @@ -119,7 +119,7 @@ Interval{Float64}(0.09999999999999999, 0.1, com) julia> in_interval(1//10, I"0.1") -true</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/parsing.jl#L1-L21">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.@exact-Tuple{Any}" href="#IntervalArithmetic.@exact-Tuple{Any}"><code>IntervalArithmetic.@exact</code></a> — <span class="docstring-category">Macro</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">@exact</code></pre><p>Wrap every literal numbers of the expression in an <a href="#IntervalArithmetic.ExactReal"><code>ExactReal</code></a>. This macro allows defining generic functions, seamlessly accepting both <code>Number</code> and <a href="#IntervalArithmetic.Interval"><code>Interval</code></a> arguments, without producing the "NG" flag.</p><div class="admonition is-danger"><header class="admonition-header">Danger</header><div class="admonition-body"><p>By using <a href="#IntervalArithmetic.ExactReal"><code>ExactReal</code></a>, users acknowledge the responsibility of ensuring that the number they input corresponds to their intended value. For example, <code>ExactReal(0.1)</code> implies that the user knows that <span>$0.1$</span> can not be represented exactly as a binary number, and that they are using a slightly different number than <span>$0.1$</span>. To help identify the binary number, <code>ExactReal</code> is displayed without any rounding.</p><pre><code class="language-julia hljs">julia> ExactReal(0.1) +true</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/parsing.jl#L1-L21">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.@exact-Tuple{Any}" href="#IntervalArithmetic.@exact-Tuple{Any}"><code>IntervalArithmetic.@exact</code></a> — <span class="docstring-category">Macro</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">@exact</code></pre><p>Wrap every literal numbers of the expression in an <a href="#IntervalArithmetic.ExactReal"><code>ExactReal</code></a>. This macro allows defining generic functions, seamlessly accepting both <code>Number</code> and <a href="#IntervalArithmetic.Interval"><code>Interval</code></a> arguments, without producing the "NG" flag.</p><div class="admonition is-danger"><header class="admonition-header">Danger</header><div class="admonition-body"><p>By using <a href="#IntervalArithmetic.ExactReal"><code>ExactReal</code></a>, users acknowledge the responsibility of ensuring that the number they input corresponds to their intended value. For example, <code>ExactReal(0.1)</code> implies that the user knows that <span>$0.1$</span> can not be represented exactly as a binary number, and that they are using a slightly different number than <span>$0.1$</span>. To help identify the binary number, <code>ExactReal</code> is displayed without any rounding.</p><pre><code class="language-julia hljs">julia> ExactReal(0.1) ExactReal{Float64}(0.1000000000000000055511151231257827021181583404541015625)</code></pre><p>In case of doubt, <a href="#IntervalArithmetic.has_exact_display-Tuple{Real}"><code>has_exact_display</code></a> can be use to check if the string representation of a <code>Real</code> is equal to its binary value.</p></div></div><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> setdisplay(:full); julia> f(x) = 1.2*x + 0.1 @@ -135,7 +135,7 @@ Interval{Float64}(1.2999999999999998, 2.5, com) julia> g(1.4) -1.78</code></pre><p>See also: <a href="#IntervalArithmetic.ExactReal"><code>ExactReal</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/exact_literals.jl#L180-L226">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.@interval-Tuple{Any}" href="#IntervalArithmetic.@interval-Tuple{Any}"><code>IntervalArithmetic.@interval</code></a> — <span class="docstring-category">Macro</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">@interval(expr) +1.78</code></pre><p>See also: <a href="#IntervalArithmetic.ExactReal"><code>ExactReal</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/exact_literals.jl#L180-L226">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="IntervalArithmetic.@interval-Tuple{Any}" href="#IntervalArithmetic.@interval-Tuple{Any}"><code>IntervalArithmetic.@interval</code></a> — <span class="docstring-category">Macro</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">@interval(expr) @interval(T, expr) @interval(T, expr1, expr2)</code></pre><p>Walk through an expression and wrap each argument of functions with the internal constructor <a href="@ref"><code>atomic</code></a>.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia> setdisplay(:full); @@ -146,4 +146,4 @@ :(sin(IntervalArithmetic.atomic(Float32, 1))) julia> @interval Float64 sin(1) exp(1) -Interval{Float64}(0.8414709848078965, 2.7182818284590455, com)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/0f33fa43b7776da1a5c1127a36aa2f743886805e/src/intervals/construction.jl#L638-L660">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../usage/">« Usage</a><a class="docs-footer-nextpage" href="../../examples/pi/">Rigorous computation of <span>$\pi$</span> »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Tuesday 24 December 2024 11:27">Tuesday 24 December 2024</span>. Using Julia version 1.11.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> +Interval{Float64}(0.8414709848078965, 2.7182818284590455, com)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/8b0c1f220c73dd0671f4266e4b19fc68b04f2516/src/intervals/construction.jl#L638-L660">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../usage/">« Usage</a><a class="docs-footer-nextpage" href="../../examples/pi/">Rigorous computation of <span>$\pi$</span> »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Saturday 25 January 2025 22:47">Saturday 25 January 2025</span>. Using Julia version 1.11.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/manual/construction/index.html b/dev/manual/construction/index.html index 43fc61a6..badca9a7 100644 --- a/dev/manual/construction/index.html +++ b/dev/manual/construction/index.html @@ -7,4 +7,4 @@ └ @ IntervalArithmetic ~/work/IntervalArithmetic.jl/IntervalArithmetic.jl/src/intervals/construction.jl:443 ∅</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> interval(NaN)</code><code class="nohighlight hljs ansi" style="display:block;">┌ Warning: ill-formed interval [a, b] with a = NaN, b = NaN and decoration d = com. NaI is returned └ @ IntervalArithmetic ~/work/IntervalArithmetic.jl/IntervalArithmetic.jl/src/intervals/construction.jl:443 -∅</code></pre><p>These are all examples of ill-formed intervals, resulting in the decoration <code>ill</code>.</p><div class="admonition is-danger"><header class="admonition-header">Danger</header><div class="admonition-body"><p>The decoration <code>ill</code> is an indicator that an error has occured. Therefore, any interval marked by this decoration cannot be trusted and the code needs to be debugged.</p></div></div><h3 id="Guarantee"><a class="docs-heading-anchor" href="#Guarantee">Guarantee</a><a id="Guarantee-1"></a><a class="docs-heading-anchor-permalink" href="#Guarantee" title="Permalink"></a></h3><p>A <em>guarantee</em> is yet another label, independent of decorations, and not described by the IEEE Standard 1788-2015 specifications. Its purpose is to accomodate for Julia's extensive conversion and promotion system, while retaining reliability in computations. Specifically, an interval <code>x</code> constructed via <a href="../api/#IntervalArithmetic.interval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}, Tuple{Type{T}, Any, Any, IntervalArithmetic.Decoration}} where T"><code>interval</code></a> satisfies <code>isguaranteed(x) == true</code>. However, if a call to <code>convert(::Type{<:Interval}, ::Real)</code> occurs, then the resulting interval <code>x</code> satisfies <code>isguaranteed(x) == false</code>, receiving the "NG" (not guaranteed) label. For instance, consider the following examples:</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> convert(Interval{Float64}, 1.) # considered "not guaranteed" as this call can be done implicitly</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(1.0, 1.0, com)_NG</code></pre><pre><code class="language-julia-repl hljs" style="display:block;">julia> interval(1) # considered "guaranteed" as the user explicitly constructed the interval</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(1.0, 1.0, com)</code></pre><p>In contrast, a <a href="../api/#IntervalArithmetic.BareInterval"><code>BareInterval</code></a> can only be constructed via <a href="../api/#IntervalArithmetic.bareinterval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}} where T"><code>bareinterval</code></a>, it is not a subtype of <code>Real</code>, and there are no allowed conversion with <code>Number</code>. Thus, this interval type is always guaranteed.</p><div class="admonition is-danger"><header class="admonition-header">Danger</header><div class="admonition-body"><p>A user interested in validated numerics should <strong>always</strong> have a resulting interval for which <a href="../api/#IntervalArithmetic.isguaranteed-Tuple{Interval}"><code>isguaranteed</code></a> is <code>true</code>.</p></div></div><h2 id="More-constructors"><a class="docs-heading-anchor" href="#More-constructors">More constructors</a><a id="More-constructors-1"></a><a class="docs-heading-anchor-permalink" href="#More-constructors" title="Permalink"></a></h2><p>The submodule <code>IntervalArithmetic.Symbols</code> exports the infix operator <code>..</code> and <code>±</code> as an alias for <code>interval</code>; this submodule must be explicitly imported.</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> using IntervalArithmetic.Symbols</code><code class="nohighlight hljs ansi" style="display:block;"></code><br/><code class="language-julia-repl hljs" style="display:block;">julia> 0.1 .. 0.2 # interval(0.1, 0.2; format = :infsup)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(0.1, 0.2, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> 0.1 ± 0.2 # interval(0.1, 0.2; format = :midpoint)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(-0.1, 0.30000000000000004, com)</code></pre><p>Moreover, one can parse strings into intervals. The various string formats are the following:</p><ul><li><p><code>"[m]"</code> is equivalent to <code>interval(m, m)</code>.</p></li><li><p><code>"[l, r]"</code> is equivalent to <code>interval(l, r)</code>.</p></li><li><p><code>"m?r"</code> is equivalent to <code>interval(m-r, m+r)</code>.</p></li><li><p><code>"m?ren"</code> is equivalent to <code>interval((m-r)*1en, (m+r)*1en)</code>.</p></li><li><p><code>"m?rd"</code> is equivalent to <code>interval(m-r, m)</code>.</p></li><li><p><code>"m?ru"</code> is equivalent to <code>interval(m, m+r)</code>.</p></li><li><p><code>"m?"</code> is equivalent to <code>interval(m + 5 precision units, m - 5 precision units)</code>.</p></li><li><p><code>"m??"</code> is equivalent to <code>interval(-Inf, +Inf)</code>.</p></li><li><p><code>"m??d"</code> is equivalent to <code>interval(-Inf, m)</code>.</p></li><li><p><code>"m??u"</code> is equivalent to <code>interval(m, +Inf)</code>.</p></li><li><p><code>"[Entire]"</code>, <code>"[entire]"</code> and <code>"[,]"</code> are equivalent to <code>entireinterval()</code>.</p></li><li><p><code>"[Empty]"</code>, <code>"[empty]"</code> and <code>"[]"</code> are equivalent to <code>emptyinterval()</code>.</p></li><li><p><code>"[nai]"</code> and any other unsupported string formats are equivalent to <code>nai()</code>.</p></li></ul><p>To add a specific decoration, add <code>"_com"</code>, <code>"_dac"</code>, <code>"_dec"</code>, <code>"_trv"</code> and <code>"_ill"</code> at the end of the string.</p><div class="admonition is-danger"><header class="admonition-header">Danger</header><div class="admonition-body"><p>Most real numbers cannot be exactly represented by floating-points. In such cases, the literal expression is rounded at parse time. To construct an interval enclosing the true real number, one must rely on the string constructor mentioned above.</p><p>For instance, consider</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> x = 0.1</code><code class="nohighlight hljs ansi" style="display:block;">0.1</code></pre><p>This appears to store the real number <span>$1/10$</span> in a variable <code>x</code> of type <code>Float64</code>. Yet,</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> x > 1//10</code><code class="nohighlight hljs ansi" style="display:block;">true</code></pre><p>Hence, the floating-point <code>0.1</code> is (slightly) greater than the real number <span>$1/10$</span> since <span>$1/10$</span> <strong>cannot be represented exactly in binary floating-point arithmetic, at any precision</strong>. The true value must be approximated by a floating-point number with fixed precision – this procedure is called rounding.</p><p>In particular, this implies that <code>interval(0.1)</code> <strong>does not</strong> contain the real number <span>$1/10$</span>. A valid interval containing the real number <span>$1/10$</span> can be constructed by</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> I"0.1"</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(0.09999999999999999, 0.1, com)</code></pre></div></div></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../intro/">« Overview</a><a class="docs-footer-nextpage" href="../usage/">Usage »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Tuesday 24 December 2024 11:27">Tuesday 24 December 2024</span>. Using Julia version 1.11.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> +∅</code></pre><p>These are all examples of ill-formed intervals, resulting in the decoration <code>ill</code>.</p><div class="admonition is-danger"><header class="admonition-header">Danger</header><div class="admonition-body"><p>The decoration <code>ill</code> is an indicator that an error has occured. Therefore, any interval marked by this decoration cannot be trusted and the code needs to be debugged.</p></div></div><h3 id="Guarantee"><a class="docs-heading-anchor" href="#Guarantee">Guarantee</a><a id="Guarantee-1"></a><a class="docs-heading-anchor-permalink" href="#Guarantee" title="Permalink"></a></h3><p>A <em>guarantee</em> is yet another label, independent of decorations, and not described by the IEEE Standard 1788-2015 specifications. Its purpose is to accomodate for Julia's extensive conversion and promotion system, while retaining reliability in computations. Specifically, an interval <code>x</code> constructed via <a href="../api/#IntervalArithmetic.interval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}, Tuple{Type{T}, Any, Any, IntervalArithmetic.Decoration}} where T"><code>interval</code></a> satisfies <code>isguaranteed(x) == true</code>. However, if a call to <code>convert(::Type{<:Interval}, ::Real)</code> occurs, then the resulting interval <code>x</code> satisfies <code>isguaranteed(x) == false</code>, receiving the "NG" (not guaranteed) label. For instance, consider the following examples:</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> convert(Interval{Float64}, 1.) # considered "not guaranteed" as this call can be done implicitly</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(1.0, 1.0, com)_NG</code></pre><pre><code class="language-julia-repl hljs" style="display:block;">julia> interval(1) # considered "guaranteed" as the user explicitly constructed the interval</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(1.0, 1.0, com)</code></pre><p>In contrast, a <a href="../api/#IntervalArithmetic.BareInterval"><code>BareInterval</code></a> can only be constructed via <a href="../api/#IntervalArithmetic.bareinterval-Union{Tuple{T}, Tuple{Type{T}, Any, Any}} where T"><code>bareinterval</code></a>, it is not a subtype of <code>Real</code>, and there are no allowed conversion with <code>Number</code>. Thus, this interval type is always guaranteed.</p><div class="admonition is-danger"><header class="admonition-header">Danger</header><div class="admonition-body"><p>A user interested in validated numerics should <strong>always</strong> have a resulting interval for which <a href="../api/#IntervalArithmetic.isguaranteed-Tuple{Interval}"><code>isguaranteed</code></a> is <code>true</code>.</p></div></div><h2 id="More-constructors"><a class="docs-heading-anchor" href="#More-constructors">More constructors</a><a id="More-constructors-1"></a><a class="docs-heading-anchor-permalink" href="#More-constructors" title="Permalink"></a></h2><p>The submodule <code>IntervalArithmetic.Symbols</code> exports the infix operator <code>..</code> and <code>±</code> as an alias for <code>interval</code>; this submodule must be explicitly imported.</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> using IntervalArithmetic.Symbols</code><code class="nohighlight hljs ansi" style="display:block;"></code><br/><code class="language-julia-repl hljs" style="display:block;">julia> 0.1 .. 0.2 # interval(0.1, 0.2; format = :infsup)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(0.1, 0.2, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> 0.1 ± 0.2 # interval(0.1, 0.2; format = :midpoint)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(-0.1, 0.30000000000000004, com)</code></pre><p>Moreover, one can parse strings into intervals. The various string formats are the following:</p><ul><li><p><code>"[m]"</code> is equivalent to <code>interval(m, m)</code>.</p></li><li><p><code>"[l, r]"</code> is equivalent to <code>interval(l, r)</code>.</p></li><li><p><code>"m?r"</code> is equivalent to <code>interval(m-r, m+r)</code>.</p></li><li><p><code>"m?ren"</code> is equivalent to <code>interval((m-r)*1en, (m+r)*1en)</code>.</p></li><li><p><code>"m?rd"</code> is equivalent to <code>interval(m-r, m)</code>.</p></li><li><p><code>"m?ru"</code> is equivalent to <code>interval(m, m+r)</code>.</p></li><li><p><code>"m?"</code> is equivalent to <code>interval(m + 5 precision units, m - 5 precision units)</code>.</p></li><li><p><code>"m??"</code> is equivalent to <code>interval(-Inf, +Inf)</code>.</p></li><li><p><code>"m??d"</code> is equivalent to <code>interval(-Inf, m)</code>.</p></li><li><p><code>"m??u"</code> is equivalent to <code>interval(m, +Inf)</code>.</p></li><li><p><code>"[Entire]"</code>, <code>"[entire]"</code> and <code>"[,]"</code> are equivalent to <code>entireinterval()</code>.</p></li><li><p><code>"[Empty]"</code>, <code>"[empty]"</code> and <code>"[]"</code> are equivalent to <code>emptyinterval()</code>.</p></li><li><p><code>"[nai]"</code> and any other unsupported string formats are equivalent to <code>nai()</code>.</p></li></ul><p>To add a specific decoration, add <code>"_com"</code>, <code>"_dac"</code>, <code>"_dec"</code>, <code>"_trv"</code> and <code>"_ill"</code> at the end of the string.</p><div class="admonition is-danger"><header class="admonition-header">Danger</header><div class="admonition-body"><p>Most real numbers cannot be exactly represented by floating-points. In such cases, the literal expression is rounded at parse time. To construct an interval enclosing the true real number, one must rely on the string constructor mentioned above.</p><p>For instance, consider</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> x = 0.1</code><code class="nohighlight hljs ansi" style="display:block;">0.1</code></pre><p>This appears to store the real number <span>$1/10$</span> in a variable <code>x</code> of type <code>Float64</code>. Yet,</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> x > 1//10</code><code class="nohighlight hljs ansi" style="display:block;">true</code></pre><p>Hence, the floating-point <code>0.1</code> is (slightly) greater than the real number <span>$1/10$</span> since <span>$1/10$</span> <strong>cannot be represented exactly in binary floating-point arithmetic, at any precision</strong>. The true value must be approximated by a floating-point number with fixed precision – this procedure is called rounding.</p><p>In particular, this implies that <code>interval(0.1)</code> <strong>does not</strong> contain the real number <span>$1/10$</span>. A valid interval containing the real number <span>$1/10$</span> can be constructed by</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> I"0.1"</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(0.09999999999999999, 0.1, com)</code></pre></div></div></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../intro/">« Overview</a><a class="docs-footer-nextpage" href="../usage/">Usage »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Saturday 25 January 2025 22:47">Saturday 25 January 2025</span>. Using Julia version 1.11.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/dev/manual/usage/index.html b/dev/manual/usage/index.html index d6423ade..1d4fad0f 100644 --- a/dev/manual/usage/index.html +++ b/dev/manual/usage/index.html @@ -23,4 +23,4 @@ - format: full - decorations: false - NG flag: true - - significant digits: 4 (ignored)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> X = interval(0, 1)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(0.0, 1.0, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> Y = interval(1, 2)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(1.0, 2.0, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> X + Y</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(1.0, 3.0, com)</code></pre><p>Due to the above definition, subtraction of two intervals may give poor enclosures:</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> X - X</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(-1.0, 1.0, com)</code></pre><h2 id="Elementary-functions"><a class="docs-heading-anchor" href="#Elementary-functions">Elementary functions</a><a id="Elementary-functions-1"></a><a class="docs-heading-anchor-permalink" href="#Elementary-functions" title="Permalink"></a></h2><p>The main elementary functions are implemented. The functions for <code>Interval{Float64}</code> internally use routines from the correctly-rounded <a href="https://github.com/dpsanders/CRlibm.jl">CRlibm library</a> where possible, i.e. for the following functions defined in that library:</p><ul><li><code>exp</code>, <code>expm1</code></li><li><code>log</code>, <code>log1p</code>, <code>log2</code>, <code>log10</code></li><li><code>sin</code>, <code>cos</code>, <code>tan</code></li><li><code>asin</code>, <code>acos</code>, <code>atan</code></li><li><code>sinh</code>, <code>cosh</code></li></ul><p>Other functions that are implemented for <code>Interval{Float64}</code> internally convert to an <code>Interval{BigFloat}</code>, and then use routines from the MPFR library (<code>BigFloat</code> in Julia):</p><ul><li><code>^</code></li><li><code>exp2</code>, <code>exp10</code></li><li><code>atan</code>, <code>atanh</code></li></ul><p>In particular, in order to obtain correct rounding for the power function (<code>^</code>), intervals are converted to and from <code>BigFloat</code>; this implies a significant slow-down in this case.</p><p>For example,</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> X = interval(1)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(1.0, 1.0, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> sin(X)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(0.8414709848078965, 0.8414709848078966, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> cos(cosh(X))</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(0.027712143770207736, 0.02771214377020796, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> setprecision(BigFloat, 53)</code><code class="nohighlight hljs ansi" style="display:block;">53</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> Y = big(X)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{BigFloat}(1.0, 1.0, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> sin(Y)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{BigFloat}(0.8414709848078965, 0.84147098480789662, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> cos(cosh(Y))</code><code class="nohighlight hljs ansi" style="display:block;">Interval{BigFloat}(0.027712143770207736, 0.027712143770207961, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> setprecision(BigFloat, 128)</code><code class="nohighlight hljs ansi" style="display:block;">128</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> sin(Y)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{BigFloat}(0.8414709848078965, 0.84147098480789662, com)</code></pre><h2 id="Comparisons-and-set-operations"><a class="docs-heading-anchor" href="#Comparisons-and-set-operations">Comparisons and set operations</a><a id="Comparisons-and-set-operations-1"></a><a class="docs-heading-anchor-permalink" href="#Comparisons-and-set-operations" title="Permalink"></a></h2><p>All comparisons and set operations for <code>Real</code> have been purposely disallowed to prevent silent errors. For instance, <code>x == y</code> does not implies <code>x - y == 0</code> for non-singleton intervals.</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> interval(1) < interval(2)</code><code class="nohighlight hljs ansi" style="display:block;">ERROR: ArgumentError: `<` is purposely not supported for intervals. See instead `isstrictless`, `strictprecedes`</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> precedes(interval(1), interval(2))</code><code class="nohighlight hljs ansi" style="display:block;">true</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> issubset(interval(1, 2), interval(2))</code><code class="nohighlight hljs ansi" style="display:block;">ERROR: ArgumentError: `issubset` is purposely not supported for intervals. See instead `issubset_interval`</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> issubset_interval(interval(1, 2), interval(2))</code><code class="nohighlight hljs ansi" style="display:block;">false</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> intersect(interval(1, 2), interval(2))</code><code class="nohighlight hljs ansi" style="display:block;">ERROR: ArgumentError: `union!` is purposely not supported for intervals. See instead `hull`</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> intersect_interval(interval(1, 2), interval(2))</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(2.0, 2.0, trv)</code></pre><p>In particular, <code>if ... else ... end</code> statements used for floating-points will generally break with intervals.</p><p>One can refer to the following:</p><ul><li><code><</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.isstrictless-Tuple{BareInterval, BareInterval}"><code>isstrictless</code></a> or <a href="../api/#IntervalArithmetic.strictprecedes-Tuple{BareInterval, BareInterval}"><code>strictprecedes</code></a>.</li><li><code>==</code>: allowed if the arguments are singleton intervals, or if at least one argument is not an interval (equivalent to <a href="../api/#IntervalArithmetic.isthin-Tuple{BareInterval, Number}"><code>isthin</code></a>). Otherwise, see <a href="../api/#IntervalArithmetic.isequal_interval-Tuple{BareInterval, BareInterval}"><code>isequal_interval</code></a>.</li><li><code>iszero</code>, <code>isone</code>: allowed (equivalent to <a href="../api/#IntervalArithmetic.isthinzero-Tuple{BareInterval}"><code>isthinzero</code></a> and <a href="../api/#IntervalArithmetic.isthinone-Tuple{BareInterval}"><code>isthinone</code></a> respectively).</li><li><code>isinteger</code>: cannot be used with intervals. See instead <a href="ref"><code>isthininteger</code></a>.</li><li><code>isfinite</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.isbounded-Tuple{BareInterval}"><code>isbounded</code></a>.</li><li><code>isnan</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.isnai-Tuple{BareInterval}"><code>isnai</code></a>.</li><li><code>in</code>: allowed if at least one argument is not an interval and the interval argument is a singleton. Otherwise, see <a href="../api/#IntervalArithmetic.in_interval-Tuple{Number, BareInterval}"><code>in_interval</code></a>.</li><li><code>issubset</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.issubset_interval-Tuple{BareInterval, BareInterval}"><code>issubset_interval</code></a>.</li><li><code>isdisjoint</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.isdisjoint_interval-Tuple{BareInterval, BareInterval}"><code>isdisjoint_interval</code></a>.</li><li><code>issetequal</code>: cannot be used with intervals.</li><li><code>isempty</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.isempty_interval-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}"><code>isempty_interval</code></a>.</li><li><code>union</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.hull-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>hull</code></a>.</li><li><code>intersect</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.intersect_interval-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>intersect_interval</code></a>.</li><li><code>setdiff</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.interiordiff-Tuple{BareInterval, BareInterval}"><code>interiordiff</code></a>.</li></ul><h2 id="Custom-interval-bounds-type"><a class="docs-heading-anchor" href="#Custom-interval-bounds-type">Custom interval bounds type</a><a id="Custom-interval-bounds-type-1"></a><a class="docs-heading-anchor-permalink" href="#Custom-interval-bounds-type" title="Permalink"></a></h2><p>A <code>BareInterval{T}</code> or <code>Interval{T}</code> have the restriction <code>T <: Union{Rational,AbstractFloat}</code> which is the parametric type for the bounds of the interval. Supposing one wishes to use their own numeric type <code>MyNumType <: Union{Rational,AbstractFloat}</code>, they must provide their own arithmetic operations (with correct rounding!).</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../construction/">« Constructing intervals</a><a class="docs-footer-nextpage" href="../api/">API »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Tuesday 24 December 2024 11:27">Tuesday 24 December 2024</span>. Using Julia version 1.11.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> + - significant digits: 4 (ignored)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> X = interval(0, 1)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(0.0, 1.0, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> Y = interval(1, 2)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(1.0, 2.0, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> X + Y</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(1.0, 3.0, com)</code></pre><p>Due to the above definition, subtraction of two intervals may give poor enclosures:</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> X - X</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(-1.0, 1.0, com)</code></pre><h2 id="Elementary-functions"><a class="docs-heading-anchor" href="#Elementary-functions">Elementary functions</a><a id="Elementary-functions-1"></a><a class="docs-heading-anchor-permalink" href="#Elementary-functions" title="Permalink"></a></h2><p>The main elementary functions are implemented. The functions for <code>Interval{Float64}</code> internally use routines from the correctly-rounded <a href="https://github.com/dpsanders/CRlibm.jl">CRlibm library</a> where possible, i.e. for the following functions defined in that library:</p><ul><li><code>exp</code>, <code>expm1</code></li><li><code>log</code>, <code>log1p</code>, <code>log2</code>, <code>log10</code></li><li><code>sin</code>, <code>cos</code>, <code>tan</code></li><li><code>asin</code>, <code>acos</code>, <code>atan</code></li><li><code>sinh</code>, <code>cosh</code></li></ul><p>Other functions that are implemented for <code>Interval{Float64}</code> internally convert to an <code>Interval{BigFloat}</code>, and then use routines from the MPFR library (<code>BigFloat</code> in Julia):</p><ul><li><code>^</code></li><li><code>exp2</code>, <code>exp10</code></li><li><code>atan</code>, <code>atanh</code></li></ul><p>In particular, in order to obtain correct rounding for the power function (<code>^</code>), intervals are converted to and from <code>BigFloat</code>; this implies a significant slow-down in this case.</p><p>For example,</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> X = interval(1)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(1.0, 1.0, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> sin(X)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(0.8414709848078965, 0.8414709848078966, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> cos(cosh(X))</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(0.027712143770207736, 0.02771214377020796, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> setprecision(BigFloat, 53)</code><code class="nohighlight hljs ansi" style="display:block;">53</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> Y = big(X)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{BigFloat}(1.0, 1.0, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> sin(Y)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{BigFloat}(0.8414709848078965, 0.84147098480789662, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> cos(cosh(Y))</code><code class="nohighlight hljs ansi" style="display:block;">Interval{BigFloat}(0.027712143770207736, 0.027712143770207961, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> setprecision(BigFloat, 128)</code><code class="nohighlight hljs ansi" style="display:block;">128</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> sin(Y)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{BigFloat}(0.8414709848078965, 0.84147098480789662, com)</code></pre><h2 id="Comparisons-and-set-operations"><a class="docs-heading-anchor" href="#Comparisons-and-set-operations">Comparisons and set operations</a><a id="Comparisons-and-set-operations-1"></a><a class="docs-heading-anchor-permalink" href="#Comparisons-and-set-operations" title="Permalink"></a></h2><p>All comparisons and set operations for <code>Real</code> have been purposely disallowed to prevent silent errors. For instance, <code>x == y</code> does not implies <code>x - y == 0</code> for non-singleton intervals.</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> interval(1) < interval(2)</code><code class="nohighlight hljs ansi" style="display:block;">ERROR: ArgumentError: `<` is purposely not supported for intervals. See instead `isstrictless`, `strictprecedes`</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> precedes(interval(1), interval(2))</code><code class="nohighlight hljs ansi" style="display:block;">true</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> issubset(interval(1, 2), interval(2))</code><code class="nohighlight hljs ansi" style="display:block;">ERROR: ArgumentError: `issubset` is purposely not supported for intervals. See instead `issubset_interval`</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> issubset_interval(interval(1, 2), interval(2))</code><code class="nohighlight hljs ansi" style="display:block;">false</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> intersect(interval(1, 2), interval(2))</code><code class="nohighlight hljs ansi" style="display:block;">ERROR: ArgumentError: `union!` is purposely not supported for intervals. See instead `hull`</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> intersect_interval(interval(1, 2), interval(2))</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(2.0, 2.0, trv)</code></pre><p>In particular, <code>if ... else ... end</code> statements used for floating-points will generally break with intervals.</p><p>One can refer to the following:</p><ul><li><code><</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.isstrictless-Tuple{BareInterval, BareInterval}"><code>isstrictless</code></a> or <a href="../api/#IntervalArithmetic.strictprecedes-Tuple{BareInterval, BareInterval}"><code>strictprecedes</code></a>.</li><li><code>==</code>: allowed if the arguments are singleton intervals, or if at least one argument is not an interval (equivalent to <a href="../api/#IntervalArithmetic.isthin-Tuple{BareInterval, Number}"><code>isthin</code></a>). Otherwise, see <a href="../api/#IntervalArithmetic.isequal_interval-Tuple{BareInterval, BareInterval}"><code>isequal_interval</code></a>.</li><li><code>iszero</code>, <code>isone</code>: allowed (equivalent to <a href="../api/#IntervalArithmetic.isthinzero-Tuple{BareInterval}"><code>isthinzero</code></a> and <a href="../api/#IntervalArithmetic.isthinone-Tuple{BareInterval}"><code>isthinone</code></a> respectively).</li><li><code>isinteger</code>: cannot be used with intervals. See instead <a href="ref"><code>isthininteger</code></a>.</li><li><code>isfinite</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.isbounded-Tuple{BareInterval}"><code>isbounded</code></a>.</li><li><code>isnan</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.isnai-Tuple{BareInterval}"><code>isnai</code></a>.</li><li><code>in</code>: allowed if at least one argument is not an interval and the interval argument is a singleton. Otherwise, see <a href="../api/#IntervalArithmetic.in_interval-Tuple{Number, BareInterval}"><code>in_interval</code></a>.</li><li><code>issubset</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.issubset_interval-Tuple{BareInterval, BareInterval}"><code>issubset_interval</code></a>.</li><li><code>isdisjoint</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.isdisjoint_interval-Tuple{BareInterval, BareInterval}"><code>isdisjoint_interval</code></a>.</li><li><code>issetequal</code>: cannot be used with intervals.</li><li><code>isempty</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.isempty_interval-Union{Tuple{BareInterval{T}}, Tuple{T}} where T<:Union{AbstractFloat, Rational}"><code>isempty_interval</code></a>.</li><li><code>union</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.hull-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>hull</code></a>.</li><li><code>intersect</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.intersect_interval-Union{Tuple{T}, Tuple{BareInterval{T}, BareInterval{T}}} where T<:Union{AbstractFloat, Rational}"><code>intersect_interval</code></a>.</li><li><code>setdiff</code>: cannot be used with intervals. See instead <a href="../api/#IntervalArithmetic.interiordiff-Tuple{BareInterval, BareInterval}"><code>interiordiff</code></a>.</li></ul><h2 id="Custom-interval-bounds-type"><a class="docs-heading-anchor" href="#Custom-interval-bounds-type">Custom interval bounds type</a><a id="Custom-interval-bounds-type-1"></a><a class="docs-heading-anchor-permalink" href="#Custom-interval-bounds-type" title="Permalink"></a></h2><p>A <code>BareInterval{T}</code> or <code>Interval{T}</code> have the restriction <code>T <: Union{Rational,AbstractFloat}</code> which is the parametric type for the bounds of the interval. Supposing one wishes to use their own numeric type <code>MyNumType <: Union{Rational,AbstractFloat}</code>, they must provide their own arithmetic operations (with correct rounding!).</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../construction/">« Constructing intervals</a><a class="docs-footer-nextpage" href="../api/">API »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Saturday 25 January 2025 22:47">Saturday 25 January 2025</span>. Using Julia version 1.11.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>