Giter VIP home page Giter VIP logo

finufft.jl's People

Contributors

ahbarnett avatar giordano avatar jkrimmer avatar juliatagbot avatar lu1and10 avatar ludvigak avatar lulibin 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

Watchers

 avatar  avatar  avatar

finufft.jl's Issues

Having trouble understanding what nufft type 1 is doing

I'm trying to learn some basic Non-Uniform FFT.

I want to see if I can get a frequency spectrum of a laser pulse with a NUFFT type 1 using the FINUFFT.jl library.

Here's the example:

using FFTW
using FINUFFT

c = 2.998e8; #m/s speed of light
wl = 525.0e-9; #m wavelength

fwhm = 500.0e-15; #temporal fwhm
tau0 = fwhm/sqrt(2*log(2)); #gaussian fwhm
tlbw = 0.44/fwhm #transform limited bandwidth
	
maxf = c/wl +tlbw
minf = c/wl-tlbw
df = (maxf - minf)/1.0e3
	
	
#simulation
dt = pl/5.0;
t0 = -2.0*fwhm
tend = 2.0*fwhm
ttot = ceil(Int64,(tend-t0)/dt)

E = [exp(-t^2/tau0^2)*cos(2.0*pi*wlfreq*t) for t in t0:dt:tend];
t = [i for i in t0:dt:tend];
lent = length(E)
Nt = length(t);

The pulse looks like:

6b1421465e596c6796cb01e0c6a6616b6df4e55f

Taking the fft:


freq = FFTW.fftshift(FFTW.fftfreq(lent,1/dt))
Ef = FFTW.fftshift(FFTW.fft(E));
If = abs2.(Ef); #intensity spectrum

Looks like:

322f0939a12b017aeee34d3be2fbe405cb7768d7

Which is exactly what I expect.

Now I want to us a NUFFT type 1 according to:
https://finufft.readthedocs.io/en/latest/math.html

I decide to take nonuniform points in the form of a tangent curve so as to get most of the FWHM of the pulse:

#nonuniform indices to extract sampling points
#using tangent curve
maxpi = pi*22.0/100.0;
dpi = 2.0*maxpi/(lent/2);
l = [i for i in -maxpi:dpi:maxpi];
tt = @. tan(1.95*l);
ttt = @. -tt[1]+tt;
ttt = @. ttt*lent/8.81+1;
t4 = @. ceil(Int64,ttt);

#extract nonuniform points
Enu = convert.(ComplexF64,E[t4]); #field at nonuniform points
tnu = t[t4]; #time at noniniform points
lentnu = length(Enu)

This looks like:
4d7cc62791279e55ffd292eaea7e9e0d4129a903

wmax = freq[end]; #max freq get from previous FFTW, around 1.5e15
Nw = length(freq); #number of total points|
dw = 2*wmax/Nw; # spacing of target k grid|
w = dw .* [i for i in ceil(Int64,-Nw/2):ceil(Int64,Nw/2-1)]; #    % a particular uniform M-grid of this spacing|
#normalize
Enunorm = Enu ./ maximum(E)

fhat = FINUFFT.nufft1d1(tnu, Enunorm, 1, 1.0e-12, Nw);   #% type 1, requesting M modes

And the intensity spectrum looks like:
8f951a942f060885bb7b455bd1c1064d83c54b7a

Not sure what to make of it. The amplitudes change but by an extremely small bit?
The main pulse frequency is off by more than 2.

nufft1d2 not working

the type 1 transform works.

However, I can't even get this to work:

FINUFFT.nufft1d2(xj=[-2.0, -1.0, 0.0, 0.5, 3.0], fk = [1.0im, 1.0im, 1.0im, 1.0im])

With error:

MethodError: no method matching nufft1d2(; xj::Vector{Float64}, fk::Vector{ComplexF64})

Closest candidates are:

nufft1d2(!Matched::Array{T}, !Matched::Integer, !Matched::Real, !Matched::Array{Complex{T}}; kwargs...) where T<:Union{Float32, Float64}

@ FINUFFT ~/.julia/packages/FINUFFT/Tq5pq/src/simple.jl:189

The error indicates that every input matches. So what's the issue?

Build on MacOS High Sierra

This is a great tool, and I look forward to using it.
I am trying to build FINUFFT in Julia. I am running High Sierra, I have Julia v1.1.1, and I have both gcc 8 and curl installed. I've followed the instructions in the documentation to add FINUFFT and test FINUFFT. However, when I try to test FINUFFT, I get the error
"ERROR: LoadError: FINUFFT is not properly installed. Please build it first."
Indeed the file "deps.jl" does not exist in the deps folder.
Is there a way I can try to manually build this?

Choosing tolerance too small throws an error

Choosing the tolerance too small throws an error instead of a warning:

julia> using FINUFFT

julia> nj = 1000000;

julia> x = pi*(1 .- 2*rand(Float32, nj));

julia> c = rand(ComplexF32, nj);

julia> ms = 2000000;

julia> tol = 1e-8;

julia> fk = nufft1d1(x, c, 1, tol, ms);
setup_spreader warning: increasing tol=1e-08 to eps_mach=6e-08.
ERROR: FINUFFT Error (1): requested tolerance epsilon too small to achieve (warning only)
Stacktrace:
 [1] check_ret
   @ C:\Users\mv6955\.julia\packages\FINUFFT\GNqRW\src\FINUFFT.jl:230 [inlined]
 [2] finufft_makeplan(type::Int64, n_modes_or_dim::Vector{Int64}, iflag::Int64, ntrans::Int32, eps::Float64; dtype::Type, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
   @ FINUFFT C:\Users\mv6955\.julia\packages\FINUFFT\GNqRW\src\guru.jl:128
 [3] nufft1d1!(xj::Vector{Float32}, cj::Vector{ComplexF32}, iflag::Int64, eps::Float64, fk::Matrix{ComplexF32}; kwargs::Base.Pairs{Symbol, DataType, Tuple{Symbol}, NamedTuple{(:dtype,), Tuple{DataType}}})
   @ FINUFFT C:\Users\mv6955\.julia\packages\FINUFFT\GNqRW\src\simple.jl:469
 [4] nufft1d1(xj::Vector{Float32}, cj::Vector{ComplexF32}, iflag::Int64, eps::Float64, ms::Int64; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
   @ FINUFFT C:\Users\mv6955\.julia\packages\FINUFFT\GNqRW\src\simple.jl:45
 [5] nufft1d1(xj::Vector{Float32}, cj::Vector{ComplexF32}, iflag::Int64, eps::Float64, ms::Int64)
   @ FINUFFT C:\Users\mv6955\.julia\packages\FINUFFT\GNqRW\src\simple.jl:35
 [6] top-level scope
   @ REPL[7]:1

Proposal: In the check_ret function of FINUFFT.jl, add the following two lines after line 202:

@warn msg
return 

If you agree, I will open a PR including this change and the fix for #42 .
Cheers, Jonas

sorry we broke your interface since we simplified the C interface!

Dear Ludvig,
Sorry, I now see you built the jl interface around the C interface. From our end it has been good to simplify the C calling sequences to be identical to the C++ ones. (as of v 1.1). The C interface was really clunky. Now we call the C++ directly; much better.
But this means you'll have to fix your julia wrapper - mostly removing _c from things and passing opts as pointer.

Although I'm trying to play with julia (struggling over getting fast loops on unrelated project), I think you'd be much faster at tweaking your code.
Let me know if I can help.
Best, Alex

Problem in macOS Catalina when Julia updated

Hello and thanks for your work. I've been working with FINUFFT since march and I have had no problems, but today it crashed when I updated to the last versions of Julia and Juno. I'm working on a Mac running with Catalina. I've tried to uninstall the package and even Julia and Atom, but the problem persists. The following is the build.log file, what could I do? Thanks in regard.

Collecting package metadata (current_repodata.json): ...working... done
Solving environment: ...working... done

Package Plan

environment location: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/usr

added / updated specs:
- fftw

The following NEW packages will be INSTALLED:

fftw pkgs/main/osx-64::fftw-3.3.8-h1de35cc_3

Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... done
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 130 100 130 0 0 330 0 --:--:-- --:--:-- --:--:-- 330

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 2190k 0 2190k 0 0 1691k 0 --:--:-- 0:00:01 --:--:-- 2863k
Archive: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/downloads/v1.1.2.zip
5b92daf4244c92844dd2640ef80457c030e1bf25
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/.gitignore
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/CHANGELOG
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/LICENSE
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/README.md
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/TODO
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/contrib/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/contrib/legendre_rule_fast.c
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/contrib/legendre_rule_fast.h
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/ESlocalpoly.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/eval_ker_expts.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/eval_ker_expts2.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/eval_ker_expts_ludvig.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/fig_speed_ker_ppval.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/gen_all_horner_C_code.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/gen_ker_horner_C_code.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/gen_ker_horner_loop_C_code.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/i7_1thr_ker_eval_speeds.png
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/ker_horner_allw.c
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/ker_horner_allw_loop_notpadded.c
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/ker_ppval_coeff_mat.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/test_ker_ppval.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/time2d2interp.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/devel/v2spec.md
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/Makefile
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/README
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/ackn.rst
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/conf.py
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/dirs.rst
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/genmatlabhelp.sh
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/genpdfmanual.sh
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/index.rst
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/install.rst
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/juliainterface.rst
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/logo.png
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/math.rst
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/matlab.rst
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/matlabhelp.raw
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/numft.rst
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/peripois2d.rst
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/pics/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/pics/fser1d.png
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/pics/fser2d.png
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/pics/pois_fft.png
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/pics/pois_fhat.png
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/pics/pois_nufft.png
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/pics/pois_nugrid.png
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/pythoninterface.rst
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/refs.rst
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/related.rst
extracting: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/requirements.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/serieseval.rst
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/spreadpic.png
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/trouble.rst
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/tut.rst
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/usage.rst
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/usage_adv.rst
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/docs/users.rst
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/examples/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/examples/README
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/examples/example1d1.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/examples/example1d1c.c
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/examples/example1d1cf.c
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/examples/example1d1f.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/examples/example2d1.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/finufft-manual.pdf
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/finufftpy/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/finufftpy/init.py
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/finufftpy/_interfaces.py
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/finufftpy/finufftpy.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/finufftpy/ndarray.h
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/README
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/dirft1d.f
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/dirft1df.f
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/dirft2d.f
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/dirft2df.f
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/dirft3d.f
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/dirft3df.f
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/finufft_f.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/finufft_f.h
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/nufft1d_demo.f
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/nufft1d_demof.f
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/nufft2d_demo.f
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/nufft2d_demof.f
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/nufft2dmany_demo.f
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/nufft2dmany_demof.f
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/nufft3d_demo.f
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/nufft3d_demof.f
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/fortran/prini.f
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/lib-static/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/lib-static/README
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/lib/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/lib/README
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/make.inc.GCC7
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/make.inc.linux_ICC
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/make.inc.macosx_clang
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/make.inc.macosx_gcc-8
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/make.inc.powerpc
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/makefile
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/big1dtest.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/check_changenthreads.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/check_finufft.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/check_modeords.m
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/examples/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/examples/poisson2dnuquad.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/fig_accuracy.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft.mw
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft1d1.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft1d2.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft1d3.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft2d1.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft2d1many.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft2d2.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft2d2many.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft2d3.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft3d1.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft3d2.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft3d3.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft_m.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft_m.h
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/finufft_opts.m
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/matlab/test_strictadjoint.m
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/python_tests/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/python_tests/README.md
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/python_tests/accuracy_speed_tests.py
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/python_tests/demo1d1.py
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/python_tests/run_accuracy_tests.py
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/python_tests/run_speed_tests.py
extracting: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/requirements.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/setup.py
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/common.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/common.h
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/defs.h
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/dirft.h
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/dirft1d.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/dirft2d.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/dirft3d.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/finufft.h
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/finufft1d.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/finufft2d.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/finufft3d.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/ker_horner_allw_loop.c
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/ker_lowupsampfac_horner_allw_loop.c
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/spreadinterp.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/spreadinterp.h
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/utils.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/src/utils.h
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/README
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/check1d.sh
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/check2d.sh
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/check3d.sh
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/check_finufft.sh
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/checkallaccs.sh
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/dumbinputs.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/finufft1d_basicpassfail.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/finufft1d_test.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/finufft2d_test.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/finufft2dmany_test.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/finufft3d_test.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/highaspect3d_test.sh
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/manysmallprobs.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/mycpuinfo.sh
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/nuffttest1d.sh
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/nuffttest2d.sh
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/nuffttest3d.sh
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/nuffttestnd.sh
creating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/README
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/check1d.sh.refout
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/check2d.sh.refout
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/check3d.sh.refout
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/dumbinputs.refout
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/gcc_vs_icc_xeon.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/nuffttestnd_results_i7_2-2-17.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/nuffttestnd_results_i7_3-16-17.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/nuffttestnd_results_i7_6-17-17.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/nuffttestnd_results_i7_gcc72_4-24-18.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/nuffttestnd_results_i7_gcc72_4-25-18.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/nuffttestnd_results_i7_gcc72_9-14-18.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/nuffttestnd_results_i7_v1.1.2_gcc92.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/nuffttestnd_results_v1.1.1_xeonE5-2643v3_gcc74.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/nuffttestnd_results_v1.1.2_xeonE5-2643v3_gcc74.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/perftest_xeon-E5-2643v3.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/spreadtestnd_results_i7_2-2-17.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/spreadtestnd_results_i7_3-16-17.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/spreadtestnd_results_i7_6-17-17.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/spreadtestnd_results_i7_gcc72_4-24-18.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/spreadtestnd_results_i7_gcc72_4-25-18.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/spreadtestnd_results_i7_gcc72_9-14-18.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/spreadtestnd_results_i7_v1.1.2_gcc92.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/spreadtestnd_results_v1.1.1_xeonE5-2643v3_gcc74.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/spreadtestnd_results_v1.1.2_xeonE5-2643v3_gcc74.txt
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/results/testutils.refout
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/spreadbenchmark.py
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/spreadtestnd.cpp
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/spreadtestnd.sh
inflating: /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2/test/testutils.cpp
g++-9 -c -fPIC -O3 -funroll-loops -march=native -fcx-limited-range -I src -fopenmp -DNEED_EXTERN_C -fopenmp src/spreadinterp.cpp -o src/spreadinterp.o
make: g++-9: No such file or directory
make: *** [src/spreadinterp.o] Error 1
[ Info: Running conda install -y fftw in /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/usr environment
┌ Warning: Assignment to load_cache in soft scope is ambiguous because a global variable by the same name exists: load_cache will be treated as a new local. Disambiguate by using local load_cache to suppress this warning or global load_cache to assign to the existing global variable.
└ @ ~/.julia/packages/BinDeps/5xsHU/src/dependencies.jl:979
┌ Warning: Assignment to pre_hooks in soft scope is ambiguous because a global variable by the same name exists: pre_hooks will be treated as a new local. Disambiguate by using local pre_hooks to suppress this warning or global pre_hooks to assign to the existing global variable.
└ @ ~/.julia/packages/BinDeps/5xsHU/src/dependencies.jl:980
┌ Warning: Assignment to load_hooks in soft scope is ambiguous because a global variable by the same name exists: load_hooks will be treated as a new local. Disambiguate by using local load_hooks to suppress this warning or global load_hooks to assign to the existing global variable.
└ @ ~/.julia/packages/BinDeps/5xsHU/src/dependencies.jl:981
┌ Warning: Assignment to depsfile_location in soft scope is ambiguous because a global variable by the same name exists: depsfile_location will be treated as a new local. Disambiguate by using local depsfile_location to suppress this warning or global depsfile_location to assign to the existing global variable.
└ @ ~/.julia/packages/BinDeps/5xsHU/src/dependencies.jl:1011
┌ Warning: Assignment to depsfile_buffer in soft scope is ambiguous because a global variable by the same name exists: depsfile_buffer will be treated as a new local. Disambiguate by using local depsfile_buffer to suppress this warning or global depsfile_buffer to assign to the existing global variable.
└ @ ~/.julia/packages/BinDeps/5xsHU/src/dependencies.jl:1012
┌ Warning: Assignment to depsfile_content in soft scope is ambiguous because a global variable by the same name exists: depsfile_content will be treated as a new local. Disambiguate by using local depsfile_content to suppress this warning or global depsfile_content to assign to the existing global variable.
└ @ ~/.julia/packages/BinDeps/5xsHU/src/dependencies.jl:1043
┌ Warning: Assignment to load_cache in soft scope is ambiguous because a global variable by the same name exists: load_cache will be treated as a new local. Disambiguate by using local load_cache to suppress this warning or global load_cache to assign to the existing global variable.
└ @ ~/.julia/packages/BinDeps/5xsHU/src/dependencies.jl:979
┌ Warning: Assignment to pre_hooks in soft scope is ambiguous because a global variable by the same name exists: pre_hooks will be treated as a new local. Disambiguate by using local pre_hooks to suppress this warning or global pre_hooks to assign to the existing global variable.
└ @ ~/.julia/packages/BinDeps/5xsHU/src/dependencies.jl:980
┌ Warning: Assignment to load_hooks in soft scope is ambiguous because a global variable by the same name exists: load_hooks will be treated as a new local. Disambiguate by using local load_hooks to suppress this warning or global load_hooks to assign to the existing global variable.
└ @ ~/.julia/packages/BinDeps/5xsHU/src/dependencies.jl:981
┌ Warning: Assignment to depsfile_location in soft scope is ambiguous because a global variable by the same name exists: depsfile_location will be treated as a new local. Disambiguate by using local depsfile_location to suppress this warning or global depsfile_location to assign to the existing global variable.
└ @ ~/.julia/packages/BinDeps/5xsHU/src/dependencies.jl:1011
┌ Warning: Assignment to depsfile_buffer in soft scope is ambiguous because a global variable by the same name exists: depsfile_buffer will be treated as a new local. Disambiguate by using local depsfile_buffer to suppress this warning or global depsfile_buffer to assign to the existing global variable.
└ @ ~/.julia/packages/BinDeps/5xsHU/src/dependencies.jl:1012
┌ Warning: Assignment to depsfile_content in soft scope is ambiguous because a global variable by the same name exists: depsfile_content will be treated as a new local. Disambiguate by using local depsfile_content to suppress this warning or global depsfile_content to assign to the existing global variable.
└ @ ~/.julia/packages/BinDeps/5xsHU/src/dependencies.jl:1043
[ Info: Attempting to create directory /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/downloads
[ Info: Downloading file https://github.com/flatironinstitute/finufft/archive/v1.1.2.zip
[ Info: Done downloading file https://github.com/flatironinstitute/finufft/archive/v1.1.2.zip
[ Info: Attempting to create directory /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src
[ Info: Attempting to create directory /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps
[ Info: Directory /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps already exists
[ Info: Changing directory to /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/src/finufft-1.1.2
ERROR: LoadError: failed process: Process(make lib/libfinufft.so LIBRARY_PATH=/Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/usr/lib CPATH=/Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/usr/include FFTWOMPSUFFIX=threads CXX=g++-9 CC=gcc-9, ProcessExited(2)) [2]

Stacktrace:
[1] pipeline_error at ./process.jl:525 [inlined]
[2] run(::Cmd; wait::Bool) at ./process.jl:440
[3] run(::Cmd) at ./process.jl:438
[4] run(::BinDeps.SynchronousStepCollection) at /Users/antoniodiaz/.julia/packages/BinDeps/5xsHU/src/BinDeps.jl:524 (repeats 2 times)
[5] top-level scope at /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/build.jl:95
[6] include(::String) at ./client.jl:457
[7] top-level scope at none:5
in expression starting at /Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/build.jl:95
lib = BinDeps.libdir(fftw) = "/Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/usr/lib"
inc = BinDeps.includedir(fftw) = "/Users/antoniodiaz/.julia/packages/FINUFFT/xjSlF/deps/usr/include"

Implement AbstractNFFTs

Hi,

over at NFFT.jl I have been working on an AbstractNFFTs.jl interface package that allows to use different NFFT implementations. The design is similar to that of AbstractFFTs.jl, which also allows for different implementations of the ordinary FFT.

Some more background can be found here:

JuliaMath/NFFT.jl#59

The question is if

  • FINUFFT.jl would be interested in implementing AbstractNFFTs.jl
  • If there are any missing things in the interface package that would make it difficult to wrap FINUFFT.jl.

Currently we have one CPU (NFFT.jl) and one GPU (CuNFFT.jl) implementation. Further I have a wrapper for NFFT3.jl (https://github.com/JuliaMath/NFFT.jl/blob/master/NFFT3/NFFT3.jl) that will hopefully be incorporated in NFFT3.jl soon.

The wrapper would not need to be your primary interface. It's just an additional interface being compatible with the common interface.

Best,

Tobias

Build on MacOS Catalina

Hi there, many thanks for the work. I am running Catalina with JuliaPro v1.2.0. I have followed the steps and have installed the relevant dependencies according to the instructions provided by flatironinstitute. The build seems to be successful, however when I try to run test FINUFFT I get this error:

Test Summary: | Error Total FINUFFT | 1 1 ERROR: LoadError: Some tests did not pass: 0 passed, 0 failed, 1 errored, 0 broken. in expression starting at /Users/patrickchang/.juliapro/JuliaPro_v1.2.0-1/packages/FINUFFT/bgr7t/test/runtests.jl:3 ERROR: Package FINUFFT errored during testing

The origin of this error seems to arise because it can't seem to load libfinufft:

ERROR: LoadError: LoadError: LoadError: Unable to load libfinufft (/Users/patrickchang/.juliapro/JuliaPro_v1.2.0-1/packages/FINUFFT/bgr7t/deps/usr/lib/libfinufft.dylib) Please re-run Pkg.build(package), and restart Julia.

A similar issue I have found JuliaLang/julia#29720 suggests creating a simlink. If this is the solution - do you know which paths I am supposed to link? Otherwise do you have any other suggestions on resolving the issue?

Below is the full error message when running test FINUFFT:

(v1.2) pkg> test FINUFFT
Testing FINUFFT
Resolving package versions...
Status /var/folders/r3/8h3wf5111v96y8vqd4y966l40000gp/T/jl_DX6vRx/Manifest.toml
[9e28174c] BinDeps v0.8.10
[34da2185] Compat v2.2.0
[8f4d0f93] Conda v1.3.0
[d8beea63] FINUFFT v0.4.2
[682c06a0] JSON v0.21.0
[69de0a69] Parsers v0.3.10
[30578b45] URIParser v0.4.0
[81def892] VersionParsing v1.2.0
[2a0f44e3] Base64 [@stdlib/Base64]
[b99e7846] BinaryProvider [@stdlib/BinaryProvider]
[864e158e] CredentialsHandler [@stdlib/CredentialsHandler]
[ade2ca70] Dates [@stdlib/Dates]
[8bb1440f] DelimitedFiles [@stdlib/DelimitedFiles]
[8ba89e20] Distributed [@stdlib/Distributed]
[cd3eb016] HTTP [@stdlib/HTTP]
[83e8ac13] IniFile [@stdlib/IniFile]
[b77e0a4c] InteractiveUtils [@stdlib/InteractiveUtils]
[76f85450] LibGit2 [@stdlib/LibGit2]
[8f399da3] Libdl [@stdlib/Libdl]
[37e2e46d] LinearAlgebra [@stdlib/LinearAlgebra]
[56ddb016] Logging [@stdlib/Logging]
[d6f4376e] Markdown [@stdlib/Markdown]
[739be429] MbedTLS [@stdlib/MbedTLS]
[a63ad114] Mmap [@stdlib/Mmap]
[44cfe95a] Pkg [@stdlib/Pkg]
[de0858da] Printf [@stdlib/Printf]
[3fa0cd96] REPL [@stdlib/REPL]
[9a3f8284] Random [@stdlib/Random]
[ea8e919c] SHA [@stdlib/SHA]
[9e88b42a] Serialization [@stdlib/Serialization]
[1a1011a3] SharedArrays [@stdlib/SharedArrays]
[6462fe0b] Sockets [@stdlib/Sockets]
[2f01184e] SparseArrays [@stdlib/SparseArrays]
[10745b16] Statistics [@stdlib/Statistics]
[9d418dce] TOML [@stdlib/TOML]
[8dfed614] Test [@stdlib/Test]
[cf7118a7] UUIDs [@stdlib/UUIDs]
[4ec0a83e] Unicode [@stdlib/Unicode]
ERROR: LoadError: LoadError: LoadError: Unable to load

libfinufft (/Users/patrickchang/.juliapro/JuliaPro_v1.2.0-1/packages/FINUFFT/bgr7t/deps/usr/lib/libfinufft.dylib)

Please re-run Pkg.build(package), and restart Julia.
Stacktrace:
[1] error(::String, ::String) at /Applications/JuliaPro-1.2.0-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
[2] @checked_lib(::LineNumberNode, ::Module, ::Any, ::Any) at /Users/patrickchang/.juliapro/JuliaPro_v1.2.0-1/packages/FINUFFT/bgr7t/deps/deps.jl:11
[3] include_relative(::Module, ::String) at /Applications/JuliaPro-1.2.0-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
[4] include at ./Base.jl:31 [inlined]
[5] include(::String) at /Users/patrickchang/.juliapro/JuliaPro_v1.2.0-1/packages/FINUFFT/bgr7t/src/FINUFFT.jl:2
[6] top-level scope at /Users/patrickchang/.juliapro/JuliaPro_v1.2.0-1/packages/FINUFFT/bgr7t/src/FINUFFT.jl:22
[7] include_relative(::Module, ::String) at /Applications/JuliaPro-1.2.0-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
[8] include(::Module, ::String) at /Applications/JuliaPro-1.2.0-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
[9] top-level scope at none:2
[10] eval at ./boot.jl:330 [inlined]
[11] eval(::Expr) at ./client.jl:432
[12] top-level scope at ./none:3
in expression starting at /Users/patrickchang/.juliapro/JuliaPro_v1.2.0-1/packages/FINUFFT/bgr7t/deps/deps.jl:26
in expression starting at /Users/patrickchang/.juliapro/JuliaPro_v1.2.0-1/packages/FINUFFT/bgr7t/deps/deps.jl:26
in expression starting at /Users/patrickchang/.juliapro/JuliaPro_v1.2.0-1/packages/FINUFFT/bgr7t/src/FINUFFT.jl:21
FINUFFT: Error During Test at /Users/patrickchang/.juliapro/JuliaPro_v1.2.0-1/packages/FINUFFT/bgr7t/test/runtests.jl:3
Got exception outside of a @test
LoadError: Failed to precompile FINUFFT [d8beea63-0952-562e-9c6a-8e8ef7364055] to /Users/patrickchang/.juliapro/JuliaPro_v1.2.0-1/compiled/v1.2/FINUFFT/WbG1O.ji.
Stacktrace:
[1] error(::String) at /Applications/JuliaPro-1.2.0-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
[2] compilecache(::Base.PkgId, ::String) at /Applications/JuliaPro-1.2.0-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
[3] _require(::Base.PkgId) at /Applications/JuliaPro-1.2.0-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
[4] require(::Base.PkgId) at /Applications/JuliaPro-1.2.0-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:? (repeats 2 times)
[5] include_relative(::Module, ::String) at /Applications/JuliaPro-1.2.0-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
[6] include(::Module, ::String) at /Applications/JuliaPro-1.2.0-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
[7] include(::String) at ./client.jl:431
[8] top-level scope at /Users/patrickchang/.juliapro/JuliaPro_v1.2.0-1/packages/FINUFFT/bgr7t/test/runtests.jl:4
[9] top-level scope at /Users/vagrant/worker/juliapro-release-osx1011-0_6/build/tmp_julia/Julia-1.2.app/Contents/Resources/julia/share/julia/stdlib/v1.2/Test/src/Test.jl:1113
[10] top-level scope at /Users/patrickchang/.juliapro/JuliaPro_v1.2.0-1/packages/FINUFFT/bgr7t/test/runtests.jl:4
[11] include_relative(::Module, ::String) at /Applications/JuliaPro-1.2.0-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
[12] include(::Module, ::String) at /Applications/JuliaPro-1.2.0-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
[13] include(::String) at ./client.jl:431
[14] top-level scope at none:5
[15] eval(::Module, ::Any) at /Applications/JuliaPro-1.2.0-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
[16] exec_options(::Base.JLOptions) at /Applications/JuliaPro-1.2.0-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
[17] _start() at /Applications/JuliaPro-1.2.0-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
in expression starting at /Users/patrickchang/.juliapro/JuliaPro_v1.2.0-1/packages/FINUFFT/bgr7t/test/test_error_handler.jl:1

Test Summary: | Error Total
FINUFFT | 1 1
ERROR: LoadError: Some tests did not pass: 0 passed, 0 failed, 1 errored, 0 broken.
in expression starting at /Users/patrickchang/.juliapro/JuliaPro_v1.2.0-1/packages/FINUFFT/bgr7t/test/runtests.jl:3
ERROR: Package FINUFFT errored during testing

finufft_setpts should be finufft_setpts!

SInce this modifies the plan, in Julia it is more natural to have a bang (!) in the function name.
A minor tweak. Only affects guru interface. But now is a good time to do it since we just brought to master...

TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.

If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

build on osx

Thanks for this work. I wanted to use your library and I try to build it on macOS.
My first move was to make a change in deps/build.jl

-buildcmd = `make lib LIBRARY_PATH=$lib CPATH=$inc`
+buildcmd = `make lib LIBRARY_PATH=$lib CPATH=$inc CXX=g++-8 CC=gcc-8`

It generates a .so library file but a dylib seems to be expected...

ERROR: LoadError: failed process: Process(`cp /Users/navaro/.julia/packages/FINUFFT/W7sdX/deps/src/finufft-1.0/lib/libfinufft.dylib /Users/navaro/.julia/packages/FINUFFT/W7sdX/deps/usr/lib/libfinufft.dylib`, ProcessExited(1)) [1]

If you have an idea...

on recovering FFTW result?

Hi @ludvigak
I'm just starting learning to use this package, so this could be a noob question.
The first step I'm taking is to recover a uniform dft.

For example, in FFTW.jl and FastTransforms.jl, I do the following

using FFTW, FastTransforms
f = [-2.0, 1.52, 0.93] # a random vector
f1 = fft(f)
x = [i/3 for i=0:2] # uniform frequency
f2 = nufft2(f .+ 0.0im, x, 1e-10)

The result f2 is equal to f1.

In FINUFFT.jl, I tried the follwing,

using FINUFFT
nufft1d1(x, f .+ 0.0im, -1, 1e-10, 3)

But the result isn't the same as f1.
Did I need to do anything else to use it the right way?

Redundant argument checking for out-of-place nufftndm calls

Taking care of the discussed changes with respect to the dtype keyword argument, I noticed that the out-of-place nufftndm calls essentially validate their arguments twice since valid_setpts, valid_ntr, and checkkwdtype are called a second time within the nufftndm! functions. Wouldn't it make sense to remove these checks from the out-of-place functions and simplify them to something like the following?

function nufft3d3(xj      :: Array{T},
                  yj      :: Array{T},
                  zj      :: Array{T},                   
                  cj      :: Array{Complex{T}}, 
                  iflag   :: Integer, 
                  eps     :: Real,
                  sk      :: Array{T},
                  tk      :: Array{T},
                  uk      :: Array{T};
                  kwargs...) where T <: finufftReal
    ntrans = valid_ntr(xj,cj)
    fk = Array{Complex{T}}(undef, nk, ntrans)
    nufft3d3!(xj, yj, zj, cj, iflag, eps, sk, tk, uk, fk; kwargs...)
    return fk
end

Currently, the function looks like

function nufft3d3(xj      :: Array{T},
                  yj      :: Array{T},
                  zj      :: Array{T},                   
                  cj      :: Array{Complex{T}}, 
                  iflag   :: Integer, 
                  eps     :: Real,
                  sk      :: Array{T},
                  tk      :: Array{T},
                  uk      :: Array{T};
                  kwargs...) where T <: finufftReal
    (nj, nk) = valid_setpts(3,3,xj,yj,zj,sk,tk,uk)
    ntrans = valid_ntr(xj,cj)
    fk = Array{Complex{T}}(undef, nk, ntrans)
    checkkwdtype(T; kwargs...)
    nufft3d3!(xj, yj, zj, cj, iflag, eps, sk, tk, uk, fk;kwargs...)
    return fk
end

with the in-place method

function nufft3d3!(xj      :: Array{T}, 
                   yj      :: Array{T},
                   zj      :: Array{T},                   
                   cj      :: Array{Complex{T}}, 
                   iflag   :: Integer, 
                   eps     :: Real,
                   sk      :: Array{T},
                   tk      :: Array{T},
                   uk      :: Array{T},
                   fk      :: Array{Complex{T}};
                   kwargs...) where T <: finufftReal
    (nj, nk) = valid_setpts(3,3,xj,yj,zj,sk,tk,uk)
    ntrans = valid_ntr(xj,cj)

    checkkwdtype(T; kwargs...)
    plan = finufft_makeplan(3,3,iflag,ntrans,eps;dtype=T,kwargs...)
    finufft_setpts!(plan,xj,yj,zj,sk,tk,uk)
    finufft_exec!(plan,cj,fk)
    ret = finufft_destroy!(plan)
    check_ret(ret)
end

ComplexF32 data support

First, thank you for this submission! The code works really, really well, and especially shines in 3D. This is a feature request:

Storing big 3D volumes as ComplexF64 is very memory intensive. Does the core C++ code support complex floats instead of doubles? If so, wrapping the ComplexF32 variant would be very useful for large 3D problems.

Thread-safety

Although the finufft_jll is built with thread-safety in mind, we still have to call one of the nufft-methods once before running multiple threads each requiring the library to prevent a segfault. I guess this issue could be fixed by calling the finufft library once while the package is loaded. But maybe there is a more elegant option to fix this problem?

MWE leading to a segfault:

julia> using FINUFFT

julia> x = rand(100); c = rand(ComplexF64,100);

julia> Threads.@threads for k in 1:8
       nufft1d1(x, c, -1, 1e-10, 100);
       end

Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.
Exception: EXCEPTION_ACCESS_VIOLATION at 0x70684b68 -- search0.isra.13 at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
in expression starting at REPL[3]:1
search0.isra.13 at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
mkplan at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
fftw_mkplan_d at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
mkplan at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
search0.isra.13 at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
mkplan at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
fftw_mkplan_d at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
mkplan at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
search0.isra.13 at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
mkplan at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
fftw_mkplan_d at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
mkplan at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
search0.isra.13 at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
mkplan at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
fftw_mkplan_d at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
mkplan at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
search0.isra.13 at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
mkplan at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
.text at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
fftw_mkapiplan at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
.text at C:\Users\mv6955\.julia\artifacts\bf7c8150c03037fb2fa33ec629071e4d377e422a\bin\libfftw3-3.dll (unknown line)
finufft_makeplan at C:\Users\mv6955\.julia\artifacts\8dcc8b4f6e304280280e5a86a98dfd610a9216bf\bin\libfinufft.dll (unknown line)
finufft1d1 at C:\Users\mv6955\.julia\artifacts\8dcc8b4f6e304280280e5a86a98dfd610a9216bf\bin\libfinufft.dll (unknown line)
nufft1d1! at C:\Users\mv6955\.julia\packages\FINUFFT\EEFSZ\src\FINUFFT.jl:506
nufft1d1 at C:\Users\mv6955\.julia\packages\FINUFFT\EEFSZ\src\FINUFFT.jl:256 [inlined]
nufft1d1 at C:\Users\mv6955\.julia\packages\FINUFFT\EEFSZ\src\FINUFFT.jl:255
unknown function (ip: 000000001f81dba9)
macro expansion at .\REPL[3]:2 [inlined]
#2#threadsfor_fun at .\threadingconstructs.jl:81
#2#threadsfor_fun at .\threadingconstructs.jl:48
unknown function (ip: 000000001f81d1a3)
jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1690 [inlined]
start_task at /cygdrive/c/buildbot/worker/package_win64/build/src\task.c:705
Allocations: 775621 (Pool: 775360; Big: 261); GC: 1

This behavior is not related to Windows 10 and can also be reproduced on Fedora.

FINUFFT.jl fails to run (yet) on Julia 1.7.1 / macOS arm64

Hi,

Due I guess to how recent the Julia release has been (22/12), I cannot get FINUFFT to run in that setup. I get:

ERROR: LoadError: UndefVarError: libfinufft not defined

when trying "using FINUFFT".

I looked into it but couldn't see an obvious, easy, fix. libfinufft was not created. When I run it on Julia 1.6.x under the rosetta emulator for M1, it runs properly (and there is a libfinufft.so etc.) My guess is libfinunfft has no support so far for that architecture.

If you'd have time to get have a look that would be great. Thanks again for creating the package!

Cheers,
Paul.

Multiple plans simultaneously

Hi,

in the FINUFFT wrapper, I tried to create two plans, one for type 1 and one for type 2:

https://github.com/JuliaMath/NFFT.jl/blob/master/Wrappers/FINUFFT.jl

However, it seems the plans are not independent. Can it be that they access some global state? For now I moved the code into the nfft! and nfft_adjoint! functions and with that it works without problems. When I move both plans into the constructor of the type, I get either a wrong result, or a segfault.

Cheers,

Tobias

finufft_destroy crashes Julia

julia> p = finufft_makeplan(2,10,+1,1,1e-6)
finufft_plan{Float64}(2, 1, 1, 10, 1, 1, 0, 0, Ptr{Nothing} @0x0000000001f0cce0)
julia> finufft_destroy(p)
0
julia> finufft_destroy(p)
free(): invalid pointer

signal (6): Aborted
in expression starting at REPL[8]:1
...

crashes out of Julia. Fun stuff.
This is because the high-level language wrapper needs to zero the plan_ptr and check if nonzero before sending it to finufft_destroy.

In-place versions nufftndm! require dtype argument for single-precision transforms

The in-place versions nufftndm! do not work for single-precision inputs without explicitly providing the dtype keyword argument whereas the out-of-place variants work just fine:

Out-of-place:

julia> using FINUFFT

julia> nj = 1000000;

julia> x = pi*(1 .- 2*rand(Float32, nj));

julia> c = rand(ComplexF32, nj);

julia> ms = 2000000;

julia> tol = 1e-5;

julia> fk = nufft1d1(x, c, 1, tol, ms);

In-place:

julia> fk = nufft1d1!(x, c, 1, tol, Array{ComplexF32}(undef,ms));
ERROR: MethodError: no method matching finufft_setpts!(::finufft_plan{Float64}, ::Vector{Float32})
Closest candidates are:
  finufft_setpts!(::finufft_plan{T}, ::Array{T}) where T<:Union{Float32, Float64} at C:\Users\mv6955\.julia\packages\FINUFFT\GNqRW\src\guru.jl:159
  finufft_setpts!(::finufft_plan{T}, ::Array{T}, ::Array{T}) where T<:Union{Float32, Float64} at C:\Users\mv6955\.julia\packages\FINUFFT\GNqRW\src\guru.jl:159
  finufft_setpts!(::finufft_plan{T}, ::Array{T}, ::Array{T}, ::Array{T}) where T<:Union{Float32, Float64} at C:\Users\mv6955\.julia\packages\FINUFFT\GNqRW\src\guru.jl:159
  ...
Stacktrace:
 [1] nufft1d1!(xj::Vector{Float32}, cj::Vector{ComplexF32}, iflag::Int64, eps::Float64, fk::Vector{ComplexF32}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
   @ FINUFFT C:\Users\mv6955\.julia\packages\FINUFFT\GNqRW\src\simple.jl:470
 [2] nufft1d1!(xj::Vector{Float32}, cj::Vector{ComplexF32}, iflag::Int64, eps::Float64, fk::Vector{ComplexF32})
   @ FINUFFT C:\Users\mv6955\.julia\packages\FINUFFT\GNqRW\src\simple.jl:458
 [3] top-level scope
   @ REPL[23]:1

Using the dtype argument, the problem is resolved:

julia> fk = nufft1d1!(x, c, 1, tol, Array{ComplexF32}(undef,ms), dtype=Float32);

Wouldn't it make more sense to adapt the in-place function definitions such that they infer the plan-type from the provided-data, e.g., as in

function nufft1d1!(xj      :: Array{T},
                   cj      :: Array{Complex{T}},
                   iflag   :: Integer, 
                   eps     :: Real,
                   fk      :: Array{Complex{T}};
                   kwargs...) where T <: finufftReal
    valid_setpts(1,1,xj)
    ntrans = valid_ntr(xj,cj)
    (ms, ntrans_fk) = get_nmodes_from_fk(1,fk)

    checkkwdtype(T; kwargs...)
    plan = finufft_makeplan(1,[ms;],iflag,ntrans,eps;**dtype=T**,kwargs...)
    finufft_setpts!(plan,xj)
    finufft_exec!(plan,cj,fk)
    ret = finufft_destroy!(plan)
    check_ret(ret)
end

I highlighted the proposed modification with ** **.

Cheers, Jonas

Tests crash process for Julia 1.8.5

FINUFFT (including tests) crashes the julia process on 1.8.5.

Julia Version 1.8.5
Commit 17cfb8e65e (2023-01-08 06:45 UTC)
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: 16 × AMD Ryzen 7 3700X 8-Core Processor
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-13.0.1 (ORCJIT, znver2)
Threads: 16 on 16 virtual cores
Environment:
JULIA_NUM_THREADS = 16

Same error happens with win10+intel cpu

ERROR: Package FINUFFT errored during testing (exit code: 3221226356)
All tests pass for 1.8.1.

Unfortunately I have no further ideas about the cause of the error.

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.