Skip to content

To DoΒ #1

@moble

Description

@moble
  • Next version update

    • Update interface, to allow passing dworkspace, etc., as individual
      arguments. For example, the current signature

      D!(𝔇, R::AbstractQuaternion, β„“β‚˜β‚β‚“, H_rec_coeffs, eⁱᡐᡅ, eⁱᡐᡞ)
      

      could become

      D!(𝔇, R::AbstractQuaternion, Dworkspace)
      

      Note that this would require including β„“β‚˜β‚β‚“ among the returned quantities of Dprep.

      Be careful to keep backwards compatibility.

    • Add d_matrices, D_matrices, and sYlm_values functions, with docs noting
      that these may be slower if they are to be called repeatedly. Maybe rename ALFcompute?

    • Consider removing storage of coefficients for d!, D!, and Y!, and maybe
      even complex powers.

    • Improve docs for new interface, with lots of examples. (Note the usual Divio structure.)

      • Transformations
        • SSHT
          • SSHTDirect
          • SSHTMinimal
          • SSHTRS
        • map2salm / salm2map
      • Computations
        • ALFcompute!
        • d!, d_matrices
        • D!, D_matrices
        • Y!, sYlm_values, β‚›π˜
      • Storage-access iterators
        • Diterator
        • Yiterator
        • diterator
        • Ξ»iterator
      • Differential operators
        • Lz, LΒ², Lβ‚Š, Lβ‚‹, RΒ², Rz, Rβ‚Š, Rβ‚‹, Γ°, Γ°Μ„
    • Allow SSHT to be used either as a constructor or as a function

    • Bump minor version number

  • Later

    • Optimize Hrecursion coefficients
      • Could probably remove a and b; if not, reduce b to single dimension as function of n-m
      • Get rid of alternating sign in c, allowing us to reduce m loop from -n:n to 0:n and use symmetry
    • Squeeze more performance out of core Hrecursion loops
      • The loops in steps 4 and 5 use up the majority of the time
      • They could be vectorized, because the output is not aliased over any of the inputs, and the current reuse via d7=d8, for example, could be eliminated
    • Improve operators
      • Add Lx, Ly, Rx, Ry
      • Add Li and LiLj
      • Look into using more generic sparse arrays β€” especially for products; maybe SparseMatricesCSR would be more performant for matrix multiplication?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions