Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add (scalar) spherical harmonic transforms #68

Closed
wants to merge 20 commits into from
Closed

Add (scalar) spherical harmonic transforms #68

wants to merge 20 commits into from

Commits on Jun 19, 2022

  1. Add notes on reference analysis

    jmert committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    3aef93b View commit details
    Browse the repository at this point in the history
  2. Do half as much work when synthesizing

    ...by actually making use of the symmetry over the equator. The loop
    was incorrectly running over all rings rather than only the northern
    half.
    jmert committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    3fdf676 View commit details
    Browse the repository at this point in the history
  3. Add spherical harmonic analysis routine with computational optimizations

    On an equidistant cylindrical projection (ECP) grid, we know several
    facts about symmetry and locations of pixels, so improve upon the
    reference implementation with a method that adds optimizations
    appropriate for isolatitude rings.
    
    Completes the symmetry of the existing `synthesize_ecp`.
    jmert committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    3f281da View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5bf01df View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    3beaf9b View commit details
    Browse the repository at this point in the history
  6. Start testing spherical harmonic analysis

    Part 1 just adds very basic analytical checks of the reference
    implementation.
    jmert committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    18895a1 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    fc61849 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    5207039 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    245d7c0 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    4dd066f View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    17d447f View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    5b8b525 View commit details
    Browse the repository at this point in the history
  13. Move all reference implementations of SHT to test helper file

    With increasing infrastructure in the general form (and passing chains
    of tests building up to generic implementation), move the slow/specific
    reference functions to the tests file to reduce code compiled into the
    module itself.
    jmert committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    4088c69 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    ebc1b3c View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    c5ad772 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    393cf30 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    a0d14da View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    7d60105 View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2022

  1. New buffer manip utils: pack/unpack lower triangles to/from vectors

    These are useful in implementing linear algebra-like operations on
    spherical harmonic coefficients without unnecessarily including nearly
    half of the always-zero matrix elements above the main diagonal
    jmert committed Jul 10, 2022
    Configuration menu
    Copy the full SHA
    5d984e9 View commit details
    Browse the repository at this point in the history
  2. Add conjugate gradient solver utility numerical method

    This is required to solve for quadrature weights in the spherical
    harmonic analysis transform of arbitrary pixelizations.
    
    Handle null vector and exact initial conditions in C.G. better
    
    - Avoid any iteration when initial condition is already sufficiently
      accurate
    - Less-than-or-equal tolerance check handles cases when result is
      exact, and therefore avoids a division by zero in constructing the
      iterative update
    jmert committed Jul 10, 2022
    Configuration menu
    Copy the full SHA
    7687032 View commit details
    Browse the repository at this point in the history