From 6636e9e2dfce23b1ee9658fc5f478832e55eb924 Mon Sep 17 00:00:00 2001 From: Mike Boyle Date: Thu, 3 Aug 2023 18:33:21 -0400 Subject: [PATCH] Use DocumenterCitations in the code, too --- docs/src/references.bib | 277 ++++++++++++++++++++----------------- src/Hrecursion.jl | 3 +- src/associated_legendre.jl | 4 +- src/iterators.jl | 12 +- src/map2salm.jl | 4 +- src/operators.jl | 40 +++--- src/ssht/minimal.jl | 4 +- src/ssht/rs.jl | 8 +- src/weights.jl | 13 +- test/map2salm.jl | 2 +- test/test_utilities.jl | 2 +- 11 files changed, 191 insertions(+), 178 deletions(-) diff --git a/docs/src/references.bib b/docs/src/references.bib index 2a225f9..c3e1e2e 100644 --- a/docs/src/references.bib +++ b/docs/src/references.bib @@ -1,162 +1,179 @@ +@misc{Ajith_2007, + doi = {10.48550/arxiv.0709.0093}, + url = {https://arxiv.org/abs/0709.0093}, + author = {Ajith, P. and Boyle, M. and Brown, D. A. and Fairhurst, S. and Hannam, M. and + Hinder, I. and Husa, S. and Krishnan, B. and Mercer, R. A. and Ohme, F. and Ott, + C. D. and Read, J. S. and Santamaria, L. and Whelan, J. T.}, + title = {Data formats for numerical relativity waves}, + publisher = {arXiv}, + year = 2007, + archivePrefix ="arXiv", + eprint = "0709.0093", + primaryClass = "gr-qc", +} + @article{Boyle_2016, - doi = {10.1063/1.4962723}, - url = {https://doi.org/10.1063/1.4962723}, - year = 2016, - month = {sep}, - publisher = {{AIP} Publishing}, - volume = {57}, - number = {9}, - author = {Michael Boyle}, - title = {How should spin-weighted spherical functions be defined?}, - journal = {Journal of Mathematical Physics}, - archivePrefix = "arXiv", - eprint = "1604.08140", - primaryClass = "gr-qc", + doi = {10.1063/1.4962723}, + url = {https://doi.org/10.1063/1.4962723}, + year = 2016, + month = {sep}, + publisher = {{AIP} Publishing}, + volume = 57, + number = 9, + author = {Michael Boyle}, + title = {How should spin-weighted spherical functions be defined?}, + journal = {Journal of Mathematical Physics}, + archivePrefix ="arXiv", + eprint = "1604.08140", + primaryClass = "gr-qc", } @article{Elahi_2018, - doi = {10.1109/lsp.2018.2865676}, - url = {https://doi.org/10.1109/lsp.2018.2865676}, - year = 2018, - month = {oct}, - publisher = {Institute of Electrical and Electronics Engineers ({IEEE})}, - volume = {25}, - number = {10}, - pages = {1470--1474}, - author = {Usama Elahi and Zubair Khalid and Rodney A. Kennedy and Jason D. McEwen}, - title = {An Optimal-Dimensionality Sampling for Spin-$s$ Functions on the Sphere}, - journal = {{IEEE} Signal Processing Letters}, - archivePrefix = "arXiv", - eprint = "1809.01321", - primaryClass = "astro-ph.IM", + doi = {10.1109/lsp.2018.2865676}, + url = {https://doi.org/10.1109/lsp.2018.2865676}, + year = 2018, + month = {oct}, + publisher = {Institute of Electrical and Electronics Engineers ({IEEE})}, + volume = 25, + number = 10, + pages = {1470--1474}, + author = {Usama Elahi and Zubair Khalid and Rodney A. Kennedy and Jason D. McEwen}, + title = {An Optimal-Dimensionality Sampling for Spin-$s$ Functions on the Sphere}, + journal = {{IEEE} Signal Processing Letters}, + archivePrefix ="arXiv", + eprint = "1809.01321", + primaryClass = "astro-ph.IM", } @article{Fukushima_2011, - doi = {10.1007/s00190-011-0519-2}, - url = {https://doi.org/10.1007/s00190-011-0519-2}, - year = 2011, - month = {oct}, - publisher = {Springer Science and Business Media {LLC}}, - volume = {86}, - number = {4}, - pages = {271--285}, - author = {Toshio Fukushima}, - title = {Numerical computation of spherical harmonics of arbitrary degree and order by extending exponent of floating point numbers}, - journal = {Journal of Geodesy} + doi = {10.1007/s00190-011-0519-2}, + url = {https://doi.org/10.1007/s00190-011-0519-2}, + year = 2011, + month = {oct}, + publisher = {Springer Science and Business Media {LLC}}, + volume = 86, + number = 4, + pages = {271--285}, + author = {Toshio Fukushima}, + title = {Numerical computation of spherical harmonics of arbitrary degree and order by + extending exponent of floating point numbers}, + journal = {Journal of Geodesy} } @incollection{Gumerov_2015, - doi = {10.1007/978-3-319-13230-3_5}, - url = {https://doi.org/10.1007/978-3-319-13230-3_5}, - year = 2015, - publisher = {Springer International Publishing}, - pages = {105--141}, - author = {Nail A. Gumerov and Ramani Duraiswami}, - title = {Recursive Computation of Spherical Harmonic Rotation Coefficients of Large Degree}, - booktitle = {Excursions in Harmonic Analysis, Volume 3}, - archivePrefix = "arXiv", - eprint = "1403.7698", - primaryClass = "math.NA", + doi = {10.1007/978-3-319-13230-3_5}, + url = {https://doi.org/10.1007/978-3-319-13230-3_5}, + year = 2015, + publisher = {Springer International Publishing}, + pages = {105--141}, + author = {Nail A. Gumerov and Ramani Duraiswami}, + title = {Recursive Computation of Spherical Harmonic Rotation Coefficients of Large Degree}, + booktitle = {Excursions in Harmonic Analysis, Volume 3}, + archivePrefix ="arXiv", + eprint = "1403.7698", + primaryClass = "math.NA", } @article{Holmes_2002, - doi = {10.1007/s00190-002-0216-2}, - url = {https://doi.org/10.1007/s00190-002-0216-2}, - year = 2002, - month = {may}, - publisher = {Springer Science and Business Media {LLC}}, - volume = {76}, - number = {5}, - pages = {279--299}, - author = {S. A. Holmes and W. E. Featherstone}, - title = {A unified approach to the Clenshaw summation and the recursive computation of very high degree and order normalised associated Legendre functions}, - journal = {Journal of Geodesy} + doi = {10.1007/s00190-002-0216-2}, + url = {https://doi.org/10.1007/s00190-002-0216-2}, + year = 2002, + month = {may}, + publisher = {Springer Science and Business Media {LLC}}, + volume = 76, + number = 5, + pages = {279--299}, + author = {S. A. Holmes and W. E. Featherstone}, + title = {A unified approach to the Clenshaw summation and the recursive computation of very + high degree and order normalised associated Legendre functions}, + journal = {Journal of Geodesy} } @article{Kostelec_2008, - doi = {10.1007/s00041-008-9013-5}, - url = {https://doi.org/10.1007/s00041-008-9013-5}, - year = 2008, - month = {feb}, - publisher = {Springer Science and Business Media {LLC}}, - volume = {14}, - number = {2}, - pages = {145--179}, - author = {Peter J. Kostelec and Daniel N. Rockmore}, - title = {{FFTs} on the Rotation Group}, - journal = {Journal of Fourier Analysis and Applications} + doi = {10.1007/s00041-008-9013-5}, + url = {https://doi.org/10.1007/s00041-008-9013-5}, + year = 2008, + month = {feb}, + publisher = {Springer Science and Business Media {LLC}}, + volume = 14, + number = 2, + pages = {145--179}, + author = {Peter J. Kostelec and Daniel N. Rockmore}, + title = {{FFTs} on the Rotation Group}, + journal = {Journal of Fourier Analysis and Applications} } @article{McEwen_2011, - doi = {10.1109/tsp.2011.2166394}, - url = {https://doi.org/10.1109/tsp.2011.2166394}, - year = 2011, - month = {dec}, - publisher = {Institute of Electrical and Electronics Engineers ({IEEE})}, - volume = {59}, - number = {12}, - pages = {5876--5887}, - author = {Jason D. McEwen and Yves Wiaux}, - title = {A Novel Sampling Theorem on the Sphere}, - journal = {{IEEE} Transactions on Signal Processing}, - archivePrefix = "arXiv", - eprint = "1110.6298", - primaryClass = "cs.IT", + doi = {10.1109/tsp.2011.2166394}, + url = {https://doi.org/10.1109/tsp.2011.2166394}, + year = 2011, + month = {dec}, + publisher = {Institute of Electrical and Electronics Engineers ({IEEE})}, + volume = 59, + number = 12, + pages = {5876--5887}, + author = {Jason D. McEwen and Yves Wiaux}, + title = {A Novel Sampling Theorem on the Sphere}, + journal = {{IEEE} Transactions on Signal Processing}, + archivePrefix ="arXiv", + eprint = "1110.6298", + primaryClass = "cs.IT", } @article{Newman_1966, - doi = {10.1063/1.1931221}, - url = {https://doi.org/10.1063/1.1931221}, - year = 1966, - month = {may}, - publisher = {{AIP} Publishing}, - volume = {7}, - number = {5}, - pages = {863--870}, - author = {E. T. Newman and R. Penrose}, - title = {Note on the Bondi-Metzner-Sachs Group}, - journal = {Journal of Mathematical Physics} + doi = {10.1063/1.1931221}, + url = {https://doi.org/10.1063/1.1931221}, + year = 1966, + month = {may}, + publisher = {{AIP} Publishing}, + volume = 7, + number = 5, + pages = {863--870}, + author = {E. T. Newman and R. Penrose}, + title = {Note on the Bondi-Metzner-Sachs Group}, + journal = {Journal of Mathematical Physics} } @article{Reinecke_2013, - doi = {10.1051/0004-6361/201321494}, - url = {https://doi.org/10.1051/0004-6361/201321494}, - year = 2013, - month = {jun}, - publisher = {{EDP} Sciences}, - volume = {554}, - pages = {A112}, - author = {M. Reinecke and D. S. Seljebotn}, - title = {Libsharp---spherical harmonic transforms revisited}, - journal = {Astronomy \& Astrophysics}, - archivePrefix = "arXiv", - eprint = "1303.4945", - primaryClass = "physics.comp-ph", + doi = {10.1051/0004-6361/201321494}, + url = {https://doi.org/10.1051/0004-6361/201321494}, + year = 2013, + month = {jun}, + publisher = {{EDP} Sciences}, + volume = 554, + pages = {A112}, + author = {M. Reinecke and D. S. Seljebotn}, + title = {Libsharp---spherical harmonic transforms revisited}, + journal = {Astronomy \& Astrophysics}, + archivePrefix ="arXiv", + eprint = "1303.4945", + primaryClass = "physics.comp-ph", } @article{Waldvogel_2006, - doi = {10.1007/s10543-006-0045-4}, - url = {https://doi.org/10.1007/s10543-006-0045-4}, - year = 2006, - month = {mar}, - publisher = {Springer Science and Business Media {LLC}}, - volume = {46}, - number = {1}, - pages = {195--202}, - author = {Jörg Waldvogel}, - title = {Fast Construction of the Fej{\'{e}}r and Clenshaw--Curtis Quadrature Rules}, - journal = {{BIT} Numerical Mathematics} + doi = {10.1007/s10543-006-0045-4}, + url = {https://doi.org/10.1007/s10543-006-0045-4}, + year = 2006, + month = {mar}, + publisher = {Springer Science and Business Media {LLC}}, + volume = 46, + number = 1, + pages = {195--202}, + author = {Jörg Waldvogel}, + title = {Fast Construction of the Fej{\'{e}}r and Clenshaw--Curtis Quadrature Rules}, + journal = {{BIT} Numerical Mathematics} } @article{Xing_2019, - doi = {10.1007/s00190-019-01331-0}, - url = {https://doi.org/10.1007/s00190-019-01331-0}, - year = 2019, - month = {dec}, - publisher = {Springer Science and Business Media {LLC}}, - volume = {94}, - number = {1}, - author = {Zhibin Xing and Shanshan Li and Miao Tian and Diao Fan and Chi Zhang}, - title = {Numerical experiments on column-wise recurrence formula to compute fully normalized associated Legendre functions of ultra-high degree and order}, - journal = {Journal of Geodesy} + doi = {10.1007/s00190-019-01331-0}, + url = {https://doi.org/10.1007/s00190-019-01331-0}, + year = 2019, + month = {dec}, + publisher = {Springer Science and Business Media {LLC}}, + volume = 94, + number = 1, + author = {Zhibin Xing and Shanshan Li and Miao Tian and Diao Fan and Chi Zhang}, + title = {Numerical experiments on column-wise recurrence formula to compute fully + normalized associated Legendre functions of ultra-high degree and order}, + journal = {Journal of Geodesy} } diff --git a/src/Hrecursion.jl b/src/Hrecursion.jl index 369139b..fcaf730 100644 --- a/src/Hrecursion.jl +++ b/src/Hrecursion.jl @@ -29,8 +29,7 @@ end H!(H, expiβ, ℓₘₐₓ, m′ₘₐₓ, H_rec_coeffs) H!(H, expiβ, ℓₘₐₓ, m′ₘₐₓ, H_rec_coeffs, Hindex) -Compute the ``H`` matrix defined by [Gumerov and -Duraiswami](https://arxiv.org/abs/1403.7698). +Compute the ``H`` matrix defined by [Gumerov_2015](@citet). This computation forms the basis for computing Wigner's ``d`` and ``𝔇`` matrices via [`d!`](@ref) and [`D!`](@ref), the spin-weighted spherical diff --git a/src/associated_legendre.jl b/src/associated_legendre.jl index 1e615b3..7055a77 100644 --- a/src/associated_legendre.jl +++ b/src/associated_legendre.jl @@ -1,6 +1,6 @@ ### The code in this module is based on a paper by Xing et al.: -### https://doi.org/10.1007/s00190-019-01331-0. All references to equation numbers are for that -### paper. +### https://doi.org/10.1007/s00190-019-01331-0 [Xing_2019](@cite). All references to equation +### numbers are for that paper. # These functions implement Eqs. (13), absorbing a factor of 1/2 into b, and converting to the diff --git a/src/iterators.jl b/src/iterators.jl index 06c0dda..9983943 100644 --- a/src/iterators.jl +++ b/src/iterators.jl @@ -187,15 +187,15 @@ Base.size(Yi::Yiterator, dim) = dim > 1 ? 1 : length(Yi) -# # Eq. (10) of Reinecke & Seljebotn https://dx.doi.org/10.1051/0004-6361/201321494 +# # Eq. (10) of [Reinecke & Seljebotn](@cite Reinecke_2013) # ₛλₗₘ(ϑ) = (-1)ᵐ √((2ℓ+1)/(4π)) dˡ₋ₘₛ(ϑ) # -# # Eq. (4.11) of Kostelec & Rockmore https://dx.doi.org/10.1007/s00041-008-9013-5 +# # Eq. (4.11) of [Kostelec & Rockmore](@cite Kostelec_2008) # # Note that terms with out-of-range indices should be treated as 0. # ₛλₗ₊₁ₘ = √((2ℓ+3)/(2ℓ+1)) (ℓ+1) (2ℓ+1) / √(((ℓ+1)²-m²) ((ℓ+1)²-s²)) (cosϑ + ms/(ℓ(ℓ+1))) ₛλₗₘ # - √((2ℓ+3)/(2ℓ-1)) (ℓ+1) (2ℓ+1) √((ℓ-m²) (ℓ-s²)) / √(((ℓ+1)²-m²) ((ℓ+1)²-s²)) ((ℓ+1)/ℓ) ₛλₗ₋₁ₘ # -# # Eqs. (4.7) and (4.6) of Kostelec & Rockmore +# # Eqs. (4.7) and (4.6) of [Kostelec & Rockmore](@cite Kostelec_2008) # for 0 ≤ s ≤ ℓ # ₛλₗₗ(ϑ) = (-1)ᵐ √((2ℓ+1)/(4π)) √(((2ℓ)!)/((ℓ+s)!(ℓ-s)!)) cosˡ⁻ˢ ϑ/2 sinˡ⁺ˢ ϑ/2 # ₛλₗ₋ₗ(ϑ) = (-1)ᵐ⁺ˡ⁺ˢ √((2ℓ+1)/(4π)) √(((2ℓ)!)/((ℓ+s)!(ℓ-s)!)) cosˡ⁺ˢ ϑ/2 sinˡ⁻ˢ ϑ/2 @@ -213,8 +213,8 @@ Base.size(Yi::Yiterator, dim) = dim > 1 ? 1 : length(Yi) This provides initial values for the recursion to find ``{}_{s}\lambda_{\ell,m}`` along indices of increasing ``\ell``, due to -[Kostelec & Rockmore](https://dx.doi.org/10.1007/s00041-008-9013-5). -Specifically, this function computes values with ``\ell=m``. +[Kostelec & Rockmore](@cite Kostelec_2008) Specifically, this function computes +values with ``\ell=m``. ```math {}_{s}\lambda_{\ell,m}(\theta) @@ -260,7 +260,7 @@ The ``ₛλₗₘ(θ)`` function is defined as the spin-weighted spherical harmo spherical coordinates ``(θ, ϕ)``, with ``ϕ=0``. In particular, note that it is real-valued. The return type is determined by the type of `θ` (or more precisely, cos½θ). -This algorithm by [Kostelec & Rockmore](https://dx.doi.org/10.1007/s00041-008-9013-5) allows +This algorithm by [Kostelec & Rockmore](@cite Kostelec_2008) allows us to iterate over increasing ``ℓ`` values, for given fixed ``s`` and ``m`` values. Note that this iteration has no inherent bound, so if you try to iterate over all values, diff --git a/src/map2salm.jl b/src/map2salm.jl index 3eb5510..f191ece 100644 --- a/src/map2salm.jl +++ b/src/map2salm.jl @@ -13,8 +13,8 @@ is more efficient to pre-compute `plan` using [`plan_map2salm`](@ref). These functions will create a new `salm` array on each call. To operate in place on a pre-allocated `salm` array, use [`map2salm!`](@ref). -The core of this function follows the method described by [Reinecke and -Seljebotn](https://dx.doi.org/10.1051/0004-6361/201321494). +The core of this function follows the method described by [Reinecke and Seljebotn](@cite +Reinecke_2013). """ function map2salm(map::AbstractArray{Complex{T}}, spin::Int, ℓmax::Int, show_progress=false) where {T<:Real} diff --git a/src/operators.jl b/src/operators.jl index 6b98879..43bf350 100644 --- a/src/operators.jl +++ b/src/operators.jl @@ -163,9 +163,9 @@ In terms of the SWSHs, we can write the action of ``R_z`` as ```math R_z {}_{s}Y_{\ell,m} = -s\, {}_{s}Y_{\ell,m} ``` -Note the unfortunate sign of ``s``, which seems to be opposite to what we expect, and arises -from the choice of definition of ``s`` in [the original paper by Newman and -Penrose](https://dx.doi.org/10.1063/1.1931221). +Note the unfortunate sign of ``s``, which seems to be opposite to what we +expect, and arises from the choice of definition of ``s`` in the original paper +by [Newman and Penrose](@cite Newman_1966). See also [`L²`](@ref), [`Lz`](@ref), [`L₊`](@ref), [`L₋`](@ref), [`R²`](@ref), [`R₊`](@ref), [`R₋`](@ref), [`ð`](@ref), [`ð̄`](@ref). @@ -197,10 +197,10 @@ Consequently, the *mode weights* of a function are affected as ```math \left\{R_+(f)\right\}_{s,\ell,m} = \sqrt{(\ell+s)(\ell-s+1)}\,\left\{f\right\}_{s-1,\ell,m}. ``` -Because of the unfortunate sign of ``s`` arising from the choice of definition of ``s`` in -[the original paper by Newman and Penrose](https://dx.doi.org/10.1063/1.1931221), this is a -*lowering* operator for ``s``, though it really is a *raising* operator for ``R_z``, and -raises the eigenvalue of the corresponding Wigner matrix. +Because of the unfortunate sign of ``s`` arising from the choice of definition +of ``s`` in the original paper by [Newman and Penrose](@cite Newman_1966), this +is a *lowering* operator for ``s``, though it really is a *raising* operator +for ``R_z``, and raises the eigenvalue of the corresponding Wigner matrix. See also [`L²`](@ref), [`Lz`](@ref), [`L₊`](@ref), [`L₋`](@ref), [`R²`](@ref), [`Rz`](@ref), [`R₋`](@ref), [`ð`](@ref), [`ð̄`](@ref). @@ -238,11 +238,11 @@ Consequently, the *mode weights* of a function are affected as ```math \left\{R_-(f)\right\}_{s,\ell,m} = \sqrt{(\ell-s)(\ell+s+1)}\,\left\{f\right\}_{s+1,\ell,m}. ``` -Because of the unfortunate sign of ``s`` arising from the choice of definition of ``s`` in -[the original paper by Newman and Penrose](https://dx.doi.org/10.1063/1.1931221), this is a -*raising* operator for ``s``, though it really is a *lowering* operator for ``R_z``, and -lowers the eigenvalue of the corresponding Wigner matrix - though that raises the eigenvalue -of the corresponding Wigner matrix. +Because of the unfortunate sign of ``s`` arising from the choice of definition +of ``s`` in the original paper by [Newman and Penrose](@cite Newman_1966), this +is a *raising* operator for ``s``, though it really is a *lowering* operator +for ``R_z``, and lowers the eigenvalue of the corresponding Wigner matrix - +though that raises the eigenvalue of the corresponding Wigner matrix. See also [`L²`](@ref), [`Lz`](@ref), [`L₊`](@ref), [`L₋`](@ref), [`R²`](@ref), [`Rz`](@ref), [`R₊`](@ref), [`ð`](@ref), [`ð̄`](@ref). @@ -264,10 +264,10 @@ end Compute coefficients for the spin-raising operator ``\eth``. -This operator was originally defined by [Newman and -Penrose](https://dx.doi.org/10.1063/1.1931221), but is more completely defined in [this -paper](https://arxiv.org/abs/1604.08140). It is identical to [`R₋`](@ref). Refer to that -function's documentation for more details. +This operator was originally defined by [Newman and Penrose](@cite +Newman_1966), but is more completely defined by [Boyle](@cite Boyle_2016). It +is identical to [`R₋`](@ref). Refer to that function's documentation for more +details. By definition, the spin-raising operator satisfies the commutator relation ``[S, \eth] = \eth`` (where ``S`` is the spin operator, which just multiplies the function by its spin). @@ -293,10 +293,10 @@ end Compute coefficients for the spin-lowering operator ``\bar{\eth}``. -This operator was originally defined by [Newman and -Penrose](https://dx.doi.org/10.1063/1.1931221), but is more completely defined in [this -paper](https://arxiv.org/abs/1604.08140). It is opposite to [`R₊`](@ref) — meaning that -``\bar{\eth} = -R₊``. Refer to that function's documentation for more details. +This operator was originally defined by [Newman and Penrose](@cite +Newman_1966), but is more completely defined by [Boyle](@cite Boyle_2016). It +is opposite to [`R₊`](@ref) — meaning that ``\bar{\eth} = -R₊``. Refer to that +function's documentation for more details. By definition, the spin-lowering operator satisfies the commutator relation ``[S, \bar{\eth}] = -\bar{\eth}`` (where ``S`` is the spin operator, which just multiplies the diff --git a/src/ssht/minimal.jl b/src/ssht/minimal.jl index 70d84da..a5568f0 100644 --- a/src/ssht/minimal.jl +++ b/src/ssht/minimal.jl @@ -1,8 +1,8 @@ """Storage for Minimal spin-spherical-harmonic transform -The Minimal algorithm was described in [this paper](https://arxiv.org/abs/1809.01321), and allows for -the minimal number of function samples. +The Minimal algorithm was described by [Elahi et al.](@cite Elahi_2018), and +allows for the minimal number of function samples. """ struct SSHTMinimal{T<:Real, Inplace} <: SSHT{T} diff --git a/src/ssht/rs.jl b/src/ssht/rs.jl index df0a8c1..2cd0228 100644 --- a/src/ssht/rs.jl +++ b/src/ssht/rs.jl @@ -6,8 +6,8 @@ """Storage for spin-spherical-harmonic transform -The algorithm was described in [this paper by Reinecke and -Seljebotn](https://arxiv.org/abs/1303.4945). +The algorithm was described in by [Reinecke and Seljebotn](@cite +Reinecke_2013). """ struct SSHTRS{T<:Real} <: SSHT{T} @@ -46,8 +46,8 @@ end Construct a `SSHTRS` object directly. This may also be achieved by calling the main `SSHT` function with the same keywords, along with `method="RS"`. -This object uses the algorithm described in [this paper by Reinecke and -Seljebotn](https://arxiv.org/abs/1303.4945). +This object uses the algorithm described by [Reinecke and Seljebotn](@cite +Reinecke_2013). The basic floating-point number type may be adjusted with the keyword argument `T`, which defaults to `Float64`. diff --git a/src/weights.jl b/src/weights.jl index 4e5a9a2..4949b8c 100644 --- a/src/weights.jl +++ b/src/weights.jl @@ -7,8 +7,7 @@ nodes from 0 to π inclusive. That is, the nodes are located at \theta_k = k \frac{\pi}{n-1} \quad k=0, \ldots, n-1. ``` -This function uses [Waldvogel's -method](https://doi.org/10.1007/s10543-006-0045-4). +This function uses [Waldvogel's method](@cite Waldvogel_2006). The type `T` may be any `AbstractFloat`, but defaults to `Float64`. """ @@ -43,10 +42,9 @@ nodes between 0 and π exclusive. That is, the nodes are located at \theta_k = k \frac{\pi}{n+1} \quad k=1, \ldots, n. ``` -This function uses [Waldvogel's -method](https://doi.org/10.1007/s10543-006-0045-4). However, contrary to -Waldvogel's notation, this routine *does not* include the weight corresponding -to the ϑ=0 or π nodes, which both have weight 0. +This function uses [Waldvogel's method](@cite Waldvogel_2006). However, +contrary to Waldvogel's notation, this routine *does not* include the weight +corresponding to the ϑ=0 or π nodes, which both have weight 0. The type `T` may be any `AbstractFloat`, but defaults to `Float64`. @@ -97,8 +95,7 @@ spaced nodes from 0 to π inclusive. That is, the nodes are located at \theta_k = k \frac{\pi}{n-1} \quad k=0, \ldots, n-1. ``` -This function uses [Waldvogel's -method](https://doi.org/10.1007/s10543-006-0045-4). +This function uses [Waldvogel's method](@cite Waldvogel_2006). The type `T` may be any `AbstractFloat`, but defaults to `Float64`. diff --git a/test/map2salm.jl b/test/map2salm.jl index c411c81..c72d2a5 100644 --- a/test/map2salm.jl +++ b/test/map2salm.jl @@ -3,7 +3,7 @@ # map2salm on Float16 function sYlm(s::Int, ell::Int, m::Int, theta::T, phi::T) where {T<:Real} - # Eqs. (II.7) and (II.8) of https://arxiv.org/abs/0709.0093v3 + # Eqs. (II.7) and (II.8) of https://arxiv.org/abs/0709.0093v3 [Ajith_2007](@cite) # Note their weird definition w.r.t. `-s` k_min = max(0, m + s) k_max = min(ell + m, ell + s) diff --git a/test/test_utilities.jl b/test/test_utilities.jl index d0f20e4..5e82988 100644 --- a/test/test_utilities.jl +++ b/test/test_utilities.jl @@ -212,7 +212,7 @@ function sYlm(s, ell, m, ι::T, ϕ::T) where {T<:Real} ) end -# Eqs. (II.9) through (II.13) of https://arxiv.org/abs/0709.0093v3 +# Eqs. (II.9) through (II.13) of https://arxiv.org/abs/0709.0093v3 [Ajith_2007](@cite) m2Y22(ι::T, ϕ::T) where {T<:Real} = √(5 / (64T(π))) * (1 + cos(ι))^2 * cis(2ϕ) m2Y21(ι::T, ϕ::T) where {T<:Real} = √(5 / (16T(π))) * sin(ι) * (1 + cos(ι)) * cis(ϕ) m2Y20(ι::T, ϕ::T) where {T<:Real} = √(15 / (32T(π))) * sin(ι)^2