Code Monkey home page Code Monkey logo

s2fft's People

Contributors

allcontributors[bot] avatar cosmomatt avatar devaraj-g avatar eiffl avatar eltociear avatar jasonmcewen avatar matt-graham avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

s2fft's Issues

Naive MW inverse transforms

Let's implement this stepwise, starting at the most simple (inefficient) implementation and then building up the to the more complicated (efficient) implementation. Steps should include the following:

  • Direct
  • + Separation of variables
  • + FFT

Note the the full MW inverse transform with be considered in a separate issue (#17).

Support Wigner transforms through spin spherical harmonic transforms

We should support Wigner transforms, i.e. Fourier transforms on SO(3), soon so that they can be used by s2wav. In the first instance these can be pure Python and don't need to be JAX'ified.

There are various ways to do this but the simplest is to implement what is described in this paper (See Section V). Then we can just use the spin transforms already implemented and simply need to add an extra FFT over gamma.

Set up working documentation build

At present not clear if modules are appearing in the documentation.

Also, let's deploy docs build from main to github branches. That will be public but that's not a problem.

Healpix inverse transforms

Let's implement this stepwise, starting at the most simple (inefficient) implementation and then building up the to the more complicated (efficient) implementation. Steps should include the following:

  • Direct
  • + Separation of variables
  • + FFT

Why is flip needed for dl slice?

At present we have a flip in the Wigner tests here when comparing the Turok slice approach to ssht. Why is that?

This may also relate to this comment in the docstring. We need to check the comment is correct (perhaps the ordering could be different).

Switch to MIT license

I think we should adopt the MIT licence. We want this code to be very widely used so a permissible licence is probably best (rather than, e.g., GPL).

Operator based Wigner d computation

The operator method computes all m, m', for a given el and theta. There is no recurrsion over el. So the method is very well suited to acceleration.

See implementing in ssht here.

Deciding on Python (and NumPy) versions to target

Currently the classifiers in setup.py (weakly) suggest Python 3.6, 3.7 and 3.8 are supported

s2fft/setup.py

Lines 39 to 41 in 8ef91ce

"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",

while the tests are only run under Python 3.8 in the GitHub Actions continuous integration

python-version: [3.8]

Currently the tests fail when trying to run in a Python 3.6 environment (I think due to use of Python 3.7+ features in JAX) but do pass under Python 3.7.

I would suggest following NEP 29 in deciding which Python and NumPy versions to target, which would currently suggest supporting Python 3.8+ and NumPy 1.20+. It would be good to settle on a minimum version to target so we know what language features its safe to use.

The main concrete thing this would require changing is to add a python_requires argument to setup in the setup.py script and making sure the Python version(s) we are testing against matches this.

Check healpy indexing

We should double check we are consistent everywhere since in the 2d flm revisions we updated some of the healpix indexing to note that lmax = L - 1.

Get infrastructure setup

Basically just install s2fft. No development really required for this but I thought I'd nevertheless capture this in an issue. Just shout if you have any problems or questions!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.