├── .devcontainer ├── Dockerfile └── devcontainer.json ├── .github ├── dependabot.yml ├── release-drafter-config.yml └── workflows │ ├── build-linux.yml │ ├── build-macos.yml │ └── draft-release.yml ├── .gitignore ├── .travis.yml ├── 3rdparty ├── Makefile.am ├── README └── cstripack │ ├── Makefile.am │ ├── cstripack.c │ └── cstripack.h ├── AUTHORS ├── CONVENTIONS.md ├── COPYING ├── ChangeLog ├── Makefile.am ├── NEWS ├── README.md ├── aminclude.am ├── applications ├── Makefile.am ├── doxygen.c ├── fastgauss │ ├── Makefile.am │ ├── README │ ├── fastgauss.c.in │ ├── levelplots.m │ ├── output_error.m │ ├── output_error_p.m │ └── show_results.m ├── fastsum │ ├── Makefile.am │ ├── README │ ├── fastsum.c │ ├── fastsum.h │ ├── fastsum.m │ ├── fastsum_benchomp.c │ ├── fastsum_benchomp_createdataset.c │ ├── fastsum_benchomp_detail.c │ ├── fastsum_matlab.c │ ├── fastsum_test.c │ ├── fastsum_test.m │ ├── kernels.c │ └── kernels.h ├── fastsumS2 │ ├── Makefile.am │ ├── README │ ├── doxygen.h │ ├── example.in │ ├── example.out │ ├── fastsumS2.c │ ├── fastsumS2.m │ ├── readTestcase.m │ └── writeTestcase.m ├── iterS2 │ ├── Makefile.am │ ├── README │ ├── doxygen.h │ ├── iterS2.c │ ├── writeImageTestcase.m │ └── writeTestcase.m ├── mri │ ├── Makefile.am │ ├── doxygen.c │ ├── mri2d │ │ ├── Makefile.am │ │ ├── README │ │ ├── construct_data_2d.c │ │ ├── construct_data_inh_2d1d.c │ │ ├── construct_data_inh_3d.c │ │ ├── construct_inh.m │ │ ├── construct_knots_linogram.m │ │ ├── construct_knots_radial.m │ │ ├── construct_knots_rose.m │ │ ├── construct_knots_spiral.m │ │ ├── construct_readout_time.m │ │ ├── doxygen.h │ │ ├── mri.m │ │ ├── mri_inh.m │ │ ├── phantom.m │ │ ├── precompute_weights.m │ │ ├── reconstruct_data_2d.c │ │ ├── reconstruct_data_gridding.c │ │ ├── reconstruct_data_inh_2d1d.c │ │ ├── reconstruct_data_inh_3d.c │ │ ├── reconstruct_data_inh_nnfft.c │ │ ├── rms.m │ │ ├── verschiebung.m │ │ └── visualize_data.m │ └── mri3d │ │ ├── Makefile.am │ │ ├── README │ │ ├── construct_data_2d1d.c │ │ ├── construct_data_3d.c │ │ ├── construct_knots_linogram.m │ │ ├── construct_knots_radial.m │ │ ├── construct_knots_radial_3d.m │ │ ├── construct_knots_rose.m │ │ ├── construct_knots_spiral.m │ │ ├── construct_phantom.m │ │ ├── doxygen.h │ │ ├── mri.m │ │ ├── precompute_weights_2d.m │ │ ├── reconstruct_data_2d1d.c │ │ ├── reconstruct_data_3d.c │ │ ├── reconstruct_data_gridding.c │ │ ├── rms.m │ │ └── visualize_data.m ├── polarFFT │ ├── Makefile.am │ ├── README │ ├── doxygen.h │ ├── fft_test.m │ ├── linogram_fft_test.c.in │ ├── mpolar_fft_test.c.in │ ├── phantom.m │ └── polar_fft_test.c.in ├── quadratureS2 │ ├── Makefile.am │ ├── doxygen.h │ ├── example.in │ ├── example.out │ ├── lgwt.m │ ├── plotGrid.m │ ├── quadratureS2.c │ ├── quadratureS2.m │ ├── readTestcase.m │ ├── writeTestcase.m │ └── writeWeights.m └── radon │ ├── Makefile.am │ ├── README │ ├── inverse_radon.c.in │ ├── phantom.m │ ├── radon.c.in │ ├── radon.m │ └── ridgelet.m ├── benchmarks ├── Makefile.am ├── bench_nfft_direct.cpp └── util.h ├── bootstrap.sh ├── configure.ac ├── doc └── assets │ ├── logo.png │ ├── sphere.pdf │ └── sphere.png ├── doxygen.dox ├── doxygen ├── Makefile.am ├── doxygen.Doxyfile.in ├── doxygen.css ├── footer.html └── header.html ├── examples ├── Makefile.am ├── doxygen.c ├── fpt │ ├── Makefile.am │ ├── simple_test.c │ └── simple_test.nb ├── mri │ └── Makefile.am ├── nfct │ ├── Makefile.am │ ├── README │ └── simple_test.c.in ├── nfft │ ├── Makefile.am │ ├── README │ ├── flags.c │ ├── flags.m │ ├── ndft_fast.c │ ├── ndft_fast.m │ ├── nfft_benchomp.c │ ├── nfft_benchomp_createdataset.c │ ├── nfft_benchomp_detail.c │ ├── nfft_times.c │ ├── simple_test.c.in │ ├── simple_test_threads.c.in │ ├── taylor_nfft.c │ └── taylor_nfft.m ├── nfsft │ ├── Makefile.am │ ├── nfsft_benchomp.c │ ├── nfsft_benchomp_createdataset.c │ ├── nfsft_benchomp_detail.c │ ├── simple_test.c │ └── simple_test_threads.c ├── nfsoft │ ├── Makefile.am │ ├── README │ └── simple_test.c ├── nfst │ ├── Makefile.am │ ├── README │ └── simple_test.c.in ├── nnfft │ ├── Makefile.am │ ├── README │ ├── accuracy.c │ ├── accuracy.m │ └── simple_test.c ├── nsfft │ ├── Makefile.am │ ├── README │ ├── nsfft_test.c │ └── simple_test.c └── solver │ ├── Makefile.am │ ├── README │ ├── doxygen.h │ ├── glacier.c.in │ ├── glacier.m │ ├── glacier_cv.m │ ├── simple_test.c.in │ └── vol87.dat ├── include ├── Makefile.am ├── api.h ├── cycle.h ├── doxygen.dox ├── infft.h ├── nfft3.h ├── nfft3mp.h ├── solver_adjoint.h └── ticks.h.in ├── julia ├── Makefile.am ├── README.md ├── fastsum │ ├── Makefile.am │ ├── fastsum.jl │ ├── libfastsumjulia.c │ └── simple_test.jl ├── nfct │ ├── Makefile.am │ ├── NFCT.jl │ ├── libnfctjulia.c │ ├── simple_test_1d.jl │ ├── simple_test_2d.jl │ └── simple_test_3d.jl ├── nfft │ ├── Makefile.am │ ├── NFFT.jl │ ├── README.md │ ├── libnfftjulia.c │ ├── simple_test_1d.jl │ ├── simple_test_2d.jl │ └── simple_test_3d.jl ├── nfsft │ ├── Makefile.am │ ├── NFSFT.jl │ ├── libnfsftjulia.c │ └── simple_test.jl └── nfst │ ├── Makefile.am │ ├── NFST.jl │ ├── libnfstjulia.c │ ├── simple_test_1d.jl │ ├── simple_test_2d.jl │ └── simple_test_3d.jl ├── kernel ├── Makefile.am ├── fpt │ ├── Makefile.am │ ├── fpt.c │ └── fpt.h ├── mri │ ├── Makefile.am │ └── mri.c ├── nfct │ ├── Makefile.am │ └── nfct.c ├── nfft │ ├── Makefile.am │ └── nfft.c ├── nfsft │ ├── Makefile.am │ ├── api.h │ ├── legendre.c │ ├── legendre.h │ └── nfsft.c ├── nfsoft │ ├── Makefile.am │ ├── nfsoft.c │ ├── wigner.c │ └── wigner.h ├── nfst │ ├── Makefile.am │ └── nfst.c ├── nnfft │ ├── Makefile.am │ └── nnfft.c ├── nsfft │ ├── Makefile.am │ └── nsfft.c ├── solver │ ├── Makefile.am │ └── solver.c └── util │ ├── Makefile.am │ ├── assert.c │ ├── bessel_i0.c │ ├── bessel_i0.m │ ├── bessel_i0.nb │ ├── bspline.c │ ├── bspline.nb │ ├── damp.c │ ├── error.c │ ├── float.c │ ├── int.c │ ├── lambda.c │ ├── malloc.c │ ├── print.c │ ├── rand.c │ ├── sinc.c │ ├── sort.c │ ├── thread.c │ ├── time.c │ ├── vector1.c │ ├── vector2.c │ ├── vector3.c │ ├── version.c │ ├── voronoi.c │ └── window.c ├── linux-build-mex.sh ├── m4 ├── amx_prog_as.m4 ├── ax_cc_blocks.m4 ├── ax_cc_maxopt.m4 ├── ax_check_compiler_flags.m4 ├── ax_check_dir.m4 ├── ax_compiler_vendor.m4 ├── ax_count_cpus.m4 ├── ax_cxx_compile_stdcxx.m4 ├── ax_gcc_aligns_stack.m4 ├── ax_gcc_archflag.m4 ├── ax_gcc_version.m4 ├── ax_gcc_x86_cpuid.m4 ├── ax_nfft_module.m4 ├── ax_openmp.m4 ├── ax_prog_doxygen.m4 ├── ax_prog_matlab.m4 ├── nfft_lib_codspeed.m4 ├── nfft_lib_cunit.m4 ├── nfft_lib_fftw3.m4 └── nfft_openmp_atomic_float.m4 ├── macos-build-mex.sh ├── matlab ├── Makefile.am ├── README ├── args.c ├── fastsum │ ├── Contents.m │ ├── EXACT_NEARFIELD.m │ ├── Makefile.am │ ├── NEARFIELD_BOXES.m │ ├── fastsum.m │ ├── fastsum_finalize.m │ ├── fastsum_get_f.m │ ├── fastsum_get_num_threads.m │ ├── fastsum_init.m │ ├── fastsum_set_alpha.m │ ├── fastsum_set_num_threads.m │ ├── fastsum_set_x.m │ ├── fastsum_set_y.m │ ├── fastsum_simple.m │ ├── fastsum_trafo.m │ ├── fastsum_trafo_direct.m │ ├── fastsummex.c │ ├── simple_test.m │ └── test_fastsum.m ├── fpt │ ├── FPT_AL_SYMMETRY.m │ ├── FPT_FUNCTION_VALUES.m │ ├── FPT_NO_DIRECT_ALGORITHM.m │ ├── FPT_NO_FAST_ALGORITHM.m │ ├── FPT_NO_STABILIZATION.m │ ├── Makefile.am │ ├── eval_clenshaw.m │ ├── fpt_finalize.m │ ├── fpt_init.m │ ├── fpt_precompute.m │ ├── fpt_trafo.m │ ├── fpt_trafo_direct.m │ ├── fpt_transposed.m │ ├── fpt_transposed_direct.m │ ├── fptmex.c │ └── simple_test.m ├── imex.h ├── infft1d │ ├── Makefile.am │ ├── README │ ├── coeffs_2048.mat │ ├── infft.m │ ├── simple_test.m │ ├── test_adjoint.m │ ├── test_overdetermined.m │ └── test_underdetermined.m ├── malloc.c ├── nfct │ ├── Contents.m │ ├── FFTW_ESTIMATE.m │ ├── FFTW_MEASURE.m │ ├── FFT_OUT_OF_PLACE.m │ ├── FG_PSI.m │ ├── Makefile.am │ ├── PRE_FG_PSI.m │ ├── PRE_FULL_PSI.m │ ├── PRE_LIN_PSI.m │ ├── PRE_PHI_HUT.m │ ├── PRE_PSI.m │ ├── ndct_adjoint.m │ ├── ndct_trafo.m │ ├── nfct.m │ ├── nfct_adjoint.m │ ├── nfct_finalize.m │ ├── nfct_get_f.m │ ├── nfct_get_f_hat.m │ ├── nfct_get_num_threads.m │ ├── nfct_get_x.m │ ├── nfct_init_1d.m │ ├── nfct_init_2d.m │ ├── nfct_init_3d.m │ ├── nfct_init_guru.m │ ├── nfct_set_f.m │ ├── nfct_set_f_hat.m │ ├── nfct_set_num_threads.m │ ├── nfct_set_x.m │ ├── nfct_trafo.m │ ├── nfctmex.c │ ├── simple_test.m │ ├── test_nfct1d.m │ ├── test_nfct2d.m │ └── test_nfct3d.m ├── nfft │ ├── Contents.m │ ├── FFTW_ESTIMATE.m │ ├── FFTW_MEASURE.m │ ├── FFT_OUT_OF_PLACE.m │ ├── FG_PSI.m │ ├── Makefile.am │ ├── NFFT_OMP_BLOCKWISE_ADJOINT.m │ ├── PRE_FG_PSI.m │ ├── PRE_FULL_PSI.m │ ├── PRE_LIN_PSI.m │ ├── PRE_PHI_HUT.m │ ├── PRE_PSI.m │ ├── ndft_adjoint.m │ ├── ndft_trafo.m │ ├── nfft.m │ ├── nfft_adjoint.m │ ├── nfft_finalize.m │ ├── nfft_get_f.m │ ├── nfft_get_f_hat.m │ ├── nfft_get_num_threads.m │ ├── nfft_get_x.m │ ├── nfft_init.m │ ├── nfft_init_1d.m │ ├── nfft_init_2d.m │ ├── nfft_init_3d.m │ ├── nfft_init_guru.m │ ├── nfft_precompute_psi.m │ ├── nfft_set_f.m │ ├── nfft_set_f_hat.m │ ├── nfft_set_num_threads.m │ ├── nfft_set_x.m │ ├── nfft_trafo.m │ ├── nfftmex.c │ ├── nfftmex.m │ ├── simple_test.m │ ├── simple_test_threads.m │ ├── test_nfft1d.m │ ├── test_nfft1d_nufft.m │ ├── test_nfft2d.m │ ├── test_nfft2d_nufft.m │ ├── test_nfft3d.m │ ├── test_nfft4d.m │ └── test_nfft5d.m ├── nfsft │ ├── @f_hat │ │ ├── Makefile.am │ │ ├── char.m │ │ ├── display.m │ │ ├── double.m │ │ ├── f_hat.m │ │ ├── get.m │ │ ├── minus.m │ │ ├── mtimes.m │ │ ├── mtimesr.m │ │ ├── norm.m │ │ ├── plus.m │ │ ├── subsasgn.m │ │ └── subsref.m │ ├── Contents.m │ ├── FPT_NO_FAST_ALGORITHM.m │ ├── Makefile.am │ ├── NFSFT_EQUISPACED.m │ ├── NFSFT_NORMALIZED.m │ ├── NFSFT_NO_DIRECT_ALGORITHM.m │ ├── NFSFT_NO_FAST_ALGORITHM.m │ ├── NFSFT_PRESERVE_F_HAT.m │ ├── NFSFT_USE_DPT.m │ ├── NFSFT_USE_NDFT.m │ ├── cc.m │ ├── f_hat_index.m │ ├── gl.m │ ├── lgwt.m │ ├── ndsft_adjoint.m │ ├── ndsft_trafo.m │ ├── nfsft.m │ ├── nfsft_adjoint.m │ ├── nfsft_finalize.m │ ├── nfsft_forget.m │ ├── nfsft_get_f.m │ ├── nfsft_get_f_hat.m │ ├── nfsft_get_f_hat_linear.m │ ├── nfsft_get_num_threads.m │ ├── nfsft_get_x.m │ ├── nfsft_init.m │ ├── nfsft_init_advanced.m │ ├── nfsft_init_guru.m │ ├── nfsft_precompute.m │ ├── nfsft_precompute_x.m │ ├── nfsft_set_f.m │ ├── nfsft_set_f_hat.m │ ├── nfsft_set_f_hat_linear.m │ ├── nfsft_set_num_threads.m │ ├── nfsft_set_x.m │ ├── nfsft_trafo.m │ ├── nfsftmex.c │ ├── nfsftmex.m │ ├── projection.m │ ├── simple_test.m │ ├── test_inversion.m │ ├── test_nfsft.m │ └── test_nfsft_equispaced.m ├── nfsoft │ ├── Contents.m │ ├── Makefile.am │ ├── NFSOFT_NORMALIZED.m │ ├── NFSOFT_REPRESENT.m │ ├── NFSOFT_USE_DPT.m │ ├── NFSOFT_USE_NDFT.m │ ├── nfsoft.m │ ├── nfsoft_adjoint.m │ ├── nfsoft_f_hat_size.m │ ├── nfsoft_finalize.m │ ├── nfsoft_get_f.m │ ├── nfsoft_get_f_hat.m │ ├── nfsoft_get_num_threads.m │ ├── nfsoft_index.m │ ├── nfsoft_init.m │ ├── nfsoft_precompute.m │ ├── nfsoft_set_f.m │ ├── nfsoft_set_f_hat.m │ ├── nfsoft_set_num_threads.m │ ├── nfsoft_set_x.m │ ├── nfsoft_trafo.m │ ├── nfsoftmex.c │ ├── simple_test.m │ ├── test_nfsoft.m │ ├── test_nfsoft_direct.m │ └── wignerD.m ├── nfst │ ├── Contents.m │ ├── FFTW_ESTIMATE.m │ ├── FFTW_MEASURE.m │ ├── FFT_OUT_OF_PLACE.m │ ├── FG_PSI.m │ ├── Makefile.am │ ├── PRE_FG_PSI.m │ ├── PRE_FULL_PSI.m │ ├── PRE_LIN_PSI.m │ ├── PRE_PHI_HUT.m │ ├── PRE_PSI.m │ ├── ndst_adjoint.m │ ├── ndst_trafo.m │ ├── nfst.m │ ├── nfst_adjoint.m │ ├── nfst_finalize.m │ ├── nfst_get_f.m │ ├── nfst_get_f_hat.m │ ├── nfst_get_num_threads.m │ ├── nfst_get_x.m │ ├── nfst_init_1d.m │ ├── nfst_init_2d.m │ ├── nfst_init_3d.m │ ├── nfst_init_guru.m │ ├── nfst_set_f.m │ ├── nfst_set_f_hat.m │ ├── nfst_set_num_threads.m │ ├── nfst_set_x.m │ ├── nfst_trafo.m │ ├── nfstmex.c │ ├── simple_test.m │ ├── test_nfst1d.m │ ├── test_nfst2d.m │ └── test_nfst3d.m ├── nnfft │ ├── Contents.m │ ├── Makefile.am │ ├── PRE_FULL_PSI.m │ ├── PRE_LIN_PSI.m │ ├── PRE_PHI_HUT.m │ ├── PRE_PSI.m │ ├── nnfft.m │ ├── nnfft_display.m │ ├── nnfft_finalize.m │ ├── nnfft_get_f.m │ ├── nnfft_get_f_hat.m │ ├── nnfft_get_num_threads.m │ ├── nnfft_get_x.m │ ├── nnfft_init.m │ ├── nnfft_init_1d.m │ ├── nnfft_init_2d.m │ ├── nnfft_init_3d.m │ ├── nnfft_init_guru.m │ ├── nnfft_precompute_psi.m │ ├── nnfft_set_f.m │ ├── nnfft_set_f_hat.m │ ├── nnfft_set_num_threads.m │ ├── nnfft_set_v.m │ ├── nnfft_set_x.m │ ├── nnfft_trafo.m │ ├── nnfft_trafo_direct.m │ ├── nnfftmex.c │ ├── nnfftmex.m │ ├── simple_test.m │ ├── test_nnfft1d.m │ └── test_nnfft2d.m └── tests │ ├── Makefile.am │ ├── check_nfft_matlab.sh.in │ ├── check_nfft_octave.sh.in │ ├── check_nfsft_matlab.sh.in │ ├── check_nfsft_octave.sh.in │ ├── check_nfsoft_matlab.sh.in │ ├── check_nfsoft_octave.sh.in │ ├── nfftTestcaseCheckDelegate.m │ ├── nfftTestcaseDelegate.m │ ├── nfftTestcaseDelegateFile.m │ ├── nfftTestcaseDelegateOnline.m │ ├── nfftTestcaseInitDelegate.m │ ├── nfftTestcaseTrafoDelegate.m │ ├── nfftUnitTests.m.in │ ├── nfftUnitTestsRunAndExit.m │ ├── nfsftTestcaseCheckDelegate.m │ ├── nfsftTestcaseDelegate.m │ ├── nfsftTestcaseDelegateGLQuadratureOnline.m │ ├── nfsftTestcaseDelegateOnline.m │ ├── nfsftTestcaseInitDelegate.m │ ├── nfsftTestcaseTrafoDelegate.m │ ├── nfsftUnitTests.m.in │ ├── nfsftUnitTestsRunAndExit.m │ ├── nfsoftTestcaseCheckDelegate.m │ ├── nfsoftTestcaseDelegate.m │ ├── nfsoftTestcaseDelegateGLQuadratureOnline.m │ ├── nfsoftTestcaseDelegateOnline.m │ ├── nfsoftTestcaseInitDelegate.m │ ├── nfsoftTestcaseTrafoDelegate.m │ ├── nfsoftUnitTests.m │ └── nfsoftUnitTestsRunAndExit.m ├── nfft3.pc.in ├── support ├── Makefile.am ├── Portfile ├── copyright.txt ├── copyright_m4.txt ├── copyright_matlab.txt ├── copyright_matlab_single_line.txt ├── fpt.dox ├── mri.dox ├── nfct.dox ├── nfft.dox ├── nfsft.dox ├── nfsoft.dox ├── nfst.dox ├── nnfft.dox ├── nsfft.dox ├── rem.sed ├── solver.dox ├── toc.sed └── update_copyright.sh ├── tests ├── CUnit-Run.dtd ├── Makefile.am ├── PrintVector.m ├── bessel.c ├── bessel.h ├── bspline.c ├── bspline.h ├── check.c ├── check_bspline.m ├── check_bspline.nb ├── check_nfct.m ├── check_nfct.nb ├── check_nfft.m ├── check_nfft.nb ├── check_nfsft.c ├── check_nfsft.m ├── check_nfsft.nb ├── check_nfst.m ├── check_nfst.nb ├── cunit2junit.xsl ├── data │ ├── Makefile.am │ ├── nfct_1d_10_1.txt │ ├── nfct_1d_10_10.txt │ ├── nfct_1d_10_25.txt │ ├── nfct_1d_10_50.txt │ ├── nfct_1d_1_1.txt │ ├── nfct_1d_1_10.txt │ ├── nfct_1d_1_25.txt │ ├── nfct_1d_1_50.txt │ ├── nfct_1d_25_1.txt │ ├── nfct_1d_25_10.txt │ ├── nfct_1d_25_25.txt │ ├── nfct_1d_25_50.txt │ ├── nfct_1d_2_1.txt │ ├── nfct_1d_2_10.txt │ ├── nfct_1d_2_25.txt │ ├── nfct_1d_2_50.txt │ ├── nfct_1d_4_1.txt │ ├── nfct_1d_4_10.txt │ ├── nfct_1d_4_25.txt │ ├── nfct_1d_4_50.txt │ ├── nfct_1d_50_1.txt │ ├── nfct_1d_50_10.txt │ ├── nfct_1d_50_25.txt │ ├── nfct_1d_50_50.txt │ ├── nfct_2d_10_10_25.txt │ ├── nfct_2d_10_10_50.txt │ ├── nfct_2d_10_25_25.txt │ ├── nfct_2d_10_25_50.txt │ ├── nfct_2d_25_10_25.txt │ ├── nfct_2d_25_10_50.txt │ ├── nfct_2d_25_25_25.txt │ ├── nfct_2d_25_25_50.txt │ ├── nfct_3d_10_10_10_10.txt │ ├── nfct_adjoint_1d_10_1.txt │ ├── nfct_adjoint_1d_10_10.txt │ ├── nfct_adjoint_1d_10_25.txt │ ├── nfct_adjoint_1d_10_50.txt │ ├── nfct_adjoint_1d_1_1.txt │ ├── nfct_adjoint_1d_1_10.txt │ ├── nfct_adjoint_1d_1_25.txt │ ├── nfct_adjoint_1d_1_50.txt │ ├── nfct_adjoint_1d_25_1.txt │ ├── nfct_adjoint_1d_25_10.txt │ ├── nfct_adjoint_1d_25_25.txt │ ├── nfct_adjoint_1d_25_50.txt │ ├── nfct_adjoint_1d_2_1.txt │ ├── nfct_adjoint_1d_2_10.txt │ ├── nfct_adjoint_1d_2_25.txt │ ├── nfct_adjoint_1d_2_50.txt │ ├── nfct_adjoint_1d_4_1.txt │ ├── nfct_adjoint_1d_4_10.txt │ ├── nfct_adjoint_1d_4_25.txt │ ├── nfct_adjoint_1d_4_50.txt │ ├── nfct_adjoint_1d_50_1.txt │ ├── nfct_adjoint_1d_50_10.txt │ ├── nfct_adjoint_1d_50_25.txt │ ├── nfct_adjoint_1d_50_50.txt │ ├── nfct_adjoint_2d_10_10_25.txt │ ├── nfct_adjoint_2d_10_10_50.txt │ ├── nfct_adjoint_2d_10_25_25.txt │ ├── nfct_adjoint_2d_10_25_50.txt │ ├── nfct_adjoint_2d_25_10_25.txt │ ├── nfct_adjoint_2d_25_10_50.txt │ ├── nfct_adjoint_2d_25_25_25.txt │ ├── nfct_adjoint_2d_25_25_50.txt │ ├── nfct_adjoint_3d_10_10_10_10.txt │ ├── nfft_1d_10_1.txt │ ├── nfft_1d_10_10.txt │ ├── nfft_1d_10_20.txt │ ├── nfft_1d_10_50.txt │ ├── nfft_1d_1_1.txt │ ├── nfft_1d_1_10.txt │ ├── nfft_1d_1_20.txt │ ├── nfft_1d_1_50.txt │ ├── nfft_1d_20_1.txt │ ├── nfft_1d_20_10.txt │ ├── nfft_1d_20_20.txt │ ├── nfft_1d_20_50.txt │ ├── nfft_1d_2_1.txt │ ├── nfft_1d_2_10.txt │ ├── nfft_1d_2_20.txt │ ├── nfft_1d_2_50.txt │ ├── nfft_1d_4_1.txt │ ├── nfft_1d_4_10.txt │ ├── nfft_1d_4_20.txt │ ├── nfft_1d_4_50.txt │ ├── nfft_1d_50_1.txt │ ├── nfft_1d_50_10.txt │ ├── nfft_1d_50_20.txt │ ├── nfft_1d_50_50.txt │ ├── nfft_2d_10_10_20.txt │ ├── nfft_2d_10_10_50.txt │ ├── nfft_2d_10_20_20.txt │ ├── nfft_2d_10_20_50.txt │ ├── nfft_2d_20_10_20.txt │ ├── nfft_2d_20_10_50.txt │ ├── nfft_2d_20_20_20.txt │ ├── nfft_2d_20_20_50.txt │ ├── nfft_3d_10_10_10_10.txt │ ├── nfft_adjoint_1d_10_1.txt │ ├── nfft_adjoint_1d_10_10.txt │ ├── nfft_adjoint_1d_10_20.txt │ ├── nfft_adjoint_1d_10_50.txt │ ├── nfft_adjoint_1d_1_1.txt │ ├── nfft_adjoint_1d_1_10.txt │ ├── nfft_adjoint_1d_1_20.txt │ ├── nfft_adjoint_1d_1_50.txt │ ├── nfft_adjoint_1d_20_1.txt │ ├── nfft_adjoint_1d_20_10.txt │ ├── nfft_adjoint_1d_20_20.txt │ ├── nfft_adjoint_1d_20_50.txt │ ├── nfft_adjoint_1d_2_1.txt │ ├── nfft_adjoint_1d_2_10.txt │ ├── nfft_adjoint_1d_2_20.txt │ ├── nfft_adjoint_1d_2_50.txt │ ├── nfft_adjoint_1d_4_1.txt │ ├── nfft_adjoint_1d_4_10.txt │ ├── nfft_adjoint_1d_4_20.txt │ ├── nfft_adjoint_1d_4_50.txt │ ├── nfft_adjoint_1d_50_1.txt │ ├── nfft_adjoint_1d_50_10.txt │ ├── nfft_adjoint_1d_50_20.txt │ ├── nfft_adjoint_1d_50_50.txt │ ├── nfft_adjoint_2d_10_10_20.txt │ ├── nfft_adjoint_2d_10_10_50.txt │ ├── nfft_adjoint_2d_10_20_20.txt │ ├── nfft_adjoint_2d_10_20_50.txt │ ├── nfft_adjoint_2d_20_10_20.txt │ ├── nfft_adjoint_2d_20_10_50.txt │ ├── nfft_adjoint_2d_20_20_20.txt │ ├── nfft_adjoint_2d_20_20_50.txt │ ├── nfft_adjoint_3d_10_10_10_10.txt │ ├── nfst_1d_10_1.txt │ ├── nfst_1d_10_10.txt │ ├── nfst_1d_10_25.txt │ ├── nfst_1d_10_50.txt │ ├── nfst_1d_25_1.txt │ ├── nfst_1d_25_10.txt │ ├── nfst_1d_25_25.txt │ ├── nfst_1d_25_50.txt │ ├── nfst_1d_2_1.txt │ ├── nfst_1d_2_10.txt │ ├── nfst_1d_2_25.txt │ ├── nfst_1d_2_50.txt │ ├── nfst_1d_4_1.txt │ ├── nfst_1d_4_10.txt │ ├── nfst_1d_4_25.txt │ ├── nfst_1d_4_50.txt │ ├── nfst_1d_50_1.txt │ ├── nfst_1d_50_10.txt │ ├── nfst_1d_50_25.txt │ ├── nfst_1d_50_50.txt │ ├── nfst_2d_10_10_25.txt │ ├── nfst_2d_10_10_50.txt │ ├── nfst_2d_10_25_25.txt │ ├── nfst_2d_10_25_50.txt │ ├── nfst_2d_25_10_25.txt │ ├── nfst_2d_25_10_50.txt │ ├── nfst_2d_25_25_25.txt │ ├── nfst_2d_25_25_50.txt │ ├── nfst_3d_10_10_10_10.txt │ ├── nfst_adjoint_1d_10_1.txt │ ├── nfst_adjoint_1d_10_10.txt │ ├── nfst_adjoint_1d_10_25.txt │ ├── nfst_adjoint_1d_10_50.txt │ ├── nfst_adjoint_1d_25_1.txt │ ├── nfst_adjoint_1d_25_10.txt │ ├── nfst_adjoint_1d_25_25.txt │ ├── nfst_adjoint_1d_25_50.txt │ ├── nfst_adjoint_1d_2_1.txt │ ├── nfst_adjoint_1d_2_10.txt │ ├── nfst_adjoint_1d_2_25.txt │ ├── nfst_adjoint_1d_2_50.txt │ ├── nfst_adjoint_1d_4_1.txt │ ├── nfst_adjoint_1d_4_10.txt │ ├── nfst_adjoint_1d_4_25.txt │ ├── nfst_adjoint_1d_4_50.txt │ ├── nfst_adjoint_1d_50_1.txt │ ├── nfst_adjoint_1d_50_10.txt │ ├── nfst_adjoint_1d_50_25.txt │ ├── nfst_adjoint_1d_50_50.txt │ ├── nfst_adjoint_2d_10_10_25.txt │ ├── nfst_adjoint_2d_10_10_50.txt │ ├── nfst_adjoint_2d_10_25_25.txt │ ├── nfst_adjoint_2d_10_25_50.txt │ ├── nfst_adjoint_2d_25_10_25.txt │ ├── nfst_adjoint_2d_25_10_50.txt │ ├── nfst_adjoint_2d_25_25_25.txt │ ├── nfst_adjoint_2d_25_25_50.txt │ └── nfst_adjoint_3d_10_10_10_10.txt ├── nfct.c ├── nfct.h ├── nfft.c ├── nfft.h ├── nfst.c ├── nfst.h ├── reflect.c ├── reflect.h ├── util.c └── util.h └── windows-build-dll.sh /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" 4 | directory: "/" 5 | schedule: 6 | interval: "monthly" 7 | - package-ecosystem: "devcontainers" 8 | directory: "/" 9 | schedule: 10 | interval: "monthly" 11 | -------------------------------------------------------------------------------- /.github/release-drafter-config.yml: -------------------------------------------------------------------------------- 1 | name-template: '$NEXT_PATCH_VERSION' 2 | tag-template: '$NEXT_PATCH_VERSION' 3 | categories: 4 | - title: 'Added' 5 | labels: 6 | - 'feat' 7 | - title: 'Changed' 8 | labels: 9 | - 'refactor' 10 | - 'style' 11 | - title: 'Removed' 12 | labels: 13 | - 'removal' 14 | - title: 'Fixed' 15 | labels: 16 | - 'bug' 17 | - 'fix' 18 | - title: 'Deprecated' 19 | labels: 20 | - 'deprecation' 21 | - title: Documentation 22 | labels: 23 | - 'docs' 24 | - title: Chores 25 | labels: 26 | - 'chore' 27 | template: | 28 | # What’s Changed 29 | $CHANGES 30 | -------------------------------------------------------------------------------- /.github/workflows/draft-release.yml: -------------------------------------------------------------------------------- 1 | name: Draft Release 2 | 3 | on: 4 | push: 5 | branches: 6 | - develop 7 | 8 | jobs: 9 | draft-release: 10 | name: Draft a new release 11 | permissions: 12 | # Write permissions are required to create a GitHub release. 13 | contents: write 14 | # Write permissions are required for autolabeler 15 | # otherwise, read permissions are required, at least. 16 | pull-requests: read 17 | runs-on: ubuntu-latest 18 | steps: 19 | # Drafts your next Release notes as Pull Requests are merged into "develop" 20 | - uses: release-drafter/release-drafter@v6 21 | with: 22 | config-name: release-drafter-config.yml 23 | env: 24 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 25 | -------------------------------------------------------------------------------- /3rdparty/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = cstripack . 2 | 3 | noinst_LTLIBRARIES = lib3rdparty.la 4 | 5 | lib3rdparty_la_SOURCES = 6 | 7 | lib3rdparty_la_LIBADD = cstripack/libcstripack.la 8 | 9 | EXTRA_DIST = README -------------------------------------------------------------------------------- /3rdparty/README: -------------------------------------------------------------------------------- 1 | This directory contains third party code that is needed to build NFFT3. This 2 | directory does, however, not contain the FFTW3 library which is also needed to 3 | build NFFT3. It is available from http://www.fftw.org as a free download. All 4 | code in subpackages is copyright of the respective authors as stated in each 5 | package. Currently, the following packages are included: 6 | 7 | CSTRIPACK - A C-version of Robert J. Renka's the STRIPACK Fortran package to 8 | compute Delaunay triangulations and Voronoi partitions on the unit sphere. 9 | 10 | This package is currently not contained in make dist, since it is only used by 11 | iterS2. 12 | -------------------------------------------------------------------------------- /3rdparty/cstripack/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_LTLIBRARIES = libcstripack.la 2 | 3 | libcstripack_la_SOURCES = cstripack.c 4 | 5 | libcstripack_la_LIBADD = 6 | 7 | noinst_HEADERS = cstripack.h 8 | -------------------------------------------------------------------------------- /NEWS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NFFT/nfft/b4dae236151fe7391347bcc7366d23d82a84ae1c/NEWS -------------------------------------------------------------------------------- /applications/Makefile.am: -------------------------------------------------------------------------------- 1 | if HAVE_NFSFT 2 | DIR_FASTSUMS2=fastsumS2 3 | DIR_QUADRATURES2=quadratureS2 4 | DIR_ITERS2= 5 | else 6 | DIR_FASTSUMS2= 7 | DIR_QUADRATURES2= 8 | DIR_ITERS2= 9 | endif 10 | 11 | if HAVE_MRI 12 | DIR_MRI=mri 13 | else 14 | DIR_MRI= 15 | endif 16 | 17 | DIST_SUBDIRS = fastgauss fastsum fastsumS2 mri polarFFT \ 18 | quadratureS2 radon 19 | 20 | SUBDIRS= fastgauss fastsum $(DIR_FASTSUMS2) $(DIR_MRI) polarFFT \ 21 | $(DIR_QUADRATURES2) radon $(DIR_ITERS2) 22 | 23 | EXTRA_DIST = doxygen.c 24 | -------------------------------------------------------------------------------- /applications/doxygen.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | * 4 | * This program is free software; you can redistribute it and/or modify it under 5 | * the terms of the GNU General Public License as published by the Free Software 6 | * Foundation; either version 2 of the License, or (at your option) any later 7 | * version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but WITHOUT 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 11 | * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 12 | * details. 13 | * 14 | * You should have received a copy of the GNU General Public License along with 15 | * this program; if not, write to the Free Software Foundation, Inc., 51 16 | * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | 19 | /** 20 | * \defgroup applications Applications 21 | */ 22 | -------------------------------------------------------------------------------- /applications/fastgauss/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_PROGRAMS = fastgauss 4 | 5 | fastgauss_SOURCES = fastgauss.c 6 | fastgauss_LDFLAGS = @fftw3_LDFLAGS@ 7 | fastgauss_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 8 | 9 | EXTRA_DIST = levelplots.m show_results.m README output_error.m output_error_p.m 10 | -------------------------------------------------------------------------------- /applications/fastgauss/README: -------------------------------------------------------------------------------- 1 | Examples to the fast Gauss transform with complex parameters 2 | 3 | Author 4 | 5 | Stefan Kunis 6 | 7 | List of files and purpose 8 | 9 | README this file 10 | fastgauss.c univariate Gauss transform and tests 11 | levelplots.m visualisation with MATLAB of error estimates 12 | show_results.m visualisation with MATLAB of tested accuracy, relies on 13 | output_error.m and output_error_p.m produced by fastgauss.c 14 | 15 | References 16 | 17 | Stefan Kunis, Daniel Potts, and Gabriele Steidl 18 | Fast Gauss transforms with complex parameters using NFFTs. 19 | J. Numer. Math., to appear. 2006 20 | 21 | Preprint available online 22 | http://www.tu-chemnitz.de/~potts/paper/fastgauss.pdf 23 | -------------------------------------------------------------------------------- /applications/fastsumS2/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_PROGRAMS = fastsumS2 4 | 5 | fastsumS2_SOURCES = fastsumS2.c doxygen.h 6 | fastsumS2_LDFLAGS = @fftw3_LDFLAGS@ 7 | fastsumS2_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 8 | 9 | EXTRA_DIST = fastsumS2.m writeTestcase.m readTestcase.m README example.in example.out 10 | -------------------------------------------------------------------------------- /applications/fastsumS2/doxygen.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | * 4 | * This program is free software; you can redistribute it and/or modify it under 5 | * the terms of the GNU General Public License as published by the Free Software 6 | * Foundation; either version 2 of the License, or (at your option) any later 7 | * version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but WITHOUT 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 11 | * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 12 | * details. 13 | * 14 | * You should have received a copy of the GNU General Public License along with 15 | * this program; if not, write to the Free Software Foundation, Inc., 51 16 | * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | 19 | /** 20 | * \defgroup applications_fastsumS2 Fast summation of radial functions on the sphere 21 | * \ingroup applications 22 | */ 23 | -------------------------------------------------------------------------------- /applications/iterS2/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/kernel/nfsft 2 | 3 | noinst_PROGRAMS = iterS2 4 | 5 | iterS2_SOURCES = iterS2.c doxygen.h 6 | iterS2_LDFLAGS = @fftw3_LDFLAGS@ 7 | iterS2_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 8 | 9 | EXTRA_DIST = writeTestcase.m writeImageTestcase.m README 10 | #iterS2.m readTestcase.m 11 | -------------------------------------------------------------------------------- /applications/iterS2/doxygen.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | * 4 | * This program is free software; you can redistribute it and/or modify it under 5 | * the terms of the GNU General Public License as published by the Free Software 6 | * Foundation; either version 2 of the License, or (at your option) any later 7 | * version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but WITHOUT 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 11 | * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 12 | * details. 13 | * 14 | * You should have received a copy of the GNU General Public License along with 15 | * this program; if not, write to the Free Software Foundation, Inc., 51 16 | * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | 19 | /** 20 | * \defgroup applications_iterS2 Iterative reconstruction on the sphere S2 21 | * \ingroup applications 22 | */ 23 | -------------------------------------------------------------------------------- /applications/mri/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = mri2d mri3d 2 | EXTRA_DIST = doxygen.c -------------------------------------------------------------------------------- /applications/mri/doxygen.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | * 4 | * This program is free software; you can redistribute it and/or modify it under 5 | * the terms of the GNU General Public License as published by the Free Software 6 | * Foundation; either version 2 of the License, or (at your option) any later 7 | * version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but WITHOUT 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 11 | * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 12 | * details. 13 | * 14 | * You should have received a copy of the GNU General Public License along with 15 | * this program; if not, write to the Free Software Foundation, Inc., 51 16 | * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | 19 | /** 20 | * \defgroup applications_mri Transforms in magnetic resonance imaging 21 | * \ingroup applications 22 | */ 23 | -------------------------------------------------------------------------------- /applications/mri/mri2d/README: -------------------------------------------------------------------------------- 1 | Based on the research paper: 2 | A note on the iterative MRI reconstruction from nonuniform k-space data 3 | 4 | by Tobias Knopp, Stefan Kunis and Daniel Potts 5 | Available from: 6 | http://www.mathematik.tu-chemnitz.de/~potts 7 | 8 | see also: 9 | http://www.tu-chemnitz.de/~potts/projecte/projekt_mri.php 10 | http://www.tu-chemnitz.de/~potts/projects/mri/ 11 | 12 | Furthermore see the Paper 13 | Field Inhomogeneity Correction based on Gridding Reconstruction for Magnetic Resonance Imaging 14 | 15 | by H. Eggers, Tobias Knopp, and Daniel Potts 16 | 17 | -------------------------------------------------------------------- 18 | 19 | Open MATLAB and run the script file mri.m or mri_inh.m. 20 | mri.m and mri_inh are an examples for the usage of the programs. 21 | mri.m uses a simple model without considering a field inhomogenity 22 | against what mri_inh.m considers the field inhomogeneity 23 | 24 | For questions mail us: tobias.knopp@informatik.uni-luebeck.de 25 | -------------------------------------------------------------------------------- /applications/mri/mri2d/construct_inh.m: -------------------------------------------------------------------------------- 1 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 2 | % 3 | % This program is free software; you can redistribute it and/or modify it under 4 | % the terms of the GNU General Public License as published by the Free Software 5 | % Foundation; either version 2 of the License, or (at your option) any later 6 | % version. 7 | % 8 | % This program is distributed in the hope that it will be useful, but WITHOUT 9 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 11 | % details. 12 | % 13 | % You should have received a copy of the GNU General Public License along with 14 | % this program; if not, write to the Free Software Foundation, Inc., 51 15 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 | function [] = construct_inh( N ) 17 | out=zeros(N*N,1); 18 | 19 | for k=1:N, 20 | for j=1:N, 21 | out((k-1)*N+j) = (((k-N/2)/(N/sqrt(2)))^2+((j-N/2)/(N/sqrt(2)))^2)/2 -0.5/2; 22 | end 23 | end 24 | 25 | save inh.dat -ascii out 26 | -------------------------------------------------------------------------------- /applications/mri/mri2d/doxygen.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | * 4 | * This program is free software; you can redistribute it and/or modify it under 5 | * the terms of the GNU General Public License as published by the Free Software 6 | * Foundation; either version 2 of the License, or (at your option) any later 7 | * version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but WITHOUT 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 11 | * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 12 | * details. 13 | * 14 | * You should have received a copy of the GNU General Public License along with 15 | * this program; if not, write to the Free Software Foundation, Inc., 51 16 | * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | 19 | /** 20 | * \defgroup applications_mri2d 2D transforms 21 | * \ingroup applications_mri 22 | */ 23 | -------------------------------------------------------------------------------- /applications/mri/mri3d/README: -------------------------------------------------------------------------------- 1 | Based on the research paper: 2 | A note on the iterative MRI reconstruction from nonuniform k-space data 3 | 4 | 5 | by Tobias Knopp, Stefan Kunis and Daniel Potts 6 | Available from: 7 | http://www.tu-chemnitz.de/~potts 8 | 9 | see also: 10 | https://www.tu-chemnitz.de/~potts/nfft/mri.php 11 | 12 | -------------------------------------------------------------------- 13 | 14 | Open MATLAB and run the script file mri.m. 15 | mri.m is an example for the usage of the programs. 16 | -------------------------------------------------------------------------------- /applications/mri/mri3d/doxygen.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | * 4 | * This program is free software; you can redistribute it and/or modify it under 5 | * the terms of the GNU General Public License as published by the Free Software 6 | * Foundation; either version 2 of the License, or (at your option) any later 7 | * version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but WITHOUT 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 11 | * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 12 | * details. 13 | * 14 | * You should have received a copy of the GNU General Public License along with 15 | * this program; if not, write to the Free Software Foundation, Inc., 51 16 | * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | 19 | /** 20 | * \defgroup applications_mri3d 3D transforms 21 | * \ingroup applications_mri 22 | */ 23 | -------------------------------------------------------------------------------- /applications/polarFFT/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_PROGRAMS = polar_fft_test mpolar_fft_test linogram_fft_test 4 | 5 | polar_fft_test_SOURCES = polar_fft_test.c doxygen.h 6 | polar_fft_test_LDFLAGS = @fftw3_LDFLAGS@ 7 | polar_fft_test_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 8 | 9 | mpolar_fft_test_SOURCES = mpolar_fft_test.c 10 | mpolar_fft_test_LDFLAGS = @fftw3_LDFLAGS@ 11 | mpolar_fft_test_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 12 | 13 | linogram_fft_test_SOURCES = linogram_fft_test.c 14 | linogram_fft_test_LDFLAGS = @fftw3_LDFLAGS@ 15 | linogram_fft_test_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 16 | 17 | EXTRA_DIST = phantom.m fft_test.m README 18 | -------------------------------------------------------------------------------- /applications/polarFFT/README: -------------------------------------------------------------------------------- 1 | polarFFT 2 | 3 | These are examples of the application of the NFFT for the computation of the 4 | 5 | - polar FFT: polar_fft_test.c 6 | 7 | - modified polar FFT: mpolar_fft_test.c 8 | 9 | - pseudopolar (linogram) FFT: linogram_fft_test.c. 10 | 11 | Use the Matlab script file fft_test.m for a demonstration. 12 | 13 | 14 | Reference: 15 | 16 | [1] M. Fenn, S. Kunis, and D. Potts. On the computation of the polar FFT. 17 | Appl. Comput. Harmon. Anal., accepted. 18 | 19 | [2] D. Potts, and G. Steidl, G. A new linogram algorithm for computerized 20 | tomography. IMA J. Numer. Anal. 21, 769-782, 2001 21 | -------------------------------------------------------------------------------- /applications/polarFFT/doxygen.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | * 4 | * This program is free software; you can redistribute it and/or modify it under 5 | * the terms of the GNU General Public License as published by the Free Software 6 | * Foundation; either version 2 of the License, or (at your option) any later 7 | * version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but WITHOUT 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 11 | * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 12 | * details. 13 | * 14 | * You should have received a copy of the GNU General Public License along with 15 | * this program; if not, write to the Free Software Foundation, Inc., 51 16 | * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | 19 | /** 20 | * \defgroup applications_polarFFT Polar FFT 21 | * \ingroup applications 22 | */ 23 | -------------------------------------------------------------------------------- /applications/quadratureS2/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_PROGRAMS = quadratureS2 4 | 5 | quadratureS2_SOURCES = quadratureS2.c doxygen.h 6 | quadratureS2_LDFLAGS = @fftw3_LDFLAGS@ 7 | quadratureS2_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 8 | 9 | EXTRA_DIST = quadratureS2.m writeTestcase.m writeWeights.m readTestcase.m lgwt.m plotGrid.m example.in example.out 10 | -------------------------------------------------------------------------------- /applications/quadratureS2/doxygen.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | * 4 | * This program is free software; you can redistribute it and/or modify it under 5 | * the terms of the GNU General Public License as published by the Free Software 6 | * Foundation; either version 2 of the License, or (at your option) any later 7 | * version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but WITHOUT 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 11 | * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 12 | * details. 13 | * 14 | * You should have received a copy of the GNU General Public License along with 15 | * this program; if not, write to the Free Software Foundation, Inc., 51 16 | * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | 19 | /** 20 | * \defgroup applications_quadratureS2 Fast evaluation of quadrature formulae on the sphere 21 | * \ingroup applications 22 | */ 23 | -------------------------------------------------------------------------------- /applications/quadratureS2/example.out: -------------------------------------------------------------------------------- 1 | 3 2 | 1 3 | 1 4 | 3 5 | 1 6 | 1000.000000 7 | 0 8 | 0 9 | 1 10 | 1 11 | 0 12 | 2 13 | 16 16 14 | 32 32 15 | +6.984776e-04 +3.886121e-06 +4.494552e-06 16 | +2.990931e-03 +6.012098e-06 +4.316038e-06 17 | 1 18 | 1 19 | 6 20 | 1 21 | 1000.000000 22 | 0 23 | 0 24 | 1 25 | 1 26 | 0 27 | 2 28 | 16 16 29 | 32 32 30 | +9.052888e-04 +3.140451e-12 +3.298942e-12 31 | +3.696837e-03 +5.486733e-12 +5.527605e-12 32 | 0 33 | 0 34 | 0 35 | 1 36 | 1 37 | 0 38 | 2 39 | 16 16 40 | 32 32 41 | +5.884322e-03 +3.245259e-15 +1.976205e-15 42 | +5.845654e-02 +8.561233e-15 +3.745339e-15 43 | -------------------------------------------------------------------------------- /applications/radon/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_PROGRAMS = radon inverse_radon 4 | 5 | radon_SOURCES = radon.c 6 | radon_LDFLAGS = @fftw3_LDFLAGS@ 7 | radon_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 8 | 9 | inverse_radon_SOURCES = inverse_radon.c 10 | inverse_radon_LDFLAGS = @fftw3_LDFLAGS@ 11 | inverse_radon_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 12 | 13 | EXTRA_DIST = phantom.m radon.m ridgelet.m README 14 | -------------------------------------------------------------------------------- /benchmarks/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include @nfft_benchmarks_CPPFLAGS@ @CPPFLAGS@ 2 | 3 | if HAVE_BENCHMARKS 4 | if BENCHMARK_AGNOSTIC_WINDOW 5 | NFFT_BENCHMARKS_DIRECT = bench_nfft_direct 6 | bench_nfft_direct_SOURCES = bench_nfft_direct.cpp util.h 7 | bench_nfft_direct_CXXFLAGS = @nfft_benchmarks_CXXFLAGS@ @CXXFLAGS@ 8 | bench_nfft_direct_LDFLAGS = @nfft_benchmarks_LDFLAGS@ @fftw3_LDFLAGS@ @LDFLAGS@ 9 | bench_nfft_direct_LDADD = @nfft_benchmarks_LIBS@ $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ @LIBS@ 10 | else 11 | NFFT_BENCHMARKS_DIRECT = 12 | endif 13 | else 14 | NFFT_BENCHMARKS_DIRECT = 15 | endif 16 | 17 | # Aggregate all benchmarks 18 | NFFT_BENCHMARKS = $(NFFT_BENCHMARKS_DIRECT) 19 | 20 | noinst_PROGRAMS = $(NFFT_BENCHMARKS) 21 | 22 | # Run all built benchmarks 23 | bench: $(NFFT_BENCHMARKS) 24 | for bench in $(NFFT_BENCHMARKS); do \ 25 | echo "Running $$bench..."; \ 26 | ./$$bench; \ 27 | done 28 | -------------------------------------------------------------------------------- /doc/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NFFT/nfft/b4dae236151fe7391347bcc7366d23d82a84ae1c/doc/assets/logo.png -------------------------------------------------------------------------------- /doc/assets/sphere.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NFFT/nfft/b4dae236151fe7391347bcc7366d23d82a84ae1c/doc/assets/sphere.pdf -------------------------------------------------------------------------------- /doc/assets/sphere.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NFFT/nfft/b4dae236151fe7391347bcc7366d23d82a84ae1c/doc/assets/sphere.png -------------------------------------------------------------------------------- /doxygen/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = doxygen.css doxygen.Doxyfile doxygen.Doxyfile.in footer.html header.html -------------------------------------------------------------------------------- /doxygen/footer.html: -------------------------------------------------------------------------------- 1 |
2 | Generated on $date by Doxygen $doxygenversion 3 | 4 | 5 | -------------------------------------------------------------------------------- /doxygen/header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $projectname $projectnumber API Reference - $title 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 19 | 20 |
14 | NFFT Logo 15 | 17 | $projectnumber 18 |
21 | -------------------------------------------------------------------------------- /examples/Makefile.am: -------------------------------------------------------------------------------- 1 | if HAVE_NFCT 2 | DIR_NFCT=nfct 3 | else 4 | LIB_NFCT= 5 | endif 6 | 7 | if HAVE_NFST 8 | DIR_NFST=nfst 9 | else 10 | DIR_NFST= 11 | endif 12 | 13 | if HAVE_NFSFT 14 | DIR_NFSFT=nfsft 15 | else 16 | DIR_NFSFT= 17 | endif 18 | 19 | if HAVE_NFSOFT 20 | DIR_NFSOFT=nfsoft 21 | else 22 | DIR_NFSOFT= 23 | endif 24 | 25 | if HAVE_NNFFT 26 | DIR_NNFFT=nnfft 27 | else 28 | DIR_NNFFT= 29 | endif 30 | 31 | if HAVE_NSFFT 32 | DIR_NSFFT=nsfft 33 | else 34 | DIR_NSFFT= 35 | endif 36 | 37 | if HAVE_MRI 38 | DIR_MRI=mri 39 | else 40 | DIR_MRI= 41 | endif 42 | 43 | if HAVE_FPT 44 | DIR_FPT=fpt 45 | else 46 | DIR_FPT= 47 | endif 48 | 49 | SUBDIRS = $(DIR_FPT) $(DIR_MRI) $(DIR_NFCT) nfft $(DIR_NFSFT) $(DIR_NFSOFT) $(DIR_NFST) \ 50 | $(DIR_NNFFT) $(DIR_NSFFT) solver 51 | 52 | EXTRA_DIST = doxygen.c 53 | -------------------------------------------------------------------------------- /examples/doxygen.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | * 4 | * This program is free software; you can redistribute it and/or modify it under 5 | * the terms of the GNU General Public License as published by the Free Software 6 | * Foundation; either version 2 of the License, or (at your option) any later 7 | * version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but WITHOUT 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 11 | * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 12 | * details. 13 | * 14 | * You should have received a copy of the GNU General Public License along with 15 | * this program; if not, write to the Free Software Foundation, Inc., 51 16 | * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | 19 | /** 20 | * \defgroup examples Examples 21 | */ 22 | -------------------------------------------------------------------------------- /examples/fpt/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | # programs 4 | noinst_PROGRAMS = simple_test 5 | 6 | # sources 7 | simple_test_SOURCES = simple_test.c 8 | simple_test_LDFLAGS = @fftw3_LDFLAGS@ 9 | simple_test_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 10 | -------------------------------------------------------------------------------- /examples/mri/Makefile.am: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NFFT/nfft/b4dae236151fe7391347bcc7366d23d82a84ae1c/examples/mri/Makefile.am -------------------------------------------------------------------------------- /examples/nfct/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_PROGRAMS = simple_test 4 | 5 | simple_test_SOURCES = simple_test.c 6 | simple_test_LDFLAGS = @fftw3_LDFLAGS@ 7 | simple_test_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 8 | 9 | EXTRA_DIST = README 10 | -------------------------------------------------------------------------------- /examples/nfct/README: -------------------------------------------------------------------------------- 1 | Examples to the nonequispaced fast cosine transform 2 | 3 | Author 4 | 5 | Stefan Kunis 6 | Steffen Klatt 7 | 8 | List of files and purpose 9 | 10 | README this file 11 | simple_test.c introductory example how to use the nfct 12 | 13 | References 14 | 15 | M. Fenn and D. Potts. 16 | Fast summation based on fast trigonometric transforms at nonequispaced nodes. 17 | Numer. Linear Algebra Appl., 12:161--169, 2005. 18 | -------------------------------------------------------------------------------- /examples/nfsoft/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | ## The program name 4 | noinst_PROGRAMS = simple_test 5 | 6 | ## The source files. 7 | simple_test_SOURCES = simple_test.c 8 | simple_test_LDFLAGS = @fftw3_LDFLAGS@ 9 | simple_test_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 10 | 11 | EXTRA_DIST = README 12 | -------------------------------------------------------------------------------- /examples/nfsoft/README: -------------------------------------------------------------------------------- 1 | NDFT for nonequispaced data on the rotation group SO(3) 2 | 3 | the algorithms are written by Antje Vollrath 4 | 5 | based on the paper 6 | Potts, D., Prestin J., and Vollrath A. 7 | A Fast Algorithm for Nonequispaced Fourier Transforms on the Rotation Group 8 | to appear in Num. Alg. 9 | 10 | Available from: 11 | http://www.tu-chemnitz.de/~potts 12 | -------------------------------------------------------------------------------- /examples/nfst/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_PROGRAMS = simple_test 4 | 5 | simple_test_SOURCES = simple_test.c 6 | simple_test_LDFLAGS = @fftw3_LDFLAGS@ 7 | simple_test_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 8 | 9 | EXTRA_DIST = README 10 | -------------------------------------------------------------------------------- /examples/nfst/README: -------------------------------------------------------------------------------- 1 | Examples to the nonequispaced fast sine transform 2 | 3 | Author 4 | 5 | Stefan Kunis 6 | Steffen Klatt 7 | 8 | List of files and purpose 9 | 10 | README this file 11 | simple_test.c introductory example how to use the nfst 12 | 13 | References 14 | 15 | M. Fenn and D. Potts. 16 | Fast summation based on fast trigonometric transforms at nonequispaced nodes. 17 | Numer. Linear Algebra Appl., 12:161--169, 2005. 18 | -------------------------------------------------------------------------------- /examples/nnfft/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_PROGRAMS = simple_test accuracy 4 | 5 | simple_test_SOURCES = simple_test.c 6 | simple_test_LDFLAGS = @fftw3_LDFLAGS@ 7 | simple_test_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 8 | 9 | accuracy_SOURCES = accuracy.c 10 | accuracy_LDFLAGS = @fftw3_LDFLAGS@ 11 | accuracy_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 12 | 13 | EXTRA_DIST = accuracy.m README 14 | -------------------------------------------------------------------------------- /examples/nnfft/README: -------------------------------------------------------------------------------- 1 | NDFT for nonequispaced data in time and frequency domain 2 | 3 | the algorithms are written by Tobias Knopp 4 | based on the paper 5 | Potts, D., Steidl G., and Tasche M. 6 | Fast Fourier transforms for nonequispaced data: A tutorial. 7 | in: Modern Sampling Theory: Mathematics and Applications, 8 | J.J. Benedetto and P. Ferreira (Eds.), Chapter 12, pages 249-274. 1998 9 | 10 | Available from: 11 | http://www.tu-chemnitz.de/~potts 12 | 13 | -------------------------------------------------------------------------------- /examples/nsfft/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_PROGRAMS = simple_test nsfft_test 4 | 5 | simple_test_SOURCES = simple_test.c 6 | simple_test_LDFLAGS = @fftw3_LDFLAGS@ 7 | simple_test_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 8 | 9 | nsfft_test_SOURCES = nsfft_test.c 10 | nsfft_test_LDFLAGS = @fftw3_LDFLAGS@ 11 | nsfft_test_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 12 | 13 | EXTRA_DIST = README 14 | -------------------------------------------------------------------------------- /examples/nsfft/README: -------------------------------------------------------------------------------- 1 | nsfft - nonequispaced sparse FFT or sparse NFFT 2 | 3 | Based on the research paper: 4 | Fast evaluation of trigonometric polynomials from hyperbolic crosses 5 | by Markus Fenn and Stefan Kunis and Daniel Potts 6 | 7 | Available from: 8 | http://www.tu-chemnitz.de/~potts 9 | -------------------------------------------------------------------------------- /examples/solver/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_PROGRAMS = simple_test glacier 4 | 5 | simple_test_SOURCES = simple_test.c 6 | simple_test_LDFLAGS = @fftw3_LDFLAGS@ 7 | simple_test_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 8 | 9 | glacier_SOURCES = glacier.c doxygen.h 10 | glacier_LDFLAGS = @fftw3_LDFLAGS@ 11 | glacier_LDADD = $(top_builddir)/libnfft3@PREC_SUFFIX@.la @fftw3_LIBS@ 12 | 13 | EXTRA_DIST = glacier.m glacier_cv.m vol87.dat README 14 | -------------------------------------------------------------------------------- /examples/solver/README: -------------------------------------------------------------------------------- 1 | Examples to the inverse NFFT 2 | 3 | Author 4 | 5 | Stefan Kunis 6 | 7 | List of files and purpose 8 | 9 | README this file 10 | simple_test.c introductory example how to use the solver component with 11 | the nfft 12 | glacier.c reconstruction of a glacier from sampled level curves 13 | glacier.m visualisation with MATLAB, calls the executable glacier 14 | glacier_cv.m cross validation test for the glacier reconstruction 15 | vol87.dat data set, see http://www.math.nps.navy.mil/~rfranke/README 16 | 17 | References 18 | 19 | Kunis, S. and Potts, D. Stability Results for Scattered Data Interpolation 20 | by Trigonometric Polynomials, SIAM J. Sci. Comput. 29, 1403 - 1419, 2007. 21 | 22 | -------------------------------------------------------------------------------- /examples/solver/doxygen.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | * 4 | * This program is free software; you can redistribute it and/or modify it under 5 | * the terms of the GNU General Public License as published by the Free Software 6 | * Foundation; either version 2 of the License, or (at your option) any later 7 | * version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but WITHOUT 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 11 | * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 12 | * details. 13 | * 14 | * You should have received a copy of the GNU General Public License along with 15 | * this program; if not, write to the Free Software Foundation, Inc., 51 16 | * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | 19 | /** 20 | * \defgroup examples_solver Solver component 21 | * \ingroup examples 22 | */ 23 | -------------------------------------------------------------------------------- /include/Makefile.am: -------------------------------------------------------------------------------- 1 | include_HEADERS = nfft3.h nfft3mp.h 2 | 3 | EXTRA_DIST = infft.h cycle.h api.h 4 | -------------------------------------------------------------------------------- /include/api.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | * 4 | * This program is free software; you can redistribute it and/or modify it under 5 | * the terms of the GNU General Public License as published by the Free Software 6 | * Foundation; either version 2 of the License, or (at your option) any later 7 | * version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but WITHOUT 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 11 | * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 12 | * details. 13 | * 14 | * You should have received a copy of the GNU General Public License along with 15 | * this program; if not, write to the Free Software Foundation, Inc., 51 16 | * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | 19 | #ifndef __API_H__ 20 | #define __API_H__ 21 | 22 | #include "nfft3.h" 23 | #include "infft.h" 24 | 25 | #endif /* __API_H__ */ 26 | -------------------------------------------------------------------------------- /include/doxygen.dox: -------------------------------------------------------------------------------- 1 | /*! \file nfft3.h 2 | * Header file for NFFT3 3 | */ 4 | 5 | /*! \fn extern void *nfft_malloc(size_t n) 6 | * Our \c malloc function 7 | * \param n The number of bytes to allocate 8 | */ 9 | 10 | /*! \fn extern void nfft_free(void *p) 11 | * Our \c free function 12 | * \param p Pointer to the memory region to free 13 | */ 14 | 15 | /*! \typedef typedef void *(*nfft_malloc_type_function) (size_t n) 16 | * A \c malloc type function 17 | */ 18 | 19 | /*! \typedef typedef void (*nfft_free_type_function) (void *p) 20 | * A \c free type function 21 | */ 22 | 23 | /*! \var extern nfft_malloc_type_function nfft_malloc_hook 24 | * Hook for \c nfft_malloc 25 | */ 26 | 27 | /*! \var extern nfft_free_type_function nfft_free_hook 28 | * Hook for \c nfft_free 29 | */ 30 | -------------------------------------------------------------------------------- /julia/Makefile.am: -------------------------------------------------------------------------------- 1 | if HAVE_NFCT 2 | DIR_NFCT=nfct 3 | else 4 | DIR_NFCT= 5 | endif 6 | 7 | if HAVE_NFST 8 | DIR_NFST=nfst 9 | else 10 | DIR_NFST= 11 | endif 12 | 13 | if HAVE_NFSFT 14 | DIR_NFSFT=nfsft 15 | else 16 | DIR_NFSFT= 17 | endif 18 | 19 | if HAVE_APPLICATIONS 20 | DIR_FASTSUM=fastsum 21 | else 22 | DIR_FASTSUM= 23 | endif 24 | 25 | 26 | SUBDIRS = nfft $(DIR_NFCT) $(DIR_NFST) $(DIR_NFSFT) $(DIR_FASTSUM) 27 | 28 | EXTRA_DIST = README.md 29 | -------------------------------------------------------------------------------- /julia/README.md: -------------------------------------------------------------------------------- 1 | **The NFFT3 is now available as a Julia Package!** (https://github.com/NFFT/NFFT3) 2 | 3 | ```julia 4 | using Pkg 5 | Pkg.add("NFFT3") 6 | using NFFT3 7 | ``` 8 | -------------------------------------------------------------------------------- /julia/nfct/Makefile.am: -------------------------------------------------------------------------------- 1 | .PHONY: libnfctjulia-link clean-libnfctjulia-link 2 | 3 | # compiler flags 4 | AM_CPPFLAGS = -I$(top_srcdir)/include 5 | 6 | # library 7 | lib_LTLIBRARIES = libnfctjulia.la 8 | libnfctjulia_la_SOURCES = libnfctjulia.c 9 | 10 | if ENABLE_OPENMP 11 | libadd_for_fftw_threads=@fftw3_LIBS_omp@ @fftw3_LIBS@ 12 | else 13 | libadd_for_fftw_threads= 14 | endif 15 | 16 | libnfctjulia_la_LIBADD = $(top_builddir)/libnfft3@PREC_SUFFIX@_julia.la $(libadd_for_fftw_threads) @fftw3_LIBS@ 17 | libnfctjulia_la_LDFLAGS = -no-undefined -shared -avoid-version @fftw3_LDFLAGS@ 18 | 19 | EXTRA_DIST = NFCT.jl simple_test_1d.jl simple_test_2d.jl simple_test_3d.jl 20 | 21 | libnfctjulia-link: all-am 22 | soname=`$(EGREP) "^dlname=" libnfctjulia.la | $(SED) -e "s|^dlname='\(.*\)'|\1|"` ; \ 23 | rm -f "$$soname"; \ 24 | $(LN_S) ".libs/$$soname" "./$$soname" 25 | 26 | clean-libnfctjulia-link: 27 | soname=`$(EGREP) "^dlname=" libnfctjulia.la | $(SED) -e "s|^dlname='\(.*\)'|\1|"`; \ 28 | rm -f "$$soname" 29 | 30 | all: all-am libnfctjulia-link 31 | 32 | clean: clean-libnfctjulia-link clean-am 33 | -------------------------------------------------------------------------------- /julia/nfft/Makefile.am: -------------------------------------------------------------------------------- 1 | .PHONY: libnfftjulia-link clean-libnfftjulia-link 2 | 3 | # compiler flags 4 | AM_CPPFLAGS = -I$(top_srcdir)/include 5 | 6 | # library 7 | lib_LTLIBRARIES = libnfftjulia.la 8 | libnfftjulia_la_SOURCES = libnfftjulia.c 9 | 10 | if ENABLE_OPENMP 11 | libadd_for_fftw_threads=@fftw3_LIBS_omp@ @fftw3_LIBS@ 12 | else 13 | libadd_for_fftw_threads= 14 | endif 15 | 16 | libnfftjulia_la_LIBADD = $(top_builddir)/libnfft3@PREC_SUFFIX@_julia.la $(libadd_for_fftw_threads) @fftw3_LIBS@ 17 | libnfftjulia_la_LDFLAGS = -no-undefined -shared -avoid-version @fftw3_LDFLAGS@ 18 | 19 | EXTRA_DIST = NFFT.jl simple_test_1d.jl simple_test_2d.jl simple_test_3d.jl README.md 20 | 21 | libnfftjulia-link: all-am 22 | soname=`$(EGREP) "^dlname=" libnfftjulia.la | $(SED) -e "s|^dlname='\(.*\)'|\1|"` ; \ 23 | rm -f "$$soname"; \ 24 | $(LN_S) ".libs/$$soname" "./$$soname" 25 | 26 | clean-libnfftjulia-link: 27 | soname=`$(EGREP) "^dlname=" libnfftjulia.la | $(SED) -e "s|^dlname='\(.*\)'|\1|"`; \ 28 | rm -f "$$soname" 29 | 30 | all: all-am libnfftjulia-link 31 | 32 | clean: clean-libnfftjulia-link clean-am 33 | -------------------------------------------------------------------------------- /julia/nfft/README.md: -------------------------------------------------------------------------------- 1 | Julia NFFT Interface 2 | ==================== 3 | 4 | General Remarks 5 | --------------- 6 | 7 | * This interface was tested with Julia 1.0.0 and Julia 1.1.0. It does not work with previous versions due to significant changes. 8 | * You can enable compilation of the required library by adding `--enable-julia` to the configure call. Please consult the main README for further information. 9 | * The C library does not depend on your Julia installation. 10 | 11 | Path 12 | ----- 13 | 14 | The NFFT module contains the path to the shared library. You don't have to adjust the variable `lib_path` unless you want to keep the `libnfftjulia.so` in a different directory- 15 | 16 | In order to load the NFFT module in Julia, you have to add the directory to the `LOAD_PATH` which would look like `push!(LOAD_PATH, "/path/to/nfft/julia/nfft/")`. 17 | -------------------------------------------------------------------------------- /julia/nfsft/Makefile.am: -------------------------------------------------------------------------------- 1 | .PHONY: libnfsftjulia-link clean-libnfsftjulia-link 2 | 3 | # compiler flags 4 | AM_CPPFLAGS = -I$(top_srcdir)/include 5 | 6 | # library 7 | lib_LTLIBRARIES = libnfsftjulia.la 8 | libnfsftjulia_la_SOURCES = libnfsftjulia.c 9 | 10 | if ENABLE_OPENMP 11 | libadd_for_fftw_threads=@fftw3_LIBS_omp@ @fftw3_LIBS@ 12 | else 13 | libadd_for_fftw_threads= 14 | endif 15 | 16 | libnfsftjulia_la_LIBADD = $(top_builddir)/libnfft3@PREC_SUFFIX@_julia.la $(libadd_for_fftw_threads) @fftw3_LIBS@ 17 | libnfsftjulia_la_LDFLAGS = -no-undefined -shared -avoid-version @fftw3_LDFLAGS@ 18 | 19 | EXTRA_DIST = NFSFT.jl simple_test.jl 20 | 21 | libnfsftjulia-link: all-am 22 | soname=`$(EGREP) "^dlname=" libnfsftjulia.la | $(SED) -e "s|^dlname='\(.*\)'|\1|"` ; \ 23 | rm -f "$$soname"; \ 24 | $(LN_S) ".libs/$$soname" "./$$soname" 25 | 26 | clean-libnfsftjulia-link: 27 | soname=`$(EGREP) "^dlname=" libnfsftjulia.la | $(SED) -e "s|^dlname='\(.*\)'|\1|"`; \ 28 | rm -f "$$soname" 29 | 30 | all: all-am libnfsftjulia-link 31 | 32 | clean: clean-libnfsftjulia-link clean-am 33 | -------------------------------------------------------------------------------- /julia/nfst/Makefile.am: -------------------------------------------------------------------------------- 1 | .PHONY: libnfstjulia-link clean-libnfstjulia-link 2 | 3 | # compiler flags 4 | AM_CPPFLAGS = -I$(top_srcdir)/include 5 | 6 | # library 7 | lib_LTLIBRARIES = libnfstjulia.la 8 | libnfstjulia_la_SOURCES = libnfstjulia.c 9 | 10 | if ENABLE_OPENMP 11 | libadd_for_fftw_threads=@fftw3_LIBS_omp@ @fftw3_LIBS@ 12 | else 13 | libadd_for_fftw_threads= 14 | endif 15 | 16 | libnfstjulia_la_LIBADD = $(top_builddir)/libnfft3@PREC_SUFFIX@_julia.la $(libadd_for_fftw_threads) @fftw3_LIBS@ 17 | libnfstjulia_la_LDFLAGS = -no-undefined -shared -avoid-version @fftw3_LDFLAGS@ 18 | 19 | EXTRA_DIST = NFST.jl simple_test_1d.jl simple_test_2d.jl simple_test_3d.jl 20 | 21 | libnfstjulia-link: all-am 22 | soname=`$(EGREP) "^dlname=" libnfstjulia.la | $(SED) -e "s|^dlname='\(.*\)'|\1|"` ; \ 23 | rm -f "$$soname"; \ 24 | $(LN_S) ".libs/$$soname" "./$$soname" 25 | 26 | clean-libnfstjulia-link: 27 | soname=`$(EGREP) "^dlname=" libnfstjulia.la | $(SED) -e "s|^dlname='\(.*\)'|\1|"`; \ 28 | rm -f "$$soname" 29 | 30 | all: all-am libnfstjulia-link 31 | 32 | clean: clean-libnfstjulia-link clean-am 33 | -------------------------------------------------------------------------------- /kernel/fpt/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | if ENABLE_OPENMP 4 | LIBFPT_THREADS_LA = libfpt_threads.la 5 | else 6 | LIBFPT_THREADS_LA = 7 | endif 8 | 9 | noinst_LTLIBRARIES = libfpt.la $(LIBFPT_THREADS_LA) 10 | 11 | libfpt_la_SOURCES = fpt.c 12 | 13 | noinst_HEADERS = fpt.h 14 | 15 | if ENABLE_OPENMP 16 | libfpt_threads_la_SOURCES = fpt.c 17 | libfpt_threads_la_CFLAGS = $(OPENMP_CFLAGS) 18 | libfpt_threads_la_LDLAGS = $(OPENMP_CFLAGS) 19 | endif 20 | 21 | -------------------------------------------------------------------------------- /kernel/mri/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_LTLIBRARIES = libmri.la 4 | 5 | libmri_la_SOURCES = mri.c 6 | -------------------------------------------------------------------------------- /kernel/nfct/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_LTLIBRARIES = libnfct.la 4 | 5 | libnfct_la_SOURCES = nfct.c 6 | 7 | -------------------------------------------------------------------------------- /kernel/nfft/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | if ENABLE_OPENMP 4 | LIBNFFT_THREADS_LA = libnfft_threads.la 5 | else 6 | LIBNFFT_THREADS_LA = 7 | endif 8 | 9 | noinst_LTLIBRARIES = libnfft.la $(LIBNFFT_THREADS_LA) 10 | libnfft_la_SOURCES = nfft.c 11 | 12 | if ENABLE_OPENMP 13 | libnfft_threads_la_SOURCES = nfft.c 14 | libnfft_threads_la_CFLAGS = $(OPENMP_CFLAGS) 15 | libnfft_threads_la_LDLAGS = $(OPENMP_CFLAGS) 16 | endif 17 | -------------------------------------------------------------------------------- /kernel/nfsft/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | if ENABLE_OPENMP 4 | LIBNFSFT_THREADS_LA = libnfsft_threads.la 5 | else 6 | LIBNFSFT_THREADS_LA = 7 | endif 8 | 9 | noinst_LTLIBRARIES = libnfsft.la $(LIBNFSFT_THREADS_LA) 10 | libnfsft_la_SOURCES = nfsft.c legendre.h legendre.c api.h 11 | 12 | if ENABLE_OPENMP 13 | libnfsft_threads_la_SOURCES = nfsft.c legendre.h legendre.c api.h 14 | libnfsft_threads_la_CFLAGS = $(OPENMP_CFLAGS) 15 | libnfsft_threads_la_LDLAGS = $(OPENMP_CFLAGS) 16 | endif 17 | 18 | -------------------------------------------------------------------------------- /kernel/nfsoft/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | if ENABLE_OPENMP 4 | LIBNFSOFT_THREADS_LA = libnfsoft_threads.la 5 | else 6 | LIBNFSOFT_THREADS_LA = 7 | endif 8 | 9 | noinst_LTLIBRARIES = libnfsoft.la $(LIBNFSOFT_THREADS_LA) 10 | libnfsoft_la_SOURCES = nfsoft.c wigner.h wigner.c 11 | 12 | if ENABLE_OPENMP 13 | libnfsoft_threads_la_SOURCES = nfsoft.c wigner.h wigner.c 14 | libnfsoft_threads_la_CFLAGS = $(OPENMP_CFLAGS) 15 | libnfsoft_threads_la_LDLAGS = $(OPENMP_CFLAGS) 16 | endif -------------------------------------------------------------------------------- /kernel/nfst/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_LTLIBRARIES = libnfst.la 4 | 5 | libnfst_la_SOURCES = nfst.c 6 | 7 | -------------------------------------------------------------------------------- /kernel/nnfft/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_LTLIBRARIES = libnnfft.la 4 | 5 | libnnfft_la_SOURCES = nnfft.c 6 | 7 | -------------------------------------------------------------------------------- /kernel/nsfft/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_LTLIBRARIES = libnsfft.la 4 | 5 | libnsfft_la_SOURCES = nsfft.c 6 | 7 | -------------------------------------------------------------------------------- /kernel/solver/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | noinst_LTLIBRARIES = libsolver.la 4 | libsolver_la_SOURCES = solver.c 5 | -------------------------------------------------------------------------------- /kernel/util/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | 3 | if ENABLE_OPENMP 4 | LIBUTIL_THREADS_LA = libutil_threads.la 5 | else 6 | LIBUTIL_THREADS_LA = 7 | endif 8 | 9 | noinst_LTLIBRARIES = libutil.la $(LIBUTIL_THREADS_LA) 10 | libutil_la_SOURCES = malloc.c sinc.c lambda.c bessel_i0.c float.c int.c error.c bspline.c assert.c sort.c rand.c vector1.c vector2.c vector3.c print.c damp.c thread.c time.c window.c version.c 11 | # Unused file: voronoi.c 12 | 13 | if ENABLE_OPENMP 14 | libutil_threads_la_SOURCES = $(libutil_la_SOURCES) 15 | libutil_threads_la_CFLAGS = $(OPENMP_CFLAGS) 16 | libutil_threads_la_LDLAGS = $(OPENMP_CFLAGS) 17 | endif 18 | -------------------------------------------------------------------------------- /m4/amx_prog_as.m4: -------------------------------------------------------------------------------- 1 | AC_DEFUN([AMX_PROG_AS], 2 | [# By default we simply use the C compiler to build assembly code. 3 | AC_REQUIRE([AC_PROG_CC]) 4 | AS="$CC" 5 | ASFLAGS="" 6 | AC_SUBST(AS) 7 | AC_SUBST(ASFLAGS) 8 | CCAS="$CC" 9 | CCASFLAGS="" 10 | AC_SUBST(CCAS) 11 | AC_SUBST(CCASFLAGS)]) 12 | -------------------------------------------------------------------------------- /m4/ax_cc_blocks.m4: -------------------------------------------------------------------------------- 1 | dnl @synopsis AX_CC_BLOCKS 2 | dnl @summary check if compiler supports blocks 3 | dnl @category Misc 4 | dnl 5 | dnl This macro checks whether the C compiler supports blocks. If it does, the 6 | dnl cache variable $ax_cv_c_cc_blocks is set to "yes", otherwise it is set to 7 | dnl "no". 8 | dnl 9 | dnl @version 2009-09-14 10 | dnl @license GPLWithACException 11 | dnl @author Jens Keiner . 12 | AC_DEFUN([AX_CC_BLOCKS], 13 | [ 14 | AC_CACHE_CHECK([whether $CC supports blocks], ax_cv_c_cc_blocks, 15 | [ 16 | AC_COMPILE_IFELSE( 17 | [AC_LANG_SOURCE( 18 | [AC_LANG_PROGRAM(,[[ 19 | void (^my_block)(void); 20 | my_block = ^(void){}; 21 | my_block(); 22 | ]])], 23 | [ax_cv_c_cc_blocks="yes"], 24 | [ax_cv_c_cc_blocks="no"]) 25 | ]) 26 | ]) 27 | ]) 28 | -------------------------------------------------------------------------------- /m4/ax_check_dir.m4: -------------------------------------------------------------------------------- 1 | dnl @synopsis AX_CHECK_DIR(DIR, [ACTION-SUCCESS], [ACTION-FAILURE]) 2 | dnl @summary check for directory DIR 3 | dnl @category Misc 4 | dnl 5 | dnl Check whether the directory DIR exists. 6 | dnl 7 | dnl ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on 8 | dnl success/failure. 9 | dnl 10 | dnl @version 2008-12-07 11 | dnl @license GPLWithACException 12 | dnl @author Jens Keiner . 13 | AC_DEFUN([AX_CHECK_DIR], 14 | [ 15 | AC_MSG_CHECKING([whether directory $1 exists]) 16 | if test -d "$1"; then 17 | AC_MSG_RESULT(yes) 18 | m4_default([$2], :) 19 | else 20 | AC_MSG_RESULT(no) 21 | m4_default([$3], :) 22 | fi 23 | ])dnl AX_CHECK_DIR 24 | -------------------------------------------------------------------------------- /m4/ax_nfft_module.m4: -------------------------------------------------------------------------------- 1 | AC_DEFUN([AX_NFFT_MODULE], 2 | [ 3 | nfft_module_default_local=$nfft_module_default 4 | if test "x$PRECISION" = "xs" -o "x$PRECISION" = "xl"; then 5 | if test "x$4" = "xno"; then 6 | nfft_module_default_local="no" 7 | fi 8 | fi 9 | AC_ARG_ENABLE($1, [AS_HELP_STRING([--enable-]$1,[build ]$2[ module (]$3[)])], 10 | ok=$enableval, ok=$nfft_module_default_local) 11 | AC_MSG_CHECKING([Whether to compile $2 module]) 12 | if m4_default($7,test "x$ok" = "xyes"); then 13 | AC_MSG_RESULT([yes]) 14 | if test "x$PRECISION" = "xs" -o "x$PRECISION" = "xl"; then 15 | if test "x$4" = "xno"; then 16 | AC_MSG_ERROR([The $2 module cannot be used with the selected floating point precision.]) 17 | fi 18 | fi 19 | AC_DEFINE(HAVE_$2, 1, [Define to enable ]$2[module.]) 20 | HAVE_$2="#define HAVE_$2 1" 21 | $5 22 | else 23 | AC_MSG_RESULT([no]) 24 | HAVE_$2="#undef HAVE_$2" 25 | $6 26 | fi 27 | AM_CONDITIONAL(HAVE_$2, m4_default($7,test "x$ok" = "xyes")) 28 | AC_SUBST(HAVE_$2) 29 | ]) -------------------------------------------------------------------------------- /matlab/Makefile.am: -------------------------------------------------------------------------------- 1 | if HAVE_FPT 2 | DIR_FPT=fpt 3 | else 4 | DIR_FPT= 5 | endif 6 | 7 | if HAVE_NFSFT 8 | DIR_NFSFT=nfsft 9 | else 10 | DIR_NFSFT= 11 | endif 12 | 13 | if HAVE_NFSOFT 14 | DIR_NFSOFT=nfsoft 15 | else 16 | DIR_NFSOFT= 17 | endif 18 | 19 | DIR_NFFT=nfft 20 | 21 | if HAVE_NFCT 22 | DIR_NFCT=nfct 23 | else 24 | DIR_NFCT= 25 | endif 26 | 27 | if HAVE_NFST 28 | DIR_NFST=nfst 29 | else 30 | DIR_NFST= 31 | endif 32 | 33 | if HAVE_NNFFT 34 | DIR_NNFFT=nnfft 35 | else 36 | DIR_NNFFT= 37 | endif 38 | 39 | DIR_FASTSUM=fastsum 40 | DIR_INFFT1D=infft1d 41 | 42 | SUBDIRS = . $(DIR_NFFT) $(DIR_NFCT) $(DIR_NFST) $(DIR_NFSFT) $(DIR_NFSOFT) $(DIR_NNFFT) $(DIR_FASTSUM) $(DIR_INFFT1D) $(DIR_FPT) tests 43 | 44 | AM_CPPFLAGS = -I$(top_srcdir)/include $(matlab_CPPFLAGS) 45 | 46 | noinst_LTLIBRARIES = libmatlab.la 47 | 48 | libmatlab_la_SOURCES = args.c malloc.c imex.h 49 | 50 | if HAVE_MATLAB_THREADS 51 | libmatlab_la_CFLAGS = $(OPENMP_CFLAGS) 52 | endif 53 | 54 | EXTRA_DIST = README 55 | -------------------------------------------------------------------------------- /matlab/README: -------------------------------------------------------------------------------- 1 | This directory contains Matlab interfaces to the NFFT library. 2 | -------------------------------------------------------------------------------- /matlab/fastsum/Contents.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NFFT/nfft/b4dae236151fe7391347bcc7366d23d82a84ae1c/matlab/fastsum/Contents.m -------------------------------------------------------------------------------- /matlab/fastsum/EXACT_NEARFIELD.m: -------------------------------------------------------------------------------- 1 | % EXACT_NEARFIELD 2 | % Return identity. 3 | % 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | 6 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 7 | % 8 | % This program is free software; you can redistribute it and/or modify it under 9 | % the terms of the GNU General Public License as published by the Free Software 10 | % Foundation; either version 2 of the License, or (at your option) any later 11 | % version. 12 | % 13 | % This program is distributed in the hope that it will be useful, but WITHOUT 14 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 15 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 16 | % details. 17 | % 18 | % You should have received a copy of the GNU General Public License along with 19 | % this program; if not, write to the Free Software Foundation, Inc., 51 20 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 | function f = EXACT_NEARFIELD() 22 | f = 1; -------------------------------------------------------------------------------- /matlab/fastsum/NEARFIELD_BOXES.m: -------------------------------------------------------------------------------- 1 | %NEARFIELD_BOXES 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = NEARFIELD_BOXES() 20 | f = 2; -------------------------------------------------------------------------------- /matlab/fastsum/fastsum_finalize.m: -------------------------------------------------------------------------------- 1 | %FASTSUM_FINALIZE Finalize plan. 2 | % 3 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 4 | 5 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 6 | % 7 | % This program is free software; you can redistribute it and/or modify it under 8 | % the terms of the GNU General Public License as published by the Free Software 9 | % Foundation; either version 2 of the License, or (at your option) any later 10 | % version. 11 | % 12 | % This program is distributed in the hope that it will be useful, but WITHOUT 13 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 14 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 15 | % details. 16 | % 17 | % You should have received a copy of the GNU General Public License along with 18 | % this program; if not, write to the Free Software Foundation, Inc., 51 19 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | function f = fastsum_finalize(plan) 21 | fastsummex('finalize',plan); -------------------------------------------------------------------------------- /matlab/fastsum/fastsum_get_f.m: -------------------------------------------------------------------------------- 1 | %FASTSUM_GET_F Get function values from plan. 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = fastsum_get_f(plan) 20 | f = fastsummex('get_f',plan); -------------------------------------------------------------------------------- /matlab/fastsum/fastsum_init.m: -------------------------------------------------------------------------------- 1 | %FASTSUM_INIT Initialise plan. 2 | % 3 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 4 | 5 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 6 | % 7 | % This program is free software; you can redistribute it and/or modify it under 8 | % the terms of the GNU General Public License as published by the Free Software 9 | % Foundation; either version 2 of the License, or (at your option) any later 10 | % version. 11 | % 12 | % This program is distributed in the hope that it will be useful, but WITHOUT 13 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 14 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 15 | % details. 16 | % 17 | % You should have received a copy of the GNU General Public License along with 18 | % this program; if not, write to the Free Software Foundation, Inc., 51 19 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | function plan=fastsum_init(d,kernel,c,flags,n,p,eps_I,eps_B) 21 | plan = fastsummex('init',d,kernel,c,flags,n,p,eps_I,eps_B); 22 | -------------------------------------------------------------------------------- /matlab/fastsum/fastsum_set_alpha.m: -------------------------------------------------------------------------------- 1 | %FASTSUM_SET_ALPHA Set source coefficients. 2 | % 3 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 4 | 5 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 6 | % 7 | % This program is free software; you can redistribute it and/or modify it under 8 | % the terms of the GNU General Public License as published by the Free Software 9 | % Foundation; either version 2 of the License, or (at your option) any later 10 | % version. 11 | % 12 | % This program is distributed in the hope that it will be useful, but WITHOUT 13 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 14 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 15 | % details. 16 | % 17 | % You should have received a copy of the GNU General Public License along with 18 | % this program; if not, write to the Free Software Foundation, Inc., 51 19 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | function fastsum_set_alpha(plan,alpha) 21 | fastsummex('set_alpha',plan,alpha); -------------------------------------------------------------------------------- /matlab/fastsum/fastsum_set_x.m: -------------------------------------------------------------------------------- 1 | %FASTSUM_SET_X Set source nodes in plan. 2 | % 3 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 4 | 5 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 6 | % 7 | % This program is free software; you can redistribute it and/or modify it under 8 | % the terms of the GNU General Public License as published by the Free Software 9 | % Foundation; either version 2 of the License, or (at your option) any later 10 | % version. 11 | % 12 | % This program is distributed in the hope that it will be useful, but WITHOUT 13 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 14 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 15 | % details. 16 | % 17 | % You should have received a copy of the GNU General Public License along with 18 | % this program; if not, write to the Free Software Foundation, Inc., 51 19 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | function fastsum_set_x(plan,x,nn_oversampled,m) 21 | fastsummex('set_x',plan,x,nn_oversampled,m); 22 | -------------------------------------------------------------------------------- /matlab/fastsum/fastsum_set_y.m: -------------------------------------------------------------------------------- 1 | %FASTSUM_SET_Y Set target nodes in plan. 2 | % 3 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 4 | 5 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 6 | % 7 | % This program is free software; you can redistribute it and/or modify it under 8 | % the terms of the GNU General Public License as published by the Free Software 9 | % Foundation; either version 2 of the License, or (at your option) any later 10 | % version. 11 | % 12 | % This program is distributed in the hope that it will be useful, but WITHOUT 13 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 14 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 15 | % details. 16 | % 17 | % You should have received a copy of the GNU General Public License along with 18 | % this program; if not, write to the Free Software Foundation, Inc., 51 19 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | function fastsum_set_y(plan,y,nn_oversampled,m) 21 | fastsummex('set_y',plan,y,nn_oversampled,m); -------------------------------------------------------------------------------- /matlab/fastsum/fastsum_trafo.m: -------------------------------------------------------------------------------- 1 | %FASTSUM_TRAFO Finalize plan. 2 | % 3 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 4 | 5 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 6 | % 7 | % This program is free software; you can redistribute it and/or modify it under 8 | % the terms of the GNU General Public License as published by the Free Software 9 | % Foundation; either version 2 of the License, or (at your option) any later 10 | % version. 11 | % 12 | % This program is distributed in the hope that it will be useful, but WITHOUT 13 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 14 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 15 | % details. 16 | % 17 | % You should have received a copy of the GNU General Public License along with 18 | % this program; if not, write to the Free Software Foundation, Inc., 51 19 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | function fastsum_trafo(plan) 21 | fastsummex('trafo',plan); -------------------------------------------------------------------------------- /matlab/fastsum/fastsum_trafo_direct.m: -------------------------------------------------------------------------------- 1 | %FASTSUM_TRAFO_DIRECT Finalize plan. 2 | % 3 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 4 | 5 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 6 | % 7 | % This program is free software; you can redistribute it and/or modify it under 8 | % the terms of the GNU General Public License as published by the Free Software 9 | % Foundation; either version 2 of the License, or (at your option) any later 10 | % version. 11 | % 12 | % This program is distributed in the hope that it will be useful, but WITHOUT 13 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 14 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 15 | % details. 16 | % 17 | % You should have received a copy of the GNU General Public License along with 18 | % this program; if not, write to the Free Software Foundation, Inc., 51 19 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | function fastsum_trafo_direct(plan) 21 | fastsummex('trafo_direct',plan); -------------------------------------------------------------------------------- /matlab/fpt/FPT_AL_SYMMETRY.m: -------------------------------------------------------------------------------- 1 | %FPT_AL_SYMMETRY Flag 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = FPT_AL_SYMMETRY() 20 | 21 | f = bitshift(1, 6); 22 | -------------------------------------------------------------------------------- /matlab/fpt/FPT_NO_DIRECT_ALGORITHM.m: -------------------------------------------------------------------------------- 1 | %FPT_NO_DIRECT_ALGORITHM Flag for not precomputing for the direct algorithm 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = FPT_NO_DIRECT_ALGORITHM() 20 | 21 | f = bitshift(1, 3); 22 | -------------------------------------------------------------------------------- /matlab/fpt/FPT_NO_FAST_ALGORITHM.m: -------------------------------------------------------------------------------- 1 | %FPT_NO_FAST_ALGORITHM Flag for not precomputing for the fast algorithm 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = FPT_NO_FAST_ALGORITHM() 20 | 21 | f = bitshift(1, 2); 22 | -------------------------------------------------------------------------------- /matlab/fpt/FPT_NO_STABILIZATION.m: -------------------------------------------------------------------------------- 1 | %FPT_NO_STABILIZATION Flag for not using stabilization 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = FPT_NO_STABILIZATION() 20 | 21 | f = bitshift(1, 0); 22 | -------------------------------------------------------------------------------- /matlab/fpt/fpt_finalize.m: -------------------------------------------------------------------------------- 1 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 2 | % 3 | % This program is free software; you can redistribute it and/or modify it under 4 | % the terms of the GNU General Public License as published by the Free Software 5 | % Foundation; either version 2 of the License, or (at your option) any later 6 | % version. 7 | % 8 | % This program is distributed in the hope that it will be useful, but WITHOUT 9 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 11 | % details. 12 | % 13 | % You should have received a copy of the GNU General Public License along with 14 | % this program; if not, write to the Free Software Foundation, Inc., 51 15 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 | function fpt_finalize(fpt_set) 17 | 18 | fptmex('finalize',fpt_set); 19 | 20 | end 21 | -------------------------------------------------------------------------------- /matlab/fpt/fpt_init.m: -------------------------------------------------------------------------------- 1 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 2 | % 3 | % This program is free software; you can redistribute it and/or modify it under 4 | % the terms of the GNU General Public License as published by the Free Software 5 | % Foundation; either version 2 of the License, or (at your option) any later 6 | % version. 7 | % 8 | % This program is distributed in the hope that it will be useful, but WITHOUT 9 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 11 | % details. 12 | % 13 | % You should have received a copy of the GNU General Public License along with 14 | % this program; if not, write to the Free Software Foundation, Inc., 51 15 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 | function fpt_set = fpt_init(t,flags) 17 | 18 | fpt_set = fptmex('init',t,flags); 19 | 20 | end 21 | -------------------------------------------------------------------------------- /matlab/fpt/fpt_precompute.m: -------------------------------------------------------------------------------- 1 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 2 | % 3 | % This program is free software; you can redistribute it and/or modify it under 4 | % the terms of the GNU General Public License as published by the Free Software 5 | % Foundation; either version 2 of the License, or (at your option) any later 6 | % version. 7 | % 8 | % This program is distributed in the hope that it will be useful, but WITHOUT 9 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 11 | % details. 12 | % 13 | % You should have received a copy of the GNU General Public License along with 14 | % this program; if not, write to the Free Software Foundation, Inc., 51 15 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 | function fpt_precompute(fpt_set,alpha,beta,gamma,k_start) 17 | 18 | fptmex('precompute',fpt_set,alpha,beta,gamma,k_start); 19 | 20 | end 21 | -------------------------------------------------------------------------------- /matlab/fpt/fpt_trafo.m: -------------------------------------------------------------------------------- 1 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 2 | % 3 | % This program is free software; you can redistribute it and/or modify it under 4 | % the terms of the GNU General Public License as published by the Free Software 5 | % Foundation; either version 2 of the License, or (at your option) any later 6 | % version. 7 | % 8 | % This program is distributed in the hope that it will be useful, but WITHOUT 9 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 11 | % details. 12 | % 13 | % You should have received a copy of the GNU General Public License along with 14 | % this program; if not, write to the Free Software Foundation, Inc., 51 15 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 | function b = fpt_trafo(fpt_set,a,k_end,flags) 17 | 18 | b = fptmex('trafo',fpt_set,a,k_end,flags); 19 | 20 | end 21 | -------------------------------------------------------------------------------- /matlab/fpt/fpt_trafo_direct.m: -------------------------------------------------------------------------------- 1 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 2 | % 3 | % This program is free software; you can redistribute it and/or modify it under 4 | % the terms of the GNU General Public License as published by the Free Software 5 | % Foundation; either version 2 of the License, or (at your option) any later 6 | % version. 7 | % 8 | % This program is distributed in the hope that it will be useful, but WITHOUT 9 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 11 | % details. 12 | % 13 | % You should have received a copy of the GNU General Public License along with 14 | % this program; if not, write to the Free Software Foundation, Inc., 51 15 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 | function b = fpt_trafo_direct(fpt_set,a,k_end,flags) 17 | 18 | b = fptmex('trafo_direct',fpt_set,a,k_end,flags); 19 | 20 | end 21 | -------------------------------------------------------------------------------- /matlab/fpt/fpt_transposed.m: -------------------------------------------------------------------------------- 1 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 2 | % 3 | % This program is free software; you can redistribute it and/or modify it under 4 | % the terms of the GNU General Public License as published by the Free Software 5 | % Foundation; either version 2 of the License, or (at your option) any later 6 | % version. 7 | % 8 | % This program is distributed in the hope that it will be useful, but WITHOUT 9 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 11 | % details. 12 | % 13 | % You should have received a copy of the GNU General Public License along with 14 | % this program; if not, write to the Free Software Foundation, Inc., 51 15 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 | function a = fpt_transposed(fpt_set,b,k_end,flags); 17 | 18 | a = fptmex('transposed',fpt_set,b,k_end,0); 19 | 20 | end 21 | -------------------------------------------------------------------------------- /matlab/fpt/fpt_transposed_direct.m: -------------------------------------------------------------------------------- 1 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 2 | % 3 | % This program is free software; you can redistribute it and/or modify it under 4 | % the terms of the GNU General Public License as published by the Free Software 5 | % Foundation; either version 2 of the License, or (at your option) any later 6 | % version. 7 | % 8 | % This program is distributed in the hope that it will be useful, but WITHOUT 9 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 11 | % details. 12 | % 13 | % You should have received a copy of the GNU General Public License along with 14 | % this program; if not, write to the Free Software Foundation, Inc., 51 15 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 | function a = fpt_transposed_direct(fpt_set,b,k_end,flags); 17 | 18 | a = fptmex('transposed_direct',fpt_set,b,k_end,0); 19 | 20 | end 21 | -------------------------------------------------------------------------------- /matlab/infft1d/Makefile.am: -------------------------------------------------------------------------------- 1 | matlabinfft1ddir = $(datadir)/nfft/matlab/infft1d 2 | dist_matlabinfft1d_DATA = coeffs_2048.mat infft.m README simple_test.m test_adjoint.m test_overdetermined.m test_underdetermined.m 3 | -------------------------------------------------------------------------------- /matlab/infft1d/coeffs_2048.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NFFT/nfft/b4dae236151fe7391347bcc7366d23d82a84ae1c/matlab/infft1d/coeffs_2048.mat -------------------------------------------------------------------------------- /matlab/nfct/FFTW_ESTIMATE.m: -------------------------------------------------------------------------------- 1 | % FFTW_ESTIMATE FFT flag 2 | % Valid for FFTW3 3 | % 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | 6 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 7 | % 8 | % This program is free software; you can redistribute it and/or modify it under 9 | % the terms of the GNU General Public License as published by the Free Software 10 | % Foundation; either version 2 of the License, or (at your option) any later 11 | % version. 12 | % 13 | % This program is distributed in the hope that it will be useful, but WITHOUT 14 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 15 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 16 | % details. 17 | % 18 | % You should have received a copy of the GNU General Public License along with 19 | % this program; if not, write to the Free Software Foundation, Inc., 51 20 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 | function f = FFTW_ESTIMATE() 22 | 23 | f = bitshift(1, 6); 24 | -------------------------------------------------------------------------------- /matlab/nfct/FFTW_MEASURE.m: -------------------------------------------------------------------------------- 1 | %FFTW_MEASURE FFT flag 2 | % Valid for FFTW3 3 | % 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | 6 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 7 | % 8 | % This program is free software; you can redistribute it and/or modify it under 9 | % the terms of the GNU General Public License as published by the Free Software 10 | % Foundation; either version 2 of the License, or (at your option) any later 11 | % version. 12 | % 13 | % This program is distributed in the hope that it will be useful, but WITHOUT 14 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 15 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 16 | % details. 17 | % 18 | % You should have received a copy of the GNU General Public License along with 19 | % this program; if not, write to the Free Software Foundation, Inc., 51 20 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 | function f = FFTW_MEASURE() 22 | 23 | f = 0; 24 | -------------------------------------------------------------------------------- /matlab/nfct/FFT_OUT_OF_PLACE.m: -------------------------------------------------------------------------------- 1 | %FFT_OUT_OF_PLACE FFT flag 2 | % If this flag is set, FFTW uses disjoint input/output vectors. 3 | % 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | 6 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 7 | % 8 | % This program is free software; you can redistribute it and/or modify it under 9 | % the terms of the GNU General Public License as published by the Free Software 10 | % Foundation; either version 2 of the License, or (at your option) any later 11 | % version. 12 | % 13 | % This program is distributed in the hope that it will be useful, but WITHOUT 14 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 15 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 16 | % details. 17 | % 18 | % You should have received a copy of the GNU General Public License along with 19 | % this program; if not, write to the Free Software Foundation, Inc., 51 20 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 | function f = FFT_OUT_OF_PLACE() 22 | 23 | f = bitshift(1, 9); 24 | -------------------------------------------------------------------------------- /matlab/nfct/ndct_adjoint.m: -------------------------------------------------------------------------------- 1 | %NDCT_ADJOINT Adjoint nonequispaced discrete cosine transform (direct algorithm) 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function ndct_adjoint(p) 20 | 21 | nfctmex('adjoint_direct',p) 22 | -------------------------------------------------------------------------------- /matlab/nfct/ndct_trafo.m: -------------------------------------------------------------------------------- 1 | %NDCT_TRAFO Nonequispaced discrete cosine transform (direct algorithm) 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function ndct_trafo(p) 20 | 21 | nfctmex('trafo_direct',p) 22 | -------------------------------------------------------------------------------- /matlab/nfct/nfct_adjoint.m: -------------------------------------------------------------------------------- 1 | %NFCT_ADJOINT Adjoint nonequispaced fast cosine transform 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfct_adjoint(p) 20 | 21 | nfctmex('adjoint',p) 22 | -------------------------------------------------------------------------------- /matlab/nfct/nfct_finalize.m: -------------------------------------------------------------------------------- 1 | %NFCT_FINALIZE Finalize plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfct_finalize(p) 20 | 21 | nfctmex('finalize',p) 22 | -------------------------------------------------------------------------------- /matlab/nfct/nfct_get_f.m: -------------------------------------------------------------------------------- 1 | %NFCT_GET_F Get function values from plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = nfct_get_f(p) 20 | 21 | f = nfctmex('get_f',p); 22 | -------------------------------------------------------------------------------- /matlab/nfct/nfct_get_f_hat.m: -------------------------------------------------------------------------------- 1 | %NFCT_GET_F_HAT Get Fourier coefficients from plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f_hat = nfct_get_f_hat(p) 20 | 21 | f_hat = nfctmex('get_f_hat',p); 22 | -------------------------------------------------------------------------------- /matlab/nfct/nfct_get_num_threads.m: -------------------------------------------------------------------------------- 1 | %NFCT_GET_NUM_THREADS Get number of threads (at most) used for computation 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nthreads = nfct_get_num_threads() 20 | 21 | nthreads = nfctmex('get_num_threads'); 22 | -------------------------------------------------------------------------------- /matlab/nfct/nfct_get_x.m: -------------------------------------------------------------------------------- 1 | %NFCT_GET_X Get nodes from plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function x = nfct_get_x(p) 20 | 21 | x = nfctmex('get_x',p); 22 | -------------------------------------------------------------------------------- /matlab/nfct/nfct_init_1d.m: -------------------------------------------------------------------------------- 1 | %NFCT_INIT_1D Initialise plans 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nfct_init_1d(N,M) 20 | 21 | p = nfctmex('init_1d',N,M); 22 | -------------------------------------------------------------------------------- /matlab/nfct/nfct_init_2d.m: -------------------------------------------------------------------------------- 1 | %NFCT_INIT_2D Initialise plans 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nfct_init_2d(N1,N2,M) 20 | 21 | p = nfctmex('init_2d',N1,N2,M); 22 | -------------------------------------------------------------------------------- /matlab/nfct/nfct_init_3d.m: -------------------------------------------------------------------------------- 1 | %NFCT_INIT_3D Initialise plans 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nfct_init_3d(N1,N2,N3,M) 20 | 21 | p = nfctmex('init_3d',N1,N2,N3,M); 22 | -------------------------------------------------------------------------------- /matlab/nfct/nfct_set_f.m: -------------------------------------------------------------------------------- 1 | %NFCT_SET_F Set function values in plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfct_set_f(p,f) 20 | 21 | nfctmex('set_f',p,f) 22 | -------------------------------------------------------------------------------- /matlab/nfct/nfct_set_f_hat.m: -------------------------------------------------------------------------------- 1 | %NFFT_SET_F_HAT Set Fourier coefficients in plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfct_set_f_hat(p,f_hat) 20 | 21 | nfctmex('set_f_hat',p,f_hat) 22 | -------------------------------------------------------------------------------- /matlab/nfct/nfct_set_x.m: -------------------------------------------------------------------------------- 1 | %NFCT_SET_X Set nodes in plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfct_set_x(p,x) 20 | 21 | nfctmex('set_x',p,x) 22 | -------------------------------------------------------------------------------- /matlab/nfct/nfct_trafo.m: -------------------------------------------------------------------------------- 1 | %NFCT_TRAFO nonequispaced fast cosine transform 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfct_trafo(p) 20 | 21 | nfctmex('trafo',p) 22 | -------------------------------------------------------------------------------- /matlab/nfft/FFTW_ESTIMATE.m: -------------------------------------------------------------------------------- 1 | % FFTW_ESTIMATE FFT flag 2 | % Valid for FFTW3 3 | % 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | 6 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 7 | % 8 | % This program is free software; you can redistribute it and/or modify it under 9 | % the terms of the GNU General Public License as published by the Free Software 10 | % Foundation; either version 2 of the License, or (at your option) any later 11 | % version. 12 | % 13 | % This program is distributed in the hope that it will be useful, but WITHOUT 14 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 15 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 16 | % details. 17 | % 18 | % You should have received a copy of the GNU General Public License along with 19 | % this program; if not, write to the Free Software Foundation, Inc., 51 20 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 | function f = FFTW_ESTIMATE() 22 | 23 | f = bitshift(1, 6); 24 | -------------------------------------------------------------------------------- /matlab/nfft/FFTW_MEASURE.m: -------------------------------------------------------------------------------- 1 | %FFTW_MEASURE FFT flag 2 | % Valid for FFTW3 3 | % 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | 6 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 7 | % 8 | % This program is free software; you can redistribute it and/or modify it under 9 | % the terms of the GNU General Public License as published by the Free Software 10 | % Foundation; either version 2 of the License, or (at your option) any later 11 | % version. 12 | % 13 | % This program is distributed in the hope that it will be useful, but WITHOUT 14 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 15 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 16 | % details. 17 | % 18 | % You should have received a copy of the GNU General Public License along with 19 | % this program; if not, write to the Free Software Foundation, Inc., 51 20 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 | function f = FFTW_MEASURE() 22 | 23 | f = 0; 24 | -------------------------------------------------------------------------------- /matlab/nfft/FFT_OUT_OF_PLACE.m: -------------------------------------------------------------------------------- 1 | %FFT_OUT_OF_PLACE FFT flag 2 | % If this flag is set, FFTW uses disjoint input/output vectors. 3 | % 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | 6 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 7 | % 8 | % This program is free software; you can redistribute it and/or modify it under 9 | % the terms of the GNU General Public License as published by the Free Software 10 | % Foundation; either version 2 of the License, or (at your option) any later 11 | % version. 12 | % 13 | % This program is distributed in the hope that it will be useful, but WITHOUT 14 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 15 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 16 | % details. 17 | % 18 | % You should have received a copy of the GNU General Public License along with 19 | % this program; if not, write to the Free Software Foundation, Inc., 51 20 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 | function f = FFT_OUT_OF_PLACE() 22 | 23 | f = bitshift(1, 9); 24 | -------------------------------------------------------------------------------- /matlab/nfft/ndft_adjoint.m: -------------------------------------------------------------------------------- 1 | %NDFT_ADJOINT Adjoint nonequispaced discrete Fourier transform (direct algorithm) 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function ndft_adjoint(p) 20 | 21 | nfftmex('adjoint_direct',p) 22 | -------------------------------------------------------------------------------- /matlab/nfft/ndft_trafo.m: -------------------------------------------------------------------------------- 1 | %NDFT_TRAFO Nonequispaced discrete Fourier transformation (direct algorithm) 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function ndft_trafo(p) 20 | 21 | nfftmex('trafo_direct',p) 22 | -------------------------------------------------------------------------------- /matlab/nfft/nfft_adjoint.m: -------------------------------------------------------------------------------- 1 | %NFFT_ADJOINT Adjoint nonequispaced fast Fourier transform 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfft_adjoint(p) 20 | 21 | nfftmex('adjoint',p) 22 | -------------------------------------------------------------------------------- /matlab/nfft/nfft_finalize.m: -------------------------------------------------------------------------------- 1 | %NFFT_FINALIZE Finalize plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfft_finalize(p) 20 | 21 | nfftmex('finalize',p) 22 | -------------------------------------------------------------------------------- /matlab/nfft/nfft_get_f.m: -------------------------------------------------------------------------------- 1 | %NFFT_GET_F Get function values from plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = nfft_get_f(p) 20 | 21 | f = nfftmex('get_f',p); 22 | -------------------------------------------------------------------------------- /matlab/nfft/nfft_get_f_hat.m: -------------------------------------------------------------------------------- 1 | %NFFT_GET_F_HAT Get Fourier coefficients from plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f_hat = nfft_get_f_hat(p) 20 | 21 | f_hat = nfftmex('get_f_hat',p); 22 | -------------------------------------------------------------------------------- /matlab/nfft/nfft_get_x.m: -------------------------------------------------------------------------------- 1 | %NFFT_GET_X Get nodes from plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function x = nfft_get_x(p) 20 | 21 | x = nfftmex('get_x',p); 22 | -------------------------------------------------------------------------------- /matlab/nfft/nfft_init.m: -------------------------------------------------------------------------------- 1 | %NFFT_INIT Initialise plans 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nfft_init(N,M) 20 | 21 | p = nfftmex('init',N,M); 22 | -------------------------------------------------------------------------------- /matlab/nfft/nfft_init_1d.m: -------------------------------------------------------------------------------- 1 | %NFFT_INIT_1D Initialise plans 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nfft_init_1d(N,M) 20 | 21 | p = nfftmex('init_1d',N,M); 22 | -------------------------------------------------------------------------------- /matlab/nfft/nfft_init_2d.m: -------------------------------------------------------------------------------- 1 | %NFFT_INIT_2D Initialise plans 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nfft_init_2d(N1,N2,M) 20 | 21 | p = nfftmex('init_2d',N1,N2,M); 22 | -------------------------------------------------------------------------------- /matlab/nfft/nfft_init_3d.m: -------------------------------------------------------------------------------- 1 | %NFFT_INIT_3D Initialise plans 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nfft_init_3d(N1,N2,N3,M) 20 | 21 | p = nfftmex('init_3d',N1,N2,N3,M); 22 | -------------------------------------------------------------------------------- /matlab/nfft/nfft_precompute_psi.m: -------------------------------------------------------------------------------- 1 | %NFFT_PRECOMPUTE_PSI Precompute psi, dependent on nodes x 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfft_precompute_psi(p) 20 | 21 | nfftmex('precompute_psi',p) 22 | -------------------------------------------------------------------------------- /matlab/nfft/nfft_set_f.m: -------------------------------------------------------------------------------- 1 | %NFFT_SET_F Set function values in plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfft_set_f(p,f) 20 | 21 | nfftmex('set_f',p,f) 22 | -------------------------------------------------------------------------------- /matlab/nfft/nfft_set_f_hat.m: -------------------------------------------------------------------------------- 1 | %NFFT_SET_F_HAT Set Fourier coefficients in plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfft_set_f_hat(p,f_hat) 20 | 21 | nfftmex('set_f_hat',p,f_hat) 22 | -------------------------------------------------------------------------------- /matlab/nfft/nfft_set_x.m: -------------------------------------------------------------------------------- 1 | %NFFT_SET_X Set nodes in plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfft_set_x(p,x) 20 | 21 | nfftmex('set_x',p,x) 22 | -------------------------------------------------------------------------------- /matlab/nfft/nfft_trafo.m: -------------------------------------------------------------------------------- 1 | %NFFT_TRAFO nonequispaced fast Fourier transformat 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfft_trafo(p) 20 | 21 | nfftmex('trafo',p) 22 | -------------------------------------------------------------------------------- /matlab/nfft/nfftmex.m: -------------------------------------------------------------------------------- 1 | %NFFTMEX Gateway function to NFFT module from NFFT3 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | % 20 | -------------------------------------------------------------------------------- /matlab/nfsft/@f_hat/Makefile.am: -------------------------------------------------------------------------------- 1 | nfsftmatlabdir = $(datadir)/nfft/matlab/nfsft/@f_hat 2 | 3 | dist_nfsftmatlab_DATA = char.m display.m double.m f_hat.m minus.m mtimes.m mtimesr.m norm.m plus.m subsasgn.m subsref.m 4 | 5 | # EXTRA_DIST = char.m display.m double.m f_hat.m minus.m mtimes.m mtimesr.m norm.m plus.m subsasgn.m subsref.m 6 | -------------------------------------------------------------------------------- /matlab/nfsft/@f_hat/norm.m: -------------------------------------------------------------------------------- 1 | %NORM Norm for f_hat class 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function y = norm(p,n) 20 | % Norm for f_hat class 21 | p = f_hat(p); 22 | y = norm(p.f_hat); 23 | -------------------------------------------------------------------------------- /matlab/nfsft/NFSFT_EQUISPACED.m: -------------------------------------------------------------------------------- 1 | %NFSFT_USE_FSFT Flag for using the FSFT algorithm 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = NFSFT_EQUISPACED() 20 | f = 2^17; 21 | -------------------------------------------------------------------------------- /matlab/nfsft/NFSFT_NORMALIZED.m: -------------------------------------------------------------------------------- 1 | %NFSFT_NORMALIZED Flag for using L^2-normalized Spherical harmonics 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = NFSFT_NORMALIZED() 20 | f = 1; 21 | -------------------------------------------------------------------------------- /matlab/nfsft/NFSFT_NO_DIRECT_ALGORITHM.m: -------------------------------------------------------------------------------- 1 | %NFSFT_NO_DIRECT_ALGORITHM Flag for not precomputing for the direct algorithm 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = NFSFT_NO_DIRECT_ALGORITHM() 20 | f = 8192; 21 | -------------------------------------------------------------------------------- /matlab/nfsft/NFSFT_NO_FAST_ALGORITHM.m: -------------------------------------------------------------------------------- 1 | %NFSFT_NO_FAST_ALGORITHM Flag for not precomputing for the fast algorithm 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = NFSFT_NO_FAST_ALGORITHM() 20 | f = 16384; 21 | -------------------------------------------------------------------------------- /matlab/nfsft/NFSFT_PRESERVE_F_HAT.m: -------------------------------------------------------------------------------- 1 | %NFSFT_PRESERVE_F_HAT Flag for NFSFT not destroying input in f_hat 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = NFSFT_PRESERVE_F_HAT() 20 | f = 128; 21 | -------------------------------------------------------------------------------- /matlab/nfsft/NFSFT_USE_DPT.m: -------------------------------------------------------------------------------- 1 | %NFSFT_USE_DPT Flag for using the DPT algorithm internally 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = NFSFT_USE_DPT() 20 | 21 | f = 4; 22 | -------------------------------------------------------------------------------- /matlab/nfsft/NFSFT_USE_NDFT.m: -------------------------------------------------------------------------------- 1 | %NFSFT_USE_NDFT Flag for using the NDFT algorithm internally 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = NFSFT_USE_NDFT() 20 | f = 2; 21 | -------------------------------------------------------------------------------- /matlab/nfsft/lgwt.m: -------------------------------------------------------------------------------- 1 | % The following function is based on code by Greg von Winckel, 02/25/2004 2 | % See: TODO Add references. 3 | function [x,w] = lgwt(n,a,b) 4 | 5 | n = n-1; n1= n + 1; n2 = n + 2; 6 | % n1 uniform nodes in [-1,1] 7 | xu = linspace(-1,1,n1)'; 8 | % initial guess for nodes 9 | y=cos((2*(0:n)'+1)*pi/(2*n+2)) + (0.27/n1)*sin(pi*xu*n/n2); 10 | % Gauss-Legendre Vandermonde matrix 11 | L=zeros(n1,n2); 12 | % derivative of that 13 | Lp=zeros(n1,n2); 14 | % We compute the zeros of the n1th Legendre polynomial using the recursion 15 | % relation and the Newton-Raphson method. 16 | y0=2; 17 | % Iterate until new points are uniformly within epsilon of old points. 18 | while (max(abs(y - y0)) > eps) 19 | L(:,1) = 1; Lp(:,1) = 0; L(:,2) = y; Lp(:,2) = 1; 20 | for k = 2:n1 21 | L(:,k+1) = ((2*k-1)*y.*L(:,k)-(k-1)*L(:,k-1))/k; 22 | end 23 | Lp = n2 * (L(:,n1) - y.*L(:,n2))./(1-y.^2); y0 = y; y = y0 - L(:,n2)./Lp; 24 | end 25 | % linear map from[-1,1] to [a,b] 26 | x = (a*(1-y)+b*(1+y))/2; 27 | if (nargout == 2) 28 | % weights 29 | w = (b-a)./((1-y.^2).*Lp.^2)*(n2/n1)^2; 30 | end 31 | -------------------------------------------------------------------------------- /matlab/nfsft/ndsft_adjoint.m: -------------------------------------------------------------------------------- 1 | %NDSFT_ADJOINT Adjoint discrete spherical Fourier transform (direct alg.) 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function ndsft_adjoint(p) 20 | nfsftmex('adjoint_direct',p) 21 | -------------------------------------------------------------------------------- /matlab/nfsft/ndsft_trafo.m: -------------------------------------------------------------------------------- 1 | %NDSFT_TRAFO Discrete spherical Fourier transform (direct algorithm) 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function ndsft_trafo(p) 20 | nfsftmex('trafo_direct',p) 21 | -------------------------------------------------------------------------------- /matlab/nfsft/nfsft_adjoint.m: -------------------------------------------------------------------------------- 1 | %NFSFT_ADJOINT Adjoint fast spherical Fourier transform 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfsft_adjoint(p) 20 | nfsftmex('adjoint',p) 21 | -------------------------------------------------------------------------------- /matlab/nfsft/nfsft_finalize.m: -------------------------------------------------------------------------------- 1 | %NFSFT_FINALIZE Finalize plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfsft_finalize(p) 20 | nfsftmex('finalize',p) 21 | -------------------------------------------------------------------------------- /matlab/nfsft/nfsft_forget.m: -------------------------------------------------------------------------------- 1 | %NFSFT_FORGET Forget precomputed data 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfsft_forget 20 | nfsftmex('forget'); 21 | -------------------------------------------------------------------------------- /matlab/nfsft/nfsft_get_f.m: -------------------------------------------------------------------------------- 1 | %NFSFT_GET_F Get function values from plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = nfsft_get_f(p) 20 | f = nfsftmex('get_f',p); 21 | -------------------------------------------------------------------------------- /matlab/nfsft/nfsft_get_f_hat.m: -------------------------------------------------------------------------------- 1 | %NFSFT_GET_F_HAT Get Fourier coefficients in a matrix from plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f_hat = nfsft_get_f_hat(p) 20 | f_hat = nfsftmex('get_f_hat',p); 21 | -------------------------------------------------------------------------------- /matlab/nfsft/nfsft_get_x.m: -------------------------------------------------------------------------------- 1 | %NFSFT_GET_X Get nodes from plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function x = nfsft_get_x(p) 20 | x = nfsftmex('get_x',p); 21 | -------------------------------------------------------------------------------- /matlab/nfsft/nfsft_init.m: -------------------------------------------------------------------------------- 1 | %NFSFT_INIT Plan initialization 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nfsft_init(N,M) 20 | p = nfsftmex('init',N,M); 21 | -------------------------------------------------------------------------------- /matlab/nfsft/nfsft_init_advanced.m: -------------------------------------------------------------------------------- 1 | %NFSFT_INIT_ADVANCED Advanced plan initialization routine 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nfsft_init_advanced(N,M,flags) 20 | p = nfsftmex('init_advanced',N,M,flags); 21 | -------------------------------------------------------------------------------- /matlab/nfsft/nfsft_precompute_x.m: -------------------------------------------------------------------------------- 1 | %NFSFT_PRECOMPUTE_X Deprecated function. 2 | 3 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 4 | % 5 | % This program is free software; you can redistribute it and/or modify it under 6 | % the terms of the GNU General Public License as published by the Free Software 7 | % Foundation; either version 2 of the License, or (at your option) any later 8 | % version. 9 | % 10 | % This program is distributed in the hope that it will be useful, but WITHOUT 11 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 12 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 13 | % details. 14 | % 15 | % You should have received a copy of the GNU General Public License along with 16 | % this program; if not, write to the Free Software Foundation, Inc., 51 17 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 | function nfsft_precompute_x(p) 19 | % Do nothing. 20 | % The functionality has been moved to nfsft_set_x. 21 | -------------------------------------------------------------------------------- /matlab/nfsft/nfsft_set_f.m: -------------------------------------------------------------------------------- 1 | %NFSFT_SET_F Set function values in plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfsft_set_f(p,f) 20 | nfsftmex('set_f',p,f) 21 | -------------------------------------------------------------------------------- /matlab/nfsft/nfsft_set_f_hat.m: -------------------------------------------------------------------------------- 1 | %NFSFT_SET_F_HAT Set Fourier coefficients in plan from a matrix 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfsft_set_f_hat(p,f_hat) 20 | nfsftmex('set_f_hat',p,f_hat) 21 | -------------------------------------------------------------------------------- /matlab/nfsft/nfsft_set_f_hat_linear.m: -------------------------------------------------------------------------------- 1 | %NFSFT_SET_F_HAT_LINEAR Set Fourier coefficients in plan from a linear vector 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfsft_set_f_hat_linear(p,f_hat) 20 | nfsftmex('set_f_hat_linear',p,f_hat) 21 | -------------------------------------------------------------------------------- /matlab/nfsft/nfsft_set_x.m: -------------------------------------------------------------------------------- 1 | %NFSFT_SET_X Set nodes in plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfsft_set_x(p,x) 20 | nfsftmex('set_x',p,x) 21 | -------------------------------------------------------------------------------- /matlab/nfsft/nfsft_trafo.m: -------------------------------------------------------------------------------- 1 | %NFSFT_TRAFO Fast spherical Fourier transform 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfsft_trafo(p) 20 | nfsftmex('trafo',p) 21 | -------------------------------------------------------------------------------- /matlab/nfsft/nfsftmex.m: -------------------------------------------------------------------------------- 1 | %NFSFTMEX Gateway routine to the NFSFT module 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | % 20 | -------------------------------------------------------------------------------- /matlab/nfsoft/Contents.m: -------------------------------------------------------------------------------- 1 | % 2 | % Files 3 | % nfsoft_get_num_threads - Get number of threads used for computation 4 | % nfsoftmex - Gateway routine to the NFSOFT module 5 | -------------------------------------------------------------------------------- /matlab/nfsoft/NFSOFT_NORMALIZED.m: -------------------------------------------------------------------------------- 1 | function f = NFSOFT_NORMALIZED() 2 | f = 2^0; -------------------------------------------------------------------------------- /matlab/nfsoft/NFSOFT_REPRESENT.m: -------------------------------------------------------------------------------- 1 | %Flag for using D-functions with representation property w.r.t. the 2 | %spherical harmonics in NFSFT 3 | function f = NFSOFT_REPRESENT() 4 | f = 2^4; -------------------------------------------------------------------------------- /matlab/nfsoft/NFSOFT_USE_DPT.m: -------------------------------------------------------------------------------- 1 | function f = NFSOFT_USE_DPT() 2 | f = 4; 3 | end -------------------------------------------------------------------------------- /matlab/nfsoft/NFSOFT_USE_NDFT.m: -------------------------------------------------------------------------------- 1 | function f = NFSOFT_USE_NDFT() 2 | f = 2; 3 | end -------------------------------------------------------------------------------- /matlab/nfsoft/nfsoft_adjoint.m: -------------------------------------------------------------------------------- 1 | %Adjoint NFSOFT transformation 2 | function nfsoft_adjoint (plan) 3 | nfsoftmex('adjoint',plan) -------------------------------------------------------------------------------- /matlab/nfsoft/nfsoft_f_hat_size.m: -------------------------------------------------------------------------------- 1 | %Returns size of vector f_hat for degree N 2 | function f = nfsoft_f_hat_size(N) 3 | f = ((N+1).*(4*(N+1).*(N+1)-1)/3); 4 | return; -------------------------------------------------------------------------------- /matlab/nfsoft/nfsoft_finalize.m: -------------------------------------------------------------------------------- 1 | %Finalize plan 2 | function nfsoft_finalize(plan) 3 | nfsoftmex('finalize',plan) -------------------------------------------------------------------------------- /matlab/nfsoft/nfsoft_get_f.m: -------------------------------------------------------------------------------- 1 | %Get function values from plan 2 | function f=nfsoft_get_f(plan) 3 | f=nfsoftmex('get_f',plan); -------------------------------------------------------------------------------- /matlab/nfsoft/nfsoft_get_f_hat.m: -------------------------------------------------------------------------------- 1 | %Get Fourier coefficients from plan 2 | function f_hat = nfsoft_get_f_hat (plan) 3 | f_hat = nfsoftmex('get_f_hat',plan); -------------------------------------------------------------------------------- /matlab/nfsoft/nfsoft_get_num_threads.m: -------------------------------------------------------------------------------- 1 | %NFSOFT_GET_NUM_THREADS Get number of threads (at most) used for computation 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | % 4 | % This program is free software; you can redistribute it and/or modify it under 5 | % the terms of the GNU General Public License as published by the Free Software 6 | % Foundation; either version 2 of the License, or (at your option) any later 7 | % version. 8 | % 9 | % This program is distributed in the hope that it will be useful, but WITHOUT 10 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 11 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 12 | % details. 13 | % 14 | % You should have received a copy of the GNU General Public License along with 15 | % this program; if not, write to the Free Software Foundation, Inc., 51 16 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | function nthreads = nfsoft_get_num_threads() 18 | 19 | nthreads = nfsoftmex('get_num_threads'); 20 | -------------------------------------------------------------------------------- /matlab/nfsoft/nfsoft_index.m: -------------------------------------------------------------------------------- 1 | %Returns the index of f_hat from the Wigner D-function D^l_{m,k} 2 | function my_ind = nfsoft_index (l, m, k) 3 | my_ind = NFSOFT_F_HAT_SIZE(l-1) + (k+l).*(2*l+1) + (m+l) +1; -------------------------------------------------------------------------------- /matlab/nfsoft/nfsoft_init.m: -------------------------------------------------------------------------------- 1 | %Initialize NFSOFT plan 2 | % plan = nfsoft_init(N, M) 3 | % plan = nfsoft_init(N, M, nfsoft_flags) 4 | % plan = nfsoft_init(N, M, nfsoft_flags, nfft_flags, nfft_cutoff, fpt_kappa) 5 | % N ... polynomial degree (bandwidth) 6 | % M ... number of nodes 7 | % nfsoft_flags ... can be NFSOFT_NORMALIZED, NFSOFT_REPRESENT, 8 | % NFSOFT_USE_DPT, NFSOFT_USE_NDFT (default=0) 9 | 10 | function plan = nfsoft_init(N, M, ... 11 | nfsoft_flags, nfft_flags, nfft_cutoff, fpt_kappa, fftw_size) 12 | narginchk(2,7); 13 | if(nargin<7 || isempty(fftw_size)) 14 | fftw_size=4*N+4; % oversampling of NFFT 15 | end 16 | if(nargin<6 || isempty(fpt_kappa)) 17 | fpt_kappa=1000; 18 | end 19 | if(nargin<5 || isempty(nfft_cutoff)) 20 | nfft_cutoff=6; 21 | end 22 | if(nargin<4 || isempty(nfft_flags)) 23 | nfft_flags=0; 24 | end 25 | if(nargin<3 || isempty(nfsoft_flags)) 26 | nfsoft_flags=0; 27 | end 28 | plan = nfsoftmex('init',N,M,nfsoft_flags,nfft_flags,nfft_cutoff,... 29 | fpt_kappa, fftw_size); -------------------------------------------------------------------------------- /matlab/nfsoft/nfsoft_precompute.m: -------------------------------------------------------------------------------- 1 | %Node-dependent precomputation 2 | function nfsoft_precompute(plan) 3 | nfsoftmex('precompute',plan) -------------------------------------------------------------------------------- /matlab/nfsoft/nfsoft_set_f.m: -------------------------------------------------------------------------------- 1 | %Set function values 2 | function nfsoft_set_f (plan,f) 3 | nfsoftmex('set_f',plan,f) -------------------------------------------------------------------------------- /matlab/nfsoft/nfsoft_set_f_hat.m: -------------------------------------------------------------------------------- 1 | %Set Fourier coefficients 2 | function nfsoft_set_f_hat (plan,f_hat) 3 | nfsoftmex('set_f_hat',plan,f_hat) -------------------------------------------------------------------------------- /matlab/nfsoft/nfsoft_set_x.m: -------------------------------------------------------------------------------- 1 | %Set rotations in Euler angles for nfsoft 2 | % x(1,:) = alpha 3 | % x(2,:) = beta 4 | % x(3,:) = gamma 5 | function nfsoft_set_x(plan,x) 6 | nfsoftmex('set_x',plan,x) -------------------------------------------------------------------------------- /matlab/nfsoft/nfsoft_trafo.m: -------------------------------------------------------------------------------- 1 | %Fast SO(3) Fourier transform 2 | function nfsoft_trafo(plan) 3 | nfsoftmex('trafo',plan) -------------------------------------------------------------------------------- /matlab/nfsoft/simple_test.m: -------------------------------------------------------------------------------- 1 | %SIMPLE_TEST Example program: Basic usage principles 2 | % Computes the sum 3 | % f(alpha,beta,gamma) = sum_{l=0}^N sum_{m,n=-l}^l f_hat(l,m,n) D_l^{m,n}(alpha,beta,gamma) 4 | % in terms of Wiegner-D functions D^{m,n}_l on a set of arbitary nodes 5 | % (alpha,beta,gamma), which are Euler angles on the rotation group SO(3). 6 | 7 | N = 32; % bandwidth (polynomial degree) 8 | M = nfsoft_f_hat_size(N); % number of points 9 | 10 | % random nodes (Euler angles) 11 | alpha = rand(M,1)*2*pi; 12 | beta = acos(rand(M,1)*2-1); 13 | gamma = rand(M,1)*2*pi; 14 | x = [alpha';beta';gamma']; 15 | M = length(alpha); 16 | 17 | %% random Fourier (Wigner) coefficients 18 | fh = rand(nfsoft_f_hat_size(N),1)./(1:nfsoft_f_hat_size(N)).'; 19 | 20 | tic 21 | plan = nfsoft(N,M,NFSOFT_NORMALIZED); % create NFSOFT plan 22 | plan.x = x; % set nodes 23 | plan.fhat = fh; % set Fourier (Wigner) coefficients 24 | nfsoft_trafo(plan); % NFSOFT transform 25 | f = plan.f; % get function values 26 | toc -------------------------------------------------------------------------------- /matlab/nfst/FFTW_ESTIMATE.m: -------------------------------------------------------------------------------- 1 | % FFTW_ESTIMATE FFT flag 2 | % Valid for FFTW3 3 | % 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | 6 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 7 | % 8 | % This program is free software; you can redistribute it and/or modify it under 9 | % the terms of the GNU General Public License as published by the Free Software 10 | % Foundation; either version 2 of the License, or (at your option) any later 11 | % version. 12 | % 13 | % This program is distributed in the hope that it will be useful, but WITHOUT 14 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 15 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 16 | % details. 17 | % 18 | % You should have received a copy of the GNU General Public License along with 19 | % this program; if not, write to the Free Software Foundation, Inc., 51 20 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 | function f = FFTW_ESTIMATE() 22 | 23 | f = bitshift(1, 6); 24 | -------------------------------------------------------------------------------- /matlab/nfst/FFTW_MEASURE.m: -------------------------------------------------------------------------------- 1 | %FFTW_MEASURE FFT flag 2 | % Valid for FFTW3 3 | % 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | 6 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 7 | % 8 | % This program is free software; you can redistribute it and/or modify it under 9 | % the terms of the GNU General Public License as published by the Free Software 10 | % Foundation; either version 2 of the License, or (at your option) any later 11 | % version. 12 | % 13 | % This program is distributed in the hope that it will be useful, but WITHOUT 14 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 15 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 16 | % details. 17 | % 18 | % You should have received a copy of the GNU General Public License along with 19 | % this program; if not, write to the Free Software Foundation, Inc., 51 20 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 | function f = FFTW_MEASURE() 22 | 23 | f = 0; 24 | -------------------------------------------------------------------------------- /matlab/nfst/FFT_OUT_OF_PLACE.m: -------------------------------------------------------------------------------- 1 | %FFT_OUT_OF_PLACE FFT flag 2 | % If this flag is set, FFTW uses disjoint input/output vectors. 3 | % 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | 6 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 7 | % 8 | % This program is free software; you can redistribute it and/or modify it under 9 | % the terms of the GNU General Public License as published by the Free Software 10 | % Foundation; either version 2 of the License, or (at your option) any later 11 | % version. 12 | % 13 | % This program is distributed in the hope that it will be useful, but WITHOUT 14 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 15 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 16 | % details. 17 | % 18 | % You should have received a copy of the GNU General Public License along with 19 | % this program; if not, write to the Free Software Foundation, Inc., 51 20 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 | function f = FFT_OUT_OF_PLACE() 22 | 23 | f = bitshift(1, 9); 24 | -------------------------------------------------------------------------------- /matlab/nfst/ndst_adjoint.m: -------------------------------------------------------------------------------- 1 | %NDST_ADJOINT Adjoint nonequispaced discrete sine transform (direct algorithm) 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function ndst_adjoint(p) 20 | 21 | nfstmex('adjoint_direct',p) 22 | -------------------------------------------------------------------------------- /matlab/nfst/ndst_trafo.m: -------------------------------------------------------------------------------- 1 | %NDST_TRAFO Nonequispaced discrete sine transform (direct algorithm) 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function ndst_trafo(p) 20 | 21 | nfstmex('trafo_direct',p) 22 | -------------------------------------------------------------------------------- /matlab/nfst/nfst_adjoint.m: -------------------------------------------------------------------------------- 1 | %NFST_ADJOINT Adjoint nonequispaced fast sine transform 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfst_adjoint(p) 20 | 21 | nfstmex('adjoint',p) 22 | -------------------------------------------------------------------------------- /matlab/nfst/nfst_finalize.m: -------------------------------------------------------------------------------- 1 | %NFST_FINALIZE Finalize plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfst_finalize(p) 20 | 21 | nfstmex('finalize',p) 22 | -------------------------------------------------------------------------------- /matlab/nfst/nfst_get_f.m: -------------------------------------------------------------------------------- 1 | %NFST_GET_F Get function values from plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = nfst_get_f(p) 20 | 21 | f = nfstmex('get_f',p); 22 | -------------------------------------------------------------------------------- /matlab/nfst/nfst_get_f_hat.m: -------------------------------------------------------------------------------- 1 | %NFST_GET_F_HAT Get Fourier coefficients from plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f_hat = nfst_get_f_hat(p) 20 | 21 | f_hat = nfstmex('get_f_hat',p); 22 | -------------------------------------------------------------------------------- /matlab/nfst/nfst_get_x.m: -------------------------------------------------------------------------------- 1 | %NFST_GET_X Get nodes from plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function x = nfst_get_x(p) 20 | 21 | x = nfstmex('get_x',p); 22 | -------------------------------------------------------------------------------- /matlab/nfst/nfst_init_1d.m: -------------------------------------------------------------------------------- 1 | %NFST_INIT_1D Initialise plans 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nfst_init_1d(N,M) 20 | 21 | p = nfstmex('init_1d',N,M); 22 | -------------------------------------------------------------------------------- /matlab/nfst/nfst_init_2d.m: -------------------------------------------------------------------------------- 1 | %NFST_INIT_2D Initialise plans 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nfst_init_2d(N1,N2,M) 20 | 21 | p = nfstmex('init_2d',N1,N2,M); 22 | -------------------------------------------------------------------------------- /matlab/nfst/nfst_init_3d.m: -------------------------------------------------------------------------------- 1 | %NFST_INIT_3D Initialise plans 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nfst_init_3d(N1,N2,N3,M) 20 | 21 | p = nfstmex('init_3d',N1,N2,N3,M); 22 | -------------------------------------------------------------------------------- /matlab/nfst/nfst_set_f.m: -------------------------------------------------------------------------------- 1 | %NFST_SET_F Set function values in plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfst_set_f(p,f) 20 | 21 | nfstmex('set_f',p,f) 22 | -------------------------------------------------------------------------------- /matlab/nfst/nfst_set_f_hat.m: -------------------------------------------------------------------------------- 1 | %NFST_SET_F_HAT Set Fourier coefficients in plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfst_set_f_hat(p,f_hat) 20 | 21 | nfstmex('set_f_hat',p,f_hat) 22 | -------------------------------------------------------------------------------- /matlab/nfst/nfst_set_x.m: -------------------------------------------------------------------------------- 1 | %NFST_SET_X Set nodes in plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfst_set_x(p,x) 20 | 21 | nfstmex('set_x',p,x) 22 | -------------------------------------------------------------------------------- /matlab/nfst/nfst_trafo.m: -------------------------------------------------------------------------------- 1 | %NFST_TRAFO nonequispaced fast sine transform 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nfst_trafo(p) 20 | 21 | nfstmex('trafo',p) 22 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfft_finalize.m: -------------------------------------------------------------------------------- 1 | %NFFT_FINALIZE Finalize plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nnfft_finalize(p) 20 | 21 | nnfftmex('finalize',p) 22 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfft_get_f.m: -------------------------------------------------------------------------------- 1 | %NFFT_GET_F Get function values from plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f = nnfft_get_f(p) 20 | 21 | f = nnfftmex('get_f',p); 22 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfft_get_f_hat.m: -------------------------------------------------------------------------------- 1 | %NFFT_GET_F_HAT Get Fourier coefficients from plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function f_hat = nnfft_get_f_hat(p) 20 | 21 | f_hat = nnfftmex('get_f_hat',p); 22 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfft_get_x.m: -------------------------------------------------------------------------------- 1 | %NFFT_GET_X Get nodes from plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function x = nnfft_get_x(p) 20 | 21 | x = nnfftmex('get_x',p); 22 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfft_init.m: -------------------------------------------------------------------------------- 1 | %NFFT_INIT Initialise plans 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nnfft_init(varargin) 20 | 21 | p = nnfftmex('init',varargin); 22 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfft_init_1d.m: -------------------------------------------------------------------------------- 1 | %NNFFT_INIT_1D Initialise plans 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nnfft_init_1d(N_total,M,N) 20 | 21 | p = nnfftmex('init_1d',N_total,M,N); 22 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfft_init_2d.m: -------------------------------------------------------------------------------- 1 | %NNFFT_INIT_2D Initialise plans 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nnfft_init_2d(N_total,M,N1,N2) 20 | 21 | p = nnfftmex('init_2d',N_total,M,N1,N2); 22 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfft_init_3d.m: -------------------------------------------------------------------------------- 1 | %NNFFT_INIT_3D Initialise plans 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function p = nnfft_init_3d(N_total,M,N1,N2,N3) 20 | 21 | p = nnfftmex('init_3d',N_total,M,N1,N2,N3); 22 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfft_precompute_psi.m: -------------------------------------------------------------------------------- 1 | %NFFT_PRECOMPUTE_PSI Precompute one psi, dependent on nodes x 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nnfft_precompute_psi(p) 20 | 21 | nnfftmex('precompute_psi',p) 22 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfft_set_f.m: -------------------------------------------------------------------------------- 1 | %NFFT_SET_F Set function values in plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nnfft_set_f(p,f) 20 | 21 | nnfftmex('set_f',p,f) 22 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfft_set_f_hat.m: -------------------------------------------------------------------------------- 1 | %NFFT_SET_F_HAT Set Fourier coefficients in plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nnfft_set_f_hat(p,f_hat) 20 | 21 | nnfftmex('set_f_hat',p,f_hat) 22 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfft_set_v.m: -------------------------------------------------------------------------------- 1 | 2 | %NFFT_SET_X Set nodes in plan 3 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 4 | 5 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 6 | % 7 | % This program is free software; you can redistribute it and/or modify it under 8 | % the terms of the GNU General Public License as published by the Free Software 9 | % Foundation; either version 2 of the License, or (at your option) any later 10 | % version. 11 | % 12 | % This program is distributed in the hope that it will be useful, but WITHOUT 13 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 14 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 15 | % details. 16 | % 17 | % You should have received a copy of the GNU General Public License along with 18 | % this program; if not, write to the Free Software Foundation, Inc., 51 19 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | function nnfft_set_v(p,v) 21 | 22 | nnfftmex('set_v',p,v) 23 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfft_set_x.m: -------------------------------------------------------------------------------- 1 | %NFFT_SET_X Set nodes in plan 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nnfft_set_x(p,x) 20 | 21 | nnfftmex('set_x',p,x) 22 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfft_trafo.m: -------------------------------------------------------------------------------- 1 | %NFFT_TRAFO nonequispaced fast Fourier transformat 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | function nnfft_trafo(p) 20 | 21 | nnfftmex('trafo',p) 22 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfft_trafo_direct.m: -------------------------------------------------------------------------------- 1 | 2 | %NFFT_TRAFO nonequispaced fast Fourier transformat 3 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 4 | 5 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 6 | % 7 | % This program is free software; you can redistribute it and/or modify it under 8 | % the terms of the GNU General Public License as published by the Free Software 9 | % Foundation; either version 2 of the License, or (at your option) any later 10 | % version. 11 | % 12 | % This program is distributed in the hope that it will be useful, but WITHOUT 13 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 14 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 15 | % details. 16 | % 17 | % You should have received a copy of the GNU General Public License along with 18 | % this program; if not, write to the Free Software Foundation, Inc., 51 19 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | function nnfft_trafo_direct(p) 21 | 22 | nnfftmex('trafo_direct',p) 23 | -------------------------------------------------------------------------------- /matlab/nnfft/nnfftmex.m: -------------------------------------------------------------------------------- 1 | %NFFTMEX Gateway function to NFFT module from NFFT3 2 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 3 | 4 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 5 | % 6 | % This program is free software; you can redistribute it and/or modify it under 7 | % the terms of the GNU General Public License as published by the Free Software 8 | % Foundation; either version 2 of the License, or (at your option) any later 9 | % version. 10 | % 11 | % This program is distributed in the hope that it will be useful, but WITHOUT 12 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 14 | % details. 15 | % 16 | % You should have received a copy of the GNU General Public License along with 17 | % this program; if not, write to the Free Software Foundation, Inc., 51 18 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | % 20 | -------------------------------------------------------------------------------- /matlab/tests/check_nfft_matlab.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo "Running MATLAB nfft tests..." 3 | "@matlab_bin_dir@/matlab" -wait -nodesktop -nosplash -r "try; diary('check_nfft_matlab.output'); addpath('@ABS_SRCDIR@/matlab/tests','@ABS_SRCDIR@/matlab/nfft'); nfftUnitTestsRunAndExit; catch; disp('Error running nfftUnitTestsRunAndExit'); end; exit(1);" 4 | -------------------------------------------------------------------------------- /matlab/tests/check_nfft_octave.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo "Running Octave nfft tests..." 3 | "@octave_cli@" --eval "try; addpath('@ABS_SRCDIR@/matlab/tests','@ABS_SRCDIR@/matlab/nfft'); nfftUnitTestsRunAndExit; catch; disp('Error running nfftUnitTestsRunAndExit'); end; exit(1);" 4 | -------------------------------------------------------------------------------- /matlab/tests/check_nfsft_matlab.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo "Running MATLAB nfsft tests..." 3 | "@matlab_bin_dir@/matlab" -wait -nodesktop -nosplash -r "try; diary('check_nfsft_matlab.output'); addpath('@ABS_SRCDIR@/matlab/tests','@ABS_SRCDIR@/matlab/nfsft'); nfsftUnitTestsRunAndExit; catch; disp('Error running nfsftUnitTestsRunAndExit'); end; exit(1);" 4 | -------------------------------------------------------------------------------- /matlab/tests/check_nfsft_octave.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo "Running Octave nfsft tests..." 3 | "@octave_cli@" --eval "try; addpath('@ABS_SRCDIR@/matlab/tests','@ABS_SRCDIR@/matlab/nfsft'); nfsftUnitTestsRunAndExit; catch; disp('Error running nfsftUnitTestsRunAndExit'); end; exit(1);" 4 | -------------------------------------------------------------------------------- /matlab/tests/check_nfsoft_matlab.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo "Running MATLAB nfsoft tests..." 3 | "@matlab_bin_dir@/matlab" -wait -nodesktop -nosplash -r "try; diary('check_nfsoft_matlab.output'); addpath('@ABS_SRCDIR@/matlab/tests','@ABS_SRCDIR@/matlab/nfsft','@ABS_SRCDIR@/matlab/nfsoft'); perform_exhaustive_tests_flag=@matlab_exhaustive_unit_tests_flag@; nfsoftUnitTestsRunAndExit; catch; disp('Error running nfsoftUnitTestsRunAndExit'); end; exit(1);" 4 | -------------------------------------------------------------------------------- /matlab/tests/check_nfsoft_octave.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo "Running Octave nfsoft tests..." 3 | "@octave_cli@" --eval "try; addpath('@ABS_SRCDIR@/matlab/tests','@ABS_SRCDIR@/matlab/nfsft','@ABS_SRCDIR@/matlab/nfsoft'); perform_exhaustive_tests_flag=@matlab_exhaustive_unit_tests_flag@; nfsoftUnitTestsRunAndExit; catch; disp('Error running nfsoftUnitTestsRunAndExit'); end; exit(1);" 4 | -------------------------------------------------------------------------------- /matlab/tests/nfsftTestcaseDelegate.m: -------------------------------------------------------------------------------- 1 | classdef nfsftTestcaseDelegate 2 | %NFSFTTESTCASEDELEGATE Summary of this class goes here 3 | properties(Hidden=true,SetAccess='protected',GetAccess='public') 4 | N = []; 5 | M = []; 6 | x = []; 7 | f_hat = []; 8 | f = []; 9 | end 10 | 11 | methods 12 | function h = setup(h) 13 | end 14 | 15 | function h = destroy(h) 16 | end 17 | end 18 | 19 | end -------------------------------------------------------------------------------- /matlab/tests/nfsftUnitTestsRunAndExit.m: -------------------------------------------------------------------------------- 1 | clear all; 2 | addpath ../nfsft 3 | ok = 1; 4 | 5 | fprintf('Number of threads: %d\n', nfsft_get_num_threads()); 6 | 7 | try 8 | tests = nfsftUnitTests; 9 | 10 | result = tests.nfsft_check_online; ok = min(ok, result); 11 | result = tests.nfsft_check_adjoint_online; ok = min(ok, result); 12 | 13 | result = tests.nfsft_check_trafo_equispaced_online; ok = min(ok, result); 14 | result = tests.nfsft_check_adjoint_equispaced_online; ok = min(ok, result); 15 | result = tests.nfsft_check_quadrature_online; ok = min(ok, result); 16 | catch err 17 | try 18 | fprintf('Exception %s %s\n', err.identifier, err.message); 19 | err 20 | catch 21 | end 22 | ok = 0; 23 | end 24 | 25 | clear result; 26 | 27 | if ok ~= 1 28 | fprintf('nfsftUnitTest: at least one test failed\n'); 29 | exit(1); 30 | return; 31 | end 32 | fprintf('nfsftUnitTest: all tests succeeded\n'); 33 | exit(0); 34 | -------------------------------------------------------------------------------- /matlab/tests/nfsoftTestcaseDelegate.m: -------------------------------------------------------------------------------- 1 | classdef nfsoftTestcaseDelegate 2 | %NFSFTTESTCASEDELEGATE Summary of this class goes here 3 | properties(Hidden=true,SetAccess='protected',GetAccess='public') 4 | N = []; 5 | M = []; 6 | x = []; 7 | f_hat = []; 8 | f = []; 9 | end 10 | 11 | methods 12 | function h = setup(h) 13 | end 14 | 15 | function h = destroy(h) 16 | end 17 | end 18 | 19 | end 20 | -------------------------------------------------------------------------------- /matlab/tests/nfsoftUnitTestsRunAndExit.m: -------------------------------------------------------------------------------- 1 | addpath ../nfsoft ../nfsft 2 | ok = 1; 3 | 4 | fprintf('Number of threads: %d\n', nfsoft_get_num_threads()); 5 | 6 | try 7 | tests = nfsoftUnitTests; 8 | if exist('perform_exhaustive_tests_flag','var') 9 | tests.perform_exhaustive_tests_flag = perform_exhaustive_tests_flag; 10 | end 11 | 12 | result = tests.nfsoft_check_online; ok = min(ok, result); 13 | result = tests.nfsoft_check_adjoint_online; ok = min(ok, result); 14 | 15 | result = tests.nfsoft_check_quadrature_online; ok = min(ok, result); 16 | catch err 17 | try 18 | fprintf('Exception %s %s\n', err.identifier, err.message); 19 | disp(err) 20 | catch 21 | end 22 | ok = 0; 23 | end 24 | 25 | clear result; 26 | 27 | if ok ~= 1 28 | fprintf('nfsoftUnitTest: at least one test failed\n'); 29 | exit(1); 30 | return; 31 | end 32 | fprintf('nfsoftUnitTest: all tests succeeded\n'); 33 | exit(0); 34 | -------------------------------------------------------------------------------- /nfft3.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=${prefix} 3 | libdir=@libdir@ 4 | includedir=${prefix}/include 5 | 6 | Name: NFFT 7 | Description: Nonuniform fast Fourier transform library 8 | Version: @VERSION@ 9 | Requires: fftw3@PREC_SUFFIX@ 10 | Libs: -L${libdir} -lnfft3@PREC_SUFFIX@ 11 | Cflags: -I${includedir} 12 | -------------------------------------------------------------------------------- /support/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = rem.sed toc.sed fpt.dox mri.dox nfct.dox nfft.dox nfsft.dox nfsoft.dox nfst.dox nnfft.dox nsfft.dox solver.dox -------------------------------------------------------------------------------- /support/copyright.txt: -------------------------------------------------------------------------------- 1 | * Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 2 | * 3 | * This program is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU General Public License as published by the Free Software 5 | * Foundation; either version 2 of the License, or (at your option) any later 6 | * version. 7 | * 8 | * This program is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU General Public License along with 14 | * this program; if not, write to the Free Software Foundation, Inc., 51 15 | * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 | -------------------------------------------------------------------------------- /support/copyright_m4.txt: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 2 | # 3 | # This program is free software; you can redistribute it and/or modify it under 4 | # the terms of the GNU General Public License as published by the Free Software 5 | # Foundation; either version 2 of the License, or (at your option) any later 6 | # version. 7 | # 8 | # This program is distributed in the hope that it will be useful, but WITHOUT 9 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 11 | # details. 12 | # 13 | # You should have received a copy of the GNU General Public License along with 14 | # this program; if not, write to the Free Software Foundation, Inc., 51 15 | # Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 | -------------------------------------------------------------------------------- /support/copyright_matlab.txt: -------------------------------------------------------------------------------- 1 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 2 | % 3 | % This program is free software; you can redistribute it and/or modify it under 4 | % the terms of the GNU General Public License as published by the Free Software 5 | % Foundation; either version 2 of the License, or (at your option) any later 6 | % version. 7 | % 8 | % This program is distributed in the hope that it will be useful, but WITHOUT 9 | % ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | % FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 11 | % details. 12 | % 13 | % You should have received a copy of the GNU General Public License along with 14 | % this program; if not, write to the Free Software Foundation, Inc., 51 15 | % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 | -------------------------------------------------------------------------------- /support/copyright_matlab_single_line.txt: -------------------------------------------------------------------------------- 1 | % Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts 2 | -------------------------------------------------------------------------------- /support/rem.sed: -------------------------------------------------------------------------------- 1 | #!/usr/bin/sed -f 2 | s/

<\/h1>// 3 | s/

[1-9].[1-9].[1-9] <\/h3>// 4 | -------------------------------------------------------------------------------- /support/toc.sed: -------------------------------------------------------------------------------- 1 | #!/usr/bin/sed -f 2 | s/^ \* \\section \([a-zA-Z0-9_]*\) \(.*\)/