Skip to content

Commit

Permalink
build based on 7d21e5e
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Feb 2, 2024
1 parent 6021e2b commit 80bbb08
Show file tree
Hide file tree
Showing 7 changed files with 53 additions and 49 deletions.
2 changes: 1 addition & 1 deletion dev/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.6.7","generation_timestamp":"2024-01-31T21:47:13","documenter_version":"1.2.1"}}
{"documenter":{"julia_version":"1.6.7","generation_timestamp":"2024-02-02T08:30:54","documenter_version":"1.2.1"}}
13 changes: 11 additions & 2 deletions dev/docstrings/index.html

Large diffs are not rendered by default.

40 changes: 0 additions & 40 deletions dev/examples/151bbf28.svg

This file was deleted.

35 changes: 35 additions & 0 deletions dev/examples/1a71ce91.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 4 additions & 4 deletions dev/examples/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
for k in 1:N-3
x[k+3] = 10/3*x[k+2] - 3*x[k+1] + 2/3*x[k]
end
plot(4:N, abs.(x.-sqrt(2))[4:N], label=&quot;numerical error&quot;, yaxis=:log, background_color=:transparent, foreground_color=:gray)</code></pre><img src="151bbf28.svg" alt="Example block output"/><p>The backward recurrence, on the other hand, will be dominated by the eigenvalue <span>$\frac{1}{3}$</span> instead. While there may be other algorithms that are stable in this case, they are not trivial and vary across different problems.</p><h2 id="Pseudo-stablisation-methods"><a class="docs-heading-anchor" href="#Pseudo-stablisation-methods">Pseudo-stablisation methods</a><a id="Pseudo-stablisation-methods-1"></a><a class="docs-heading-anchor-permalink" href="#Pseudo-stablisation-methods" title="Permalink"></a></h2><p>The idea of pseudo-stablisation is to use a high precision to achieve a given error tolerance despite the instability. The precision choice is smart such that no extra care is taken by the end user, resulting in a &quot;stable&quot; behavior. Needless to say, pseudo-stablisation only works on problems where the initial values and the recurrence coefficients can be computed to arbitrary precision.</p><p>The current iteration of the strategy focuses on linear problems, where the end error scales linearly with the initial error which is considered as machine epsilon. To get the scaling factor, a test recurrence with random initial values is run. The random initial values ensure that the initial error is significant and the leading eigenvalue immediately takes over. The estimated scaling factor is then the ratio between the end norm of the test run and the initial norm.</p><p>The test recurrence may sound like a performance trade-off, but since it is run under a low precision, the cost is negligible.</p><h3 id="Linear-recursive-Sequence-2"><a class="docs-heading-anchor" href="#Linear-recursive-Sequence-2">Linear-recursive Sequence</a><a class="docs-heading-anchor-permalink" href="#Linear-recursive-Sequence-2" title="Permalink"></a></h3><p>First, we shall recognise that the linear recursive sequence is basically a 1D stencil recurrence with the stencil</p><pre><code class="language-julia hljs">stencil = (CartesianIndex(-3), CartesianIndex(-2), CartesianIndex(-1));</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">(CartesianIndex(-3,), CartesianIndex(-2,), CartesianIndex(-1,))</code></pre><p>with the coefficients</p><pre><code class="language-julia hljs">coef0(m) = 2//3
plot(4:N, abs.(x.-sqrt(2))[4:N], label=&quot;numerical error&quot;, yaxis=:log, background_color=:transparent, foreground_color=:gray)</code></pre><img src="1a71ce91.svg" alt="Example block output"/><p>The backward recurrence, on the other hand, will be dominated by the eigenvalue <span>$\frac{1}{3}$</span> instead. While there may be other algorithms that are stable in this case, they are not trivial and vary across different problems.</p><h2 id="Pseudo-stablisation-methods"><a class="docs-heading-anchor" href="#Pseudo-stablisation-methods">Pseudo-stablisation methods</a><a id="Pseudo-stablisation-methods-1"></a><a class="docs-heading-anchor-permalink" href="#Pseudo-stablisation-methods" title="Permalink"></a></h2><p>The idea of pseudo-stablisation is to use a high precision to achieve a given error tolerance despite the instability. The precision choice is smart such that no extra care is taken by the end user, resulting in a &quot;stable&quot; behavior. Needless to say, pseudo-stablisation only works on problems where the initial values and the recurrence coefficients can be computed to arbitrary precision.</p><p>The current iteration of the strategy focuses on linear problems, where the end error scales linearly with the initial error which is considered as machine epsilon. To get the scaling factor, a test recurrence with random initial values is run. The random initial values ensure that the initial error is significant and the leading eigenvalue immediately takes over. The estimated scaling factor is then the ratio between the end norm of the test run and the initial norm.</p><p>The test recurrence may sound like a performance trade-off, but since it is run under a low precision, the cost is negligible.</p><h3 id="Linear-recursive-Sequence-2"><a class="docs-heading-anchor" href="#Linear-recursive-Sequence-2">Linear-recursive Sequence</a><a class="docs-heading-anchor-permalink" href="#Linear-recursive-Sequence-2" title="Permalink"></a></h3><p>First, we shall recognise that the linear recursive sequence is basically a 1D stencil recurrence with the stencil</p><pre><code class="language-julia hljs">stencil = (CartesianIndex(-3), CartesianIndex(-2), CartesianIndex(-1));</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">(CartesianIndex(-3,), CartesianIndex(-2,), CartesianIndex(-1,))</code></pre><p>with the coefficients</p><pre><code class="language-julia hljs">coef0(m) = 2//3
coef1(m) = -3
coef2(m) = 10//3
coefs = (coef0, coef1, coef2)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">(Main.coef0, Main.coef1, Main.coef2)</code></pre><p>They will work together to define the recurrence</p><pre><code class="language-julia hljs"># calculate x[m]
Expand Down Expand Up @@ -36,6 +36,6 @@
1.4142135623730951
1.4142135623730951
1.4142135623730951
1.414213562373095
1.414213562373095
1.414213562373095</code></pre></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../docstrings/">« Docstrings</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="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Wednesday 31 January 2024 21:47">Wednesday 31 January 2024</span>. Using Julia version 1.6.7.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
1.4142135623730951
1.4142135623730951
1.4142135623730951</code></pre></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../docstrings/">« Docstrings</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="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Friday 2 February 2024 08:30">Friday 2 February 2024</span>. Using Julia version 1.6.7.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion dev/index.html
Original file line number Diff line number Diff line change
@@ -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>PseudostableRecurrences.jl · PseudostableRecurrences</title><meta name="title" content="PseudostableRecurrences.jl · PseudostableRecurrences"/><meta property="og:title" content="PseudostableRecurrences.jl · PseudostableRecurrences"/><meta property="twitter:title" content="PseudostableRecurrences.jl · PseudostableRecurrences"/><meta name="description" content="Documentation for PseudostableRecurrences."/><meta property="og:description" content="Documentation for PseudostableRecurrences."/><meta property="twitter:description" content="Documentation for PseudostableRecurrences."/><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/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></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href>PseudostableRecurrences</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>PseudostableRecurrences.jl</a></li><li><a class="tocitem" href="docstrings/">Docstrings</a></li><li><a class="tocitem" href="examples/">Examples</a></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>PseudostableRecurrences.jl</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>PseudostableRecurrences.jl</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/putianyi889/PseudostableRecurrences.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/putianyi889/PseudostableRecurrences.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="PseudostableRecurrences.jl"><a class="docs-heading-anchor" href="#PseudostableRecurrences.jl">PseudostableRecurrences.jl</a><a id="PseudostableRecurrences.jl-1"></a><a class="docs-heading-anchor-permalink" href="#PseudostableRecurrences.jl" title="Permalink"></a></h1><p>Documentation for PseudostableRecurrences.jl</p></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="docstrings/">Docstrings »</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="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Wednesday 31 January 2024 21:47">Wednesday 31 January 2024</span>. Using Julia version 1.6.7.</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>PseudostableRecurrences.jl · PseudostableRecurrences</title><meta name="title" content="PseudostableRecurrences.jl · PseudostableRecurrences"/><meta property="og:title" content="PseudostableRecurrences.jl · PseudostableRecurrences"/><meta property="twitter:title" content="PseudostableRecurrences.jl · PseudostableRecurrences"/><meta name="description" content="Documentation for PseudostableRecurrences."/><meta property="og:description" content="Documentation for PseudostableRecurrences."/><meta property="twitter:description" content="Documentation for PseudostableRecurrences."/><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/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></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href>PseudostableRecurrences</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>PseudostableRecurrences.jl</a></li><li><a class="tocitem" href="docstrings/">Docstrings</a></li><li><a class="tocitem" href="examples/">Examples</a></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>PseudostableRecurrences.jl</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>PseudostableRecurrences.jl</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/putianyi889/PseudostableRecurrences.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/putianyi889/PseudostableRecurrences.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="PseudostableRecurrences.jl"><a class="docs-heading-anchor" href="#PseudostableRecurrences.jl">PseudostableRecurrences.jl</a><a id="PseudostableRecurrences.jl-1"></a><a class="docs-heading-anchor-permalink" href="#PseudostableRecurrences.jl" title="Permalink"></a></h1><p>Documentation for PseudostableRecurrences.jl</p></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="docstrings/">Docstrings »</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="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Friday 2 February 2024 08:30">Friday 2 February 2024</span>. Using Julia version 1.6.7.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Loading

0 comments on commit 80bbb08

Please sign in to comment.