JuliaApproximation / JuliaApproximation/FastTransforms.jl

Spherical Harmonic bugs/enhancements

Open
#16 33 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug enhancement
Dominant language
Julia
Stars
281
Forks
27
PR merge metrics
No merged PRs in 30d

Description

This issue is a placeholder for spherical harmonic bugs/enhancements that will be part of a patch:

  • the way the butterfly algorithm is currently implemented, it only works for dimensions that are powers of two, though nothing stops this from working for general dimensions. This afflicts FastSphericalHarmonicPlan and ThinSphericalHarmonicPlan. For the time being, it's recommended to just pad with zeros to the nextpow2.

  • the commands sph2fourier and fourier2sph should work on different band limits in l and m.

  • the command plan_sph2fourier is not type-stable as it very crudely dispatches to a different SphericalHarmonicPlan based on the bandlimit. This is negligible compared to pre-computation costs for large degrees (and is somewhat likened to Base's factorize).

  • the convenience constructors sphrand, sphrandn, etc... take m and n and create an array with dimensions m and 2n-1 which is arguably misleading.

  • it would be great to have an allocation-free FFTW override for converting the bivariate Fourier array to function values on the sphere at tensor product grids equispaced in angle. (Added starting with 67a6b560735ef8f82e1c6a7f82dad3e1a843fc8e)

  • remove segmentation fault when using an even number of columns, thanks to @meggart for finding this. (Added starting with c0e4a546c3b7507efa44b905fb5bafa6379e20e0)

  • add methods for complex data,

  • and, NUFFT variants for nonuniform point.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing plan_sph2fourier and the remaining checklist items in this issue. The unresolved work covers type stability, complex-data methods, and NUFFT variants for nonuniform points; done means those requested spherical-harmonic capabilities are implemented and validated.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.