Skip to content

Releases: JuliaApproximation/FastTransforms.jl

Introduce a thread-safe butterfly algorithm and multi-threaded fast spherical harmonic transforms

03 Jun 19:26
Compare
Choose a tag to compare

Bound hierarchical matrices requirement

25 Apr 18:06
Compare
Choose a tag to compare

HierarchicalMatrices.jl introduces new support for thread safety. However, this breaks a (really minor) test in this package. Therefore, this version bounds the hierarchical matrices requirement, with a forthcoming version to fix the tests.

Experimental multithreading for spherical harmonic transforms

27 Feb 17:07
e857158
Compare
Choose a tag to compare
  • add native Julia experimental multithreading for spherical harmonic transforms
  • start triangular harmonic transforms
  • drop support for Julia v0.5

Nonuniform fast Fourier transforms

13 Jul 17:44
Compare
Choose a tag to compare

The NUFFTs are implemented thanks to Alex Townsend:

  • nufft1 assumes uniform samples and noninteger frequencies;
  • nufft2 assumes nonuniform samples and integer frequencies;
  • nufft3 ( = nufft) assumes nonuniform samples and noninteger frequencies;
  • inufft1 inverts an nufft1; and,
  • inufft2 inverts an nufft2.

Here is an example:

julia> using FastTransforms

julia> n = 10^4;

julia> c = complex(rand(n));

julia> ω = collect(0:n-1) + rand(n);

julia> nufft1(c, ω, eps());

julia> p1 = plan_nufft1(ω, eps());

julia> @time p1*c;
  0.002383 seconds (6 allocations: 156.484 KiB)

v0.2.1

27 Jun 21:03
Compare
Choose a tag to compare
  • Add Appveyor CI to test Windows 32- and 64-bit support.

  • Support butterfly factorization for any size of matrix (other than a power of two).

  • Add synthesis and analysis for bivariate Fourier series on the sphere.

  • Modify sph2fourier and fourier2sph to work on arrays with different band limits.

Support Spherical Harmonics

17 May 19:25
Compare
Choose a tag to compare

This major release now supports the fast and backward stable transform between spherical harmonic expansions and bivariate Fourier series. Convert between representations as simply as:

julia> Pkg.add("FastTransforms")

julia> using FastTransforms

julia> F = sphrandn(Float64, 1024, 1024);

julia> G = sph2fourier(F; sketch = :none);
Pre-computing...100%|███████████████████████████████████████████| Time: 0:00:04

julia> H = fourier2sph(G; sketch = :none);
Pre-computing...100%|███████████████████████████████████████████| Time: 0:00:04

julia> norm(F-H)
1.1612440912382192e-12