Skip to content

Commit

Permalink
build based on 87d9457
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Dec 24, 2024
1 parent 66b50cb commit 2ca6815
Show file tree
Hide file tree
Showing 17 changed files with 88 additions and 45 deletions.
2 changes: 1 addition & 1 deletion previews/PR49/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.11.2","generation_timestamp":"2024-12-24T05:47:17","documenter_version":"1.8.0"}}
{"documenter":{"julia_version":"1.11.2","generation_timestamp":"2024-12-24T05:49:25","documenter_version":"1.8.0"}}
2 changes: 1 addition & 1 deletion previews/PR49/conventions/comparisons/index.html

Large diffs are not rendered by default.

57 changes: 50 additions & 7 deletions previews/PR49/conventions/conventions/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion previews/PR49/conventions/outline/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -70,4 +70,4 @@
&= 𝐑\, 𝐯\, 𝐯\, 𝐑^{-1} \\
&= \|𝐯\|^2\, 𝐑\, 𝐑^{-1} \\
&= \|𝐯\|^2
\end{aligned}\]</p><p>That is, <span>$𝐯&#39; = 𝐑\, 𝐯\, 𝐑^{-1}$</span> has the same norm as <span>$𝐯$</span>, which means that <span>$𝐯&#39;$</span> is a rotation of <span>$𝐯$</span>. Given the constraint on the norm of <span>$𝐑$</span>, we can rewrite it as</p></article><nav class="docs-footer"><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 05:47">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{aligned}\]</p><p>That is, <span>$𝐯&#39; = 𝐑\, 𝐯\, 𝐑^{-1}$</span> has the same norm as <span>$𝐯$</span>, which means that <span>$𝐯&#39;$</span> is a rotation of <span>$𝐯$</span>. Given the constraint on the norm of <span>$𝐑$</span>, we can rewrite it as</p></article><nav class="docs-footer"><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 05:49">Tuesday 24 December 2024</span>. Using Julia version 1.11.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion previews/PR49/functions/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion previews/PR49/index.html

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions previews/PR49/internal/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion previews/PR49/notes/H_recursions/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,4 @@
+ d^{m}_{n} H^{m&#39;, m+1}_{n}\]</p><p>(where the last term drops out for <span>$m=n$</span>). The constants are defined by</p><p class="math-container">\[d^{m}_{n} = \frac{\mathrm{sgn}(m)}{2} \sqrt{(n-m)(n+m+1)}.\]</p><p>Note that we can drop the factor of <span>$1/2$</span>, and <em>for this case only</em> the sign is always +1.</p><h3 id="Step-5"><a class="docs-heading-anchor" href="#Step-5">Step 5</a><a id="Step-5-1"></a><a class="docs-heading-anchor-permalink" href="#Step-5" title="Permalink"></a></h3><p>Recursively compute <span>$H^{m&#39;−1, m}_{n}(β)$</span> for <span>$m&#39;=0,\ldots,−n+1$</span>, <span>$m=−m&#39;,\ldots,n$</span> using relation (50) resolved with respect to <span>$H^{m&#39;−1, m}_{n}$</span>:</p><p class="math-container">\[d^{m&#39;−1}_{n} H^{m&#39;−1, m}_{n}
= d^{m&#39;}_{n} H^{m&#39;+1, m}_{n}
+ d^{m−1}_{n} H^{m&#39;, m−1}_{n}
− d^{m}_{n} H^{m&#39;, m+1}_{n}\]</p><p>(where the last term drops out for <span>$m=n$</span>).</p><p>NOTE: Although Gumerov and Duraiswami specify the loop over <span>$m&#39;$</span> to start at -1, I find it necessary to start at 0, or there will be missing information. This also requires setting the <span>$H^{0, -1}_{n}$</span> components (for all <span>$n$</span>) before beginning this loop.</p><h2 id="Pre-computing-constants-versus-computing-on-the-fly"><a class="docs-heading-anchor" href="#Pre-computing-constants-versus-computing-on-the-fly">Pre-computing constants versus computing on the fly</a><a id="Pre-computing-constants-versus-computing-on-the-fly-1"></a><a class="docs-heading-anchor-permalink" href="#Pre-computing-constants-versus-computing-on-the-fly" title="Permalink"></a></h2><p>Each of the constants <span>$a^{m}_{n}$</span>, <span>$b^{m}_{n}$</span>, and <span>$c^{m}_{n}$</span> involves divisions and square-roots, which can be very costly to compute. It can be advantageous to pre-compute the constants, and simply index the pre-computed arrays rather than re-computing them on each recursion.</p><p><em>If</em> we include the cost of computing all these constants in a single call to the <span>$H$</span> recurrence, it can be much cheaper to compute each constant as needed within the algorithm, rather than computing them all at once at the beginning of the algorithm — but only for very small computations, such as those involving <span>$n_{\mathrm{max}} ≈ 10$</span>. Beyond this, despite the storage penalties for all those constants, it turns out to be better to pre-compute them. However, it should be noted that the fractional cost of storing the constants is <span>$\sim 3/n_{\mathrm{max}}$</span> compared to just storing <span>$H$</span> itself, so this will never be a very significant amount of space.</p><p>On the other hand, if we can pre-compute the constants just once, and store them between multiple calls to the <span>$H$</span> recurrence, then it is always advantageous to do so — typically by factors of 2 or 3 in speed. The only difficulty here is ensuring that each call to the recurrence has access to the constants, which can be a little awkward when using multiple processes and/or threads. However, it should be thread safe, since we only need to read those constants within the <span>$H$</span> recurrence. All in all, I conclude that it is probably not worth the effort to maintain separate versions of the recurrence for pre-computed and on-the-fly constants.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../conventions/comparisons/">« Comparisons</a><a class="docs-footer-nextpage" href="../sampling_theorems/">Sampling theorems and transformations of spin-weighted spherical harmonics »</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 05:47">Tuesday 24 December 2024</span>. Using Julia version 1.11.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
− d^{m}_{n} H^{m&#39;, m+1}_{n}\]</p><p>(where the last term drops out for <span>$m=n$</span>).</p><p>NOTE: Although Gumerov and Duraiswami specify the loop over <span>$m&#39;$</span> to start at -1, I find it necessary to start at 0, or there will be missing information. This also requires setting the <span>$H^{0, -1}_{n}$</span> components (for all <span>$n$</span>) before beginning this loop.</p><h2 id="Pre-computing-constants-versus-computing-on-the-fly"><a class="docs-heading-anchor" href="#Pre-computing-constants-versus-computing-on-the-fly">Pre-computing constants versus computing on the fly</a><a id="Pre-computing-constants-versus-computing-on-the-fly-1"></a><a class="docs-heading-anchor-permalink" href="#Pre-computing-constants-versus-computing-on-the-fly" title="Permalink"></a></h2><p>Each of the constants <span>$a^{m}_{n}$</span>, <span>$b^{m}_{n}$</span>, and <span>$c^{m}_{n}$</span> involves divisions and square-roots, which can be very costly to compute. It can be advantageous to pre-compute the constants, and simply index the pre-computed arrays rather than re-computing them on each recursion.</p><p><em>If</em> we include the cost of computing all these constants in a single call to the <span>$H$</span> recurrence, it can be much cheaper to compute each constant as needed within the algorithm, rather than computing them all at once at the beginning of the algorithm — but only for very small computations, such as those involving <span>$n_{\mathrm{max}} ≈ 10$</span>. Beyond this, despite the storage penalties for all those constants, it turns out to be better to pre-compute them. However, it should be noted that the fractional cost of storing the constants is <span>$\sim 3/n_{\mathrm{max}}$</span> compared to just storing <span>$H$</span> itself, so this will never be a very significant amount of space.</p><p>On the other hand, if we can pre-compute the constants just once, and store them between multiple calls to the <span>$H$</span> recurrence, then it is always advantageous to do so — typically by factors of 2 or 3 in speed. The only difficulty here is ensuring that each call to the recurrence has access to the constants, which can be a little awkward when using multiple processes and/or threads. However, it should be thread safe, since we only need to read those constants within the <span>$H$</span> recurrence. All in all, I conclude that it is probably not worth the effort to maintain separate versions of the recurrence for pre-computed and on-the-fly constants.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../conventions/comparisons/">« Comparisons</a><a class="docs-footer-nextpage" href="../sampling_theorems/">Sampling theorems and transformations of spin-weighted spherical harmonics »</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 05:49">Tuesday 24 December 2024</span>. Using Julia version 1.11.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion previews/PR49/notes/sampling_theorems/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,4 @@
for j ∈ abs(s):ℓₘₐₓ
ifftshift!(ₛf̃[j]) # Cycle order of modes in place to match order of FFT elements
bfft!(ₛf̃ⱼ[j]) # Perform in-place BFFT
end</code></pre></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../H_recursions/">« Algorithm for computing <span>$H$</span></a><a class="docs-footer-nextpage" href="../../references/">References »</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 05:47">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</code></pre></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../H_recursions/">« Algorithm for computing <span>$H$</span></a><a class="docs-footer-nextpage" href="../../references/">References »</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 05:49">Tuesday 24 December 2024</span>. Using Julia version 1.11.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Binary file modified previews/PR49/objects.inv
Binary file not shown.
4 changes: 2 additions & 2 deletions previews/PR49/operators/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion previews/PR49/references/index.html

Large diffs are not rendered by default.

Loading

0 comments on commit 2ca6815

Please sign in to comment.