├── .clang-format ├── .github └── workflows │ ├── cmake.yml │ └── python.yml ├── .gitignore ├── .pre-commit-config.yaml ├── CMakeLists.txt ├── COPYRIGHT.txt ├── INSTALL ├── LICENSE ├── MANIFEST.in ├── README.md ├── bin └── .gitignore ├── cmake ├── FindCFITSIO.cmake ├── FindFFTW3.cmake ├── S2letConfig.in.cmake ├── TestCFITSIOLibraryVersion.cc ├── conan_dependencies.cmake ├── conan_provider.cmake ├── exporting.cmake └── fetch_cmocka.cmake ├── conanfile.txt ├── data ├── .gitignore ├── earth_tomo_mw_128.fits ├── earth_tomo_mw_128_rot.fits ├── somecmbsimu_hpx_128.fits ├── wmap_mcmc_base_k_synch_stk_q_9yr_v5.fits └── wmap_mcmc_base_k_synch_stk_u_9yr_v5.fits ├── docs ├── c │ ├── annotated.html │ ├── classes.html │ ├── dir_000002_000000.html │ ├── dir_000003_000000.html │ ├── dir_000004_000000.html │ ├── dir_000005_000000.html │ ├── dir_120ed4da3e3217b1e7fc0b4f48568e79.html │ ├── dir_120ed4da3e3217b1e7fc0b4f48568e79_dep.map │ ├── dir_120ed4da3e3217b1e7fc0b4f48568e79_dep.md5 │ ├── dir_2756d41f8717da58192571bd3d5ae320.html │ ├── dir_2756d41f8717da58192571bd3d5ae320_dep.map │ ├── dir_2756d41f8717da58192571bd3d5ae320_dep.md5 │ ├── dir_5eb159725f84c66aafd839904a4acdd0.html │ ├── dir_5eb159725f84c66aafd839904a4acdd0_dep.map │ ├── dir_5eb159725f84c66aafd839904a4acdd0_dep.md5 │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.html │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 │ ├── dir_7420a7c8f71871d771403938d4d24c4a.html │ ├── dir_7420a7c8f71871d771403938d4d24c4a_dep.map │ ├── dir_7420a7c8f71871d771403938d4d24c4a_dep.md5 │ ├── dir_d44c64559bbebec7f509842c48db8b23.html │ ├── doxygen.css │ ├── doxygen.svg │ ├── dynsections.js │ ├── files.html │ ├── functions.html │ ├── functions_vars.html │ ├── globals.html │ ├── globals_b.html │ ├── globals_defs.html │ ├── globals_enum.html │ ├── globals_eval.html │ ├── globals_f.html │ ├── globals_func.html │ ├── globals_func_f.html │ ├── globals_func_g.html │ ├── globals_func_h.html │ ├── globals_func_m.html │ ├── globals_func_n.html │ ├── globals_func_p.html │ ├── globals_func_r.html │ ├── globals_func_s.html │ ├── globals_func_t.html │ ├── globals_func_w.html │ ├── globals_g.html │ ├── globals_h.html │ ├── globals_i.html │ ├── globals_m.html │ ├── globals_n.html │ ├── globals_p.html │ ├── globals_r.html │ ├── globals_s.html │ ├── globals_t.html │ ├── globals_type.html │ ├── globals_vars.html │ ├── globals_w.html │ ├── graph_legend.html │ ├── graph_legend.md5 │ ├── index.html │ ├── jquery.js │ ├── menu.js │ ├── menudata.js │ ├── s2let_8h.html │ ├── s2let_8h__dep__incl.map │ ├── s2let_8h__dep__incl.md5 │ ├── s2let_8h__incl.map │ ├── s2let_8h__incl.md5 │ ├── s2let_8h_source.html │ ├── s2let__about_8c.html │ ├── s2let__about_8c__incl.map │ ├── s2let__about_8c__incl.md5 │ ├── s2let__alloc_8c.html │ ├── s2let__alloc_8c__incl.map │ ├── s2let__alloc_8c__incl.md5 │ ├── s2let__alloc_8h.html │ ├── s2let__alloc_8h__dep__incl.map │ ├── s2let__alloc_8h__dep__incl.md5 │ ├── s2let__alloc_8h__incl.map │ ├── s2let__alloc_8h__incl.md5 │ ├── s2let__alloc_8h_source.html │ ├── s2let__analysis_8c.html │ ├── s2let__analysis_8c__incl.map │ ├── s2let__analysis_8c__incl.md5 │ ├── s2let__analysis_8h.html │ ├── s2let__analysis_8h__dep__incl.map │ ├── s2let__analysis_8h__dep__incl.md5 │ ├── s2let__analysis_8h__incl.map │ ├── s2let__analysis_8h__incl.md5 │ ├── s2let__analysis_8h_source.html │ ├── s2let__analysis__adjoint_8c.html │ ├── s2let__analysis__adjoint_8c__incl.map │ ├── s2let__analysis__adjoint_8c__incl.md5 │ ├── s2let__analysis__adjoint_8h.html │ ├── s2let__analysis__adjoint_8h__dep__incl.map │ ├── s2let__analysis__adjoint_8h__dep__incl.md5 │ ├── s2let__analysis__adjoint_8h__incl.map │ ├── s2let__analysis__adjoint_8h__incl.md5 │ ├── s2let__analysis__adjoint_8h_source.html │ ├── s2let__axisym__denoising__demo_8c.html │ ├── s2let__axisym__denoising__demo_8c__incl.map │ ├── s2let__axisym__denoising__demo_8c__incl.md5 │ ├── s2let__axisym__denoising__demo_8h.html │ ├── s2let__axisym__denoising__demo_8h__incl.map │ ├── s2let__axisym__denoising__demo_8h__incl.md5 │ ├── s2let__axisym__denoising__demo_8h_source.html │ ├── s2let__denoising__demo_8c.html │ ├── s2let__denoising__demo_8c__incl.map │ ├── s2let__denoising__demo_8c__incl.md5 │ ├── s2let__denoising__demo_8h.html │ ├── s2let__denoising__demo_8h__incl.map │ ├── s2let__denoising__demo_8h__incl.md5 │ ├── s2let__denoising__demo_8h_source.html │ ├── s2let__error_8h.html │ ├── s2let__error_8h__dep__incl.map │ ├── s2let__error_8h__dep__incl.md5 │ ├── s2let__error_8h__incl.map │ ├── s2let__error_8h__incl.md5 │ ├── s2let__error_8h_source.html │ ├── s2let__fits_8c.html │ ├── s2let__fits_8c__incl.map │ ├── s2let__fits_8c__incl.md5 │ ├── s2let__fits_8h.html │ ├── s2let__fits_8h__dep__incl.map │ ├── s2let__fits_8h__dep__incl.md5 │ ├── s2let__fits_8h_source.html │ ├── s2let__helper_8c.html │ ├── s2let__helper_8c__incl.map │ ├── s2let__helper_8c__incl.md5 │ ├── s2let__helper_8h.html │ ├── s2let__helper_8h__dep__incl.map │ ├── s2let__helper_8h__dep__incl.md5 │ ├── s2let__helper_8h__incl.map │ ├── s2let__helper_8h__incl.md5 │ ├── s2let__helper_8h_source.html │ ├── s2let__hpx_8c.html │ ├── s2let__hpx_8c__incl.map │ ├── s2let__hpx_8c__incl.md5 │ ├── s2let__hpx_8h.html │ ├── s2let__hpx_8h__dep__incl.map │ ├── s2let__hpx_8h__dep__incl.md5 │ ├── s2let__hpx_8h__incl.map │ ├── s2let__hpx_8h__incl.md5 │ ├── s2let__hpx_8h_source.html │ ├── s2let__hpx__demo_8c.html │ ├── s2let__hpx__demo_8c__incl.map │ ├── s2let__hpx__demo_8c__incl.md5 │ ├── s2let__hpx__test_8c.html │ ├── s2let__hpx__test_8c__incl.map │ ├── s2let__hpx__test_8c__incl.md5 │ ├── s2let__idl__hpx_8c.html │ ├── s2let__idl__hpx_8c__incl.map │ ├── s2let__idl__hpx_8c__incl.md5 │ ├── s2let__idl__hpx_8h.html │ ├── s2let__idl__hpx_8h__dep__incl.map │ ├── s2let__idl__hpx_8h__dep__incl.md5 │ ├── s2let__idl__hpx_8h__incl.map │ ├── s2let__idl__hpx_8h__incl.md5 │ ├── s2let__idl__hpx_8h_source.html │ ├── s2let__idl__mw_8c.html │ ├── s2let__idl__mw_8c__incl.map │ ├── s2let__idl__mw_8c__incl.md5 │ ├── s2let__idl__mw_8h.html │ ├── s2let__idl__mw_8h__dep__incl.map │ ├── s2let__idl__mw_8h__dep__incl.md5 │ ├── s2let__idl__mw_8h_source.html │ ├── s2let__lm_8c.html │ ├── s2let__lm_8c__incl.map │ ├── s2let__lm_8c__incl.md5 │ ├── s2let__lm_8h.html │ ├── s2let__lm_8h__dep__incl.map │ ├── s2let__lm_8h__dep__incl.md5 │ ├── s2let__lm_8h__incl.map │ ├── s2let__lm_8h__incl.md5 │ ├── s2let__lm_8h_source.html │ ├── s2let__math_8c.html │ ├── s2let__math_8c__incl.map │ ├── s2let__math_8c__incl.md5 │ ├── s2let__math_8h.html │ ├── s2let__math_8h__dep__incl.map │ ├── s2let__math_8h__dep__incl.md5 │ ├── s2let__math_8h__incl.map │ ├── s2let__math_8h__incl.md5 │ ├── s2let__math_8h_source.html │ ├── s2let__mex_8h.html │ ├── s2let__mex_8h_source.html │ ├── s2let__mw_8c.html │ ├── s2let__mw_8c__incl.map │ ├── s2let__mw_8c__incl.md5 │ ├── s2let__mw_8h.html │ ├── s2let__mw_8h__dep__incl.map │ ├── s2let__mw_8h__dep__incl.md5 │ ├── s2let__mw_8h__incl.map │ ├── s2let__mw_8h__incl.md5 │ ├── s2let__mw_8h_source.html │ ├── s2let__so3_8h.html │ ├── s2let__so3_8h__dep__incl.map │ ├── s2let__so3_8h__dep__incl.md5 │ ├── s2let__so3_8h__incl.map │ ├── s2let__so3_8h__incl.md5 │ ├── s2let__so3_8h_source.html │ ├── s2let__spin__denoising__demo_8c.html │ ├── s2let__spin__denoising__demo_8c__incl.map │ ├── s2let__spin__denoising__demo_8c__incl.md5 │ ├── s2let__synthesis_8c.html │ ├── s2let__synthesis_8c__incl.map │ ├── s2let__synthesis_8c__incl.md5 │ ├── s2let__synthesis_8h.html │ ├── s2let__synthesis_8h__dep__incl.map │ ├── s2let__synthesis_8h__dep__incl.md5 │ ├── s2let__synthesis_8h__incl.map │ ├── s2let__synthesis_8h__incl.md5 │ ├── s2let__synthesis_8h_source.html │ ├── s2let__synthesis__adjoint_8c.html │ ├── s2let__synthesis__adjoint_8c__incl.map │ ├── s2let__synthesis__adjoint_8c__incl.md5 │ ├── s2let__synthesis__adjoint_8h.html │ ├── s2let__synthesis__adjoint_8h__dep__incl.map │ ├── s2let__synthesis__adjoint_8h__dep__incl.md5 │ ├── s2let__synthesis__adjoint_8h__incl.map │ ├── s2let__synthesis__adjoint_8h__incl.md5 │ ├── s2let__synthesis__adjoint_8h_source.html │ ├── s2let__test_8c.html │ ├── s2let__test_8c__incl.map │ ├── s2let__test_8c__incl.md5 │ ├── s2let__test__csv_8c.html │ ├── s2let__test__csv_8c__incl.map │ ├── s2let__test__csv_8c__incl.md5 │ ├── s2let__tiling_8c.html │ ├── s2let__tiling_8c__incl.map │ ├── s2let__tiling_8c__incl.md5 │ ├── s2let__tiling_8h.html │ ├── s2let__tiling_8h__dep__incl.map │ ├── s2let__tiling_8h__dep__incl.md5 │ ├── s2let__tiling_8h__incl.map │ ├── s2let__tiling_8h__incl.md5 │ ├── s2let__tiling_8h_source.html │ ├── s2let__transform__axisym__analysis__hpx__real_8c.html │ ├── s2let__transform__axisym__analysis__hpx__real_8c__incl.map │ ├── s2let__transform__axisym__analysis__hpx__real_8c__incl.md5 │ ├── s2let__transform__axisym__analysis__mw__real_8c.html │ ├── s2let__transform__axisym__analysis__mw__real_8c__incl.map │ ├── s2let__transform__axisym__analysis__mw__real_8c__incl.md5 │ ├── s2let__transform__axisym__hpx_8c.html │ ├── s2let__transform__axisym__hpx_8c__incl.map │ ├── s2let__transform__axisym__hpx_8c__incl.md5 │ ├── s2let__transform__axisym__hpx_8h.html │ ├── s2let__transform__axisym__hpx_8h__dep__incl.map │ ├── s2let__transform__axisym__hpx_8h__dep__incl.md5 │ ├── s2let__transform__axisym__hpx_8h_source.html │ ├── s2let__transform__axisym__lm_8c.html │ ├── s2let__transform__axisym__lm_8c__incl.map │ ├── s2let__transform__axisym__lm_8c__incl.md5 │ ├── s2let__transform__axisym__lm_8h.html │ ├── s2let__transform__axisym__lm_8h__dep__incl.map │ ├── s2let__transform__axisym__lm_8h__dep__incl.md5 │ ├── s2let__transform__axisym__lm_8h__incl.map │ ├── s2let__transform__axisym__lm_8h__incl.md5 │ ├── s2let__transform__axisym__lm_8h_source.html │ ├── s2let__transform__axisym__mw_8c.html │ ├── s2let__transform__axisym__mw_8c__incl.map │ ├── s2let__transform__axisym__mw_8c__incl.md5 │ ├── s2let__transform__axisym__mw_8h.html │ ├── s2let__transform__axisym__mw_8h__dep__incl.map │ ├── s2let__transform__axisym__mw_8h__dep__incl.md5 │ ├── s2let__transform__axisym__mw_8h__incl.map │ ├── s2let__transform__axisym__mw_8h__incl.md5 │ ├── s2let__transform__axisym__mw_8h_source.html │ ├── s2let__transform__axisym__synthesis__hpx__real_8c.html │ ├── s2let__transform__axisym__synthesis__hpx__real_8c__incl.map │ ├── s2let__transform__axisym__synthesis__hpx__real_8c__incl.md5 │ ├── s2let__transform__axisym__synthesis__mw__real_8c.html │ ├── s2let__transform__axisym__synthesis__mw__real_8c__incl.map │ ├── s2let__transform__axisym__synthesis__mw__real_8c__incl.md5 │ ├── s2let__types_8h.html │ ├── s2let__types_8h__dep__incl.map │ ├── s2let__types_8h__dep__incl.md5 │ ├── s2let__types_8h__incl.map │ ├── s2let__types_8h__incl.md5 │ ├── s2let__types_8h_source.html │ ├── search │ │ ├── all_0.html │ │ ├── all_0.js │ │ ├── all_1.html │ │ ├── all_1.js │ │ ├── all_10.html │ │ ├── all_10.js │ │ ├── all_11.html │ │ ├── all_11.js │ │ ├── all_12.html │ │ ├── all_12.js │ │ ├── all_2.html │ │ ├── all_2.js │ │ ├── all_3.html │ │ ├── all_3.js │ │ ├── all_4.html │ │ ├── all_4.js │ │ ├── all_5.html │ │ ├── all_5.js │ │ ├── all_6.html │ │ ├── all_6.js │ │ ├── all_7.html │ │ ├── all_7.js │ │ ├── all_8.html │ │ ├── all_8.js │ │ ├── all_9.html │ │ ├── all_9.js │ │ ├── all_a.html │ │ ├── all_a.js │ │ ├── all_b.html │ │ ├── all_b.js │ │ ├── all_c.html │ │ ├── all_c.js │ │ ├── all_d.html │ │ ├── all_d.js │ │ ├── all_e.html │ │ ├── all_e.js │ │ ├── all_f.html │ │ ├── all_f.js │ │ ├── classes_0.html │ │ ├── classes_0.js │ │ ├── close.svg │ │ ├── defines_0.html │ │ ├── defines_0.js │ │ ├── defines_1.html │ │ ├── defines_1.js │ │ ├── defines_2.html │ │ ├── defines_2.js │ │ ├── defines_3.html │ │ ├── defines_3.js │ │ ├── defines_4.html │ │ ├── defines_4.js │ │ ├── defines_5.html │ │ ├── defines_5.js │ │ ├── enums_0.html │ │ ├── enums_0.js │ │ ├── enumvalues_0.html │ │ ├── enumvalues_0.js │ │ ├── enumvalues_1.html │ │ ├── enumvalues_1.js │ │ ├── files_0.html │ │ ├── files_0.js │ │ ├── files_1.html │ │ ├── files_1.js │ │ ├── functions_0.html │ │ ├── functions_0.js │ │ ├── functions_1.html │ │ ├── functions_1.js │ │ ├── functions_2.html │ │ ├── functions_2.js │ │ ├── functions_3.html │ │ ├── functions_3.js │ │ ├── functions_4.html │ │ ├── functions_4.js │ │ ├── functions_5.html │ │ ├── functions_5.js │ │ ├── functions_6.html │ │ ├── functions_6.js │ │ ├── functions_7.html │ │ ├── functions_7.js │ │ ├── functions_8.html │ │ ├── functions_8.js │ │ ├── functions_9.html │ │ ├── functions_9.js │ │ ├── functions_a.html │ │ ├── functions_a.js │ │ ├── mag_sel.svg │ │ ├── nomatches.html │ │ ├── search.css │ │ ├── search.js │ │ ├── searchdata.js │ │ ├── typedefs_0.html │ │ ├── typedefs_0.js │ │ ├── variables_0.html │ │ ├── variables_0.js │ │ ├── variables_1.html │ │ ├── variables_1.js │ │ ├── variables_2.html │ │ ├── variables_2.js │ │ ├── variables_3.html │ │ ├── variables_3.js │ │ ├── variables_4.html │ │ ├── variables_4.js │ │ ├── variables_5.html │ │ ├── variables_5.js │ │ ├── variables_6.html │ │ ├── variables_6.js │ │ ├── variables_7.html │ │ ├── variables_7.js │ │ ├── variables_8.html │ │ ├── variables_8.js │ │ ├── variables_9.html │ │ └── variables_9.js │ ├── structs2let__parameters__t-members.html │ ├── structs2let__parameters__t.html │ ├── tabs.css │ ├── test__adjoint_8c.html │ ├── test__adjoint_8c__incl.map │ ├── test__adjoint_8c__incl.md5 │ ├── test__axisym__vs__directional_8c.html │ ├── test__axisym__vs__directional_8c__incl.map │ ├── test__axisym__vs__directional_8c__incl.md5 │ ├── test__back__and__forth_8c.html │ ├── test__back__and__forth_8c__incl.map │ ├── test__back__and__forth_8c__incl.md5 │ ├── test__tiling_8c.html │ ├── test__tiling_8c__incl.map │ └── test__tiling_8c__incl.md5 ├── c_doc.html ├── idl │ └── index.html ├── images │ ├── Ridgeletj3.png │ ├── Ridgeletj4.png │ ├── curvelet_L512_B2_Jmin2.png │ ├── download_icon.gif │ ├── earth1.png │ ├── earth2.png │ ├── earth3.png │ ├── earth4.png │ ├── needlets.png │ ├── newlogo.png │ ├── photo_boris.jpeg │ ├── photo_jason.jpg │ ├── tiling2.png │ ├── tiling_compar.png │ └── wav.png ├── index.html ├── java_doc.html ├── matlab │ ├── demoicon.gif │ ├── doxysearch.php │ ├── index.html │ ├── m2html.css │ ├── matlabicon.gif │ ├── simulinkicon.gif │ └── src │ │ └── main │ │ └── matlab │ │ ├── fitswrite.html │ │ ├── index.html │ │ ├── make_card.html │ │ ├── s2let_bandlimit.html │ │ ├── s2let_check_axisym_tiling.html │ │ ├── s2let_check_cur_tiling.html │ │ ├── s2let_check_tiling.html │ │ ├── s2let_compute_scal.html │ │ ├── s2let_compute_wav.html │ │ ├── s2let_curvelet_tiling.html │ │ ├── s2let_curvelet_transform_test_lm2cur_cur2lm.html │ │ ├── s2let_curvelet_transform_test_lm2lmn_lmn2lm.html │ │ ├── s2let_curvelet_transform_test_px2cur_cur2px.html │ │ ├── s2let_demo1.html │ │ ├── s2let_demo2.html │ │ ├── s2let_demo3.html │ │ ├── s2let_demo4.html │ │ ├── s2let_demo5.html │ │ ├── s2let_demo6.html │ │ ├── s2let_demo7_curvelet_Plot_Funcs_and_Tiling.html │ │ ├── s2let_demo8_curvelet_Mollweide_EarthTopography.html │ │ ├── s2let_demo_covariance.html │ │ ├── s2let_demo_curvelet_covariance.html │ │ ├── s2let_demo_curvelet_evaluate_performance.html │ │ ├── s2let_demo_ridgelet_evaluate.html │ │ ├── s2let_demo_ridgelet_plot.html │ │ ├── s2let_elmin.html │ │ ├── s2let_fulltest.html │ │ ├── s2let_fulltest_curvelet.html │ │ ├── s2let_hpx2mw.html │ │ ├── s2let_hpx_alm2map.html │ │ ├── s2let_hpx_alm2map_spin.html │ │ ├── s2let_hpx_map2alm.html │ │ ├── s2let_hpx_map2alm_spin.html │ │ ├── s2let_hpx_plot_mollweide.html │ │ ├── s2let_hpx_read_real_map.html │ │ ├── s2let_hpx_read_real_spin_maps.html │ │ ├── s2let_hpx_sampling_ring.html │ │ ├── s2let_hpx_write_real_map.html │ │ ├── s2let_hpx_write_real_spin_maps.html │ │ ├── s2let_hpxtest.html │ │ ├── s2let_jmax.html │ │ ├── s2let_make_doc.html │ │ ├── s2let_mw2hpx.html │ │ ├── s2let_mw_arr2vec.html │ │ ├── s2let_mw_read_real_map.html │ │ ├── s2let_mw_vec2arr.html │ │ ├── s2let_mw_write_real_map.html │ │ ├── s2let_mwss_arr2vec.html │ │ ├── s2let_mwss_read_real_map.html │ │ ├── s2let_mwss_vec2arr.html │ │ ├── s2let_mwss_write_real_map.html │ │ ├── s2let_perf_tests.html │ │ ├── s2let_plot_axisym_tiling.html │ │ ├── s2let_plot_curvelet_on_sphere.html │ │ ├── s2let_plot_curvelet_parametric.html │ │ ├── s2let_plot_curvelet_tiling.html │ │ ├── s2let_plot_denoising_demo.html │ │ ├── s2let_plot_mollweide.html │ │ ├── s2let_plot_sphere.html │ │ ├── s2let_plot_wavs.html │ │ ├── s2let_radon_inverse.html │ │ ├── s2let_radon_transform.html │ │ ├── s2let_ridgelet_analysis.html │ │ ├── s2let_ridgelet_compute_wav.html │ │ ├── s2let_ridgelet_synthesis.html │ │ ├── s2let_smoothing.html │ │ ├── s2let_transform_analysis_lm2wav.html │ │ ├── s2let_transform_analysis_mw.html │ │ ├── s2let_transform_axisym_analysis_hpx.html │ │ ├── s2let_transform_axisym_analysis_mw.html │ │ ├── s2let_transform_axisym_synthesis_hpx.html │ │ ├── s2let_transform_axisym_synthesis_mw.html │ │ ├── s2let_transform_axisym_tiling.html │ │ ├── s2let_transform_curvelet_analysis_lm2cur.html │ │ ├── s2let_transform_curvelet_analysis_lm2lmn.html │ │ ├── s2let_transform_curvelet_analysis_px2cur.html │ │ ├── s2let_transform_curvelet_synthesis_cur2lm.html │ │ ├── s2let_transform_curvelet_synthesis_cur2px.html │ │ ├── s2let_transform_curvelet_synthesis_lmn2lm.html │ │ ├── s2let_transform_synthesis_lm2wav.html │ │ ├── s2let_transform_synthesis_mw.html │ │ └── s2let_wavelet_tiling.html ├── matlab_doc.html └── style.css ├── figs └── .gitignore ├── include └── s2let │ ├── s2let.h │ ├── s2let_alloc.h │ ├── s2let_analysis.h │ ├── s2let_analysis_adjoint.h │ ├── s2let_axisym_denoising_demo.h │ ├── s2let_denoising_demo.h │ ├── s2let_error.h │ ├── s2let_fits.h │ ├── s2let_helper.h │ ├── s2let_hpx.h │ ├── s2let_idl_hpx.h │ ├── s2let_idl_mw.h │ ├── s2let_lm.h │ ├── s2let_math.h │ ├── s2let_mex.h │ ├── s2let_mw.h │ ├── s2let_so3.h │ ├── s2let_synthesis.h │ ├── s2let_synthesis_adjoint.h │ ├── s2let_tiling.h │ ├── s2let_transform_axisym_hpx.h │ ├── s2let_transform_axisym_lm.h │ ├── s2let_transform_axisym_mw.h │ ├── s2let_types.h │ └── s2let_version.in.h ├── lib └── .gitignore ├── makefile ├── pom.xml ├── pyproject.toml ├── run_denoising_demos.sh ├── run_timing_error.py ├── s2let_timing_plots.py ├── setup.cfg ├── src ├── c │ ├── CMakeLists.txt │ ├── s2let_about.c │ ├── s2let_alloc.c │ ├── s2let_analysis.c │ ├── s2let_analysis_adjoint.c │ ├── s2let_axisym_denoising_demo.c │ ├── s2let_denoising_demo.c │ ├── s2let_fits.c │ ├── s2let_helper.c │ ├── s2let_hpx.c │ ├── s2let_hpx_demo.c │ ├── s2let_idl_hpx.c │ ├── s2let_idl_mw.c │ ├── s2let_lm.c │ ├── s2let_math.c │ ├── s2let_mw.c │ ├── s2let_spin_denoising_demo.c │ ├── s2let_synthesis.c │ ├── s2let_synthesis_adjoint.c │ ├── s2let_tiling.c │ ├── s2let_transform_axisym_analysis_hpx_real.c │ ├── s2let_transform_axisym_analysis_mw_real.c │ ├── s2let_transform_axisym_hpx.c │ ├── s2let_transform_axisym_lm.c │ ├── s2let_transform_axisym_mw.c │ ├── s2let_transform_axisym_synthesis_hpx_real.c │ └── s2let_transform_axisym_synthesis_mw_real.c ├── doxygen.config ├── f90 │ └── s2let_hpx.f90 ├── idl │ ├── s2let_axisym_hpx_wav_analysis.pro │ ├── s2let_axisym_hpx_wav_synthesis.pro │ ├── s2let_axisym_mw_wav_analysis.pro │ ├── s2let_axisym_mw_wav_analysis_multires.pro │ ├── s2let_axisym_mw_wav_analysis_multires_real.pro │ ├── s2let_axisym_mw_wav_analysis_real.pro │ ├── s2let_axisym_mw_wav_synthesis.pro │ ├── s2let_axisym_mw_wav_synthesis_multires.pro │ ├── s2let_axisym_mw_wav_synthesis_multires_real.pro │ ├── s2let_axisym_mw_wav_synthesis_real.pro │ ├── s2let_demo1.pro │ ├── s2let_demo2.pro │ ├── s2let_dylib_exists.pro │ ├── s2let_get_dylib.pro │ ├── s2let_get_mw_bandlimit.pro │ ├── s2let_get_wav_bandlimit.pro │ ├── s2let_healpix2mw.pro │ ├── s2let_hpx_alm2map_real.pro │ ├── s2let_hpx_demo.pro │ ├── s2let_hpx_map2alm_real.pro │ ├── s2let_j_max.pro │ ├── s2let_make_doc.pro │ ├── s2let_mw_alm2map.pro │ ├── s2let_mw_alm2map_real.pro │ ├── s2let_mw_map2alm.pro │ ├── s2let_mw_map2alm_real.pro │ ├── s2let_mw_pixel_edges.pro │ ├── s2let_mw_plot_mollweide.pro │ ├── s2let_mw_read_real_map.pro │ ├── s2let_mw_sampling.pro │ ├── s2let_mw_write_real_map.pro │ ├── s2let_test.pro │ └── s2let_valid_wav_parameters.pro ├── java │ └── org │ │ └── s2let │ │ ├── AxisymmetricWaveletTransform.java │ │ ├── PixelizedMap.java │ │ ├── SamplingScheme.java │ │ └── SphericalHarmonicTransform.java ├── jnaerator │ └── config.jnaerator ├── matlab │ ├── #s2let_transform_axisym_analysis_mw_mex.c# │ ├── EGM2008_Topography_flms_L0128.mat │ ├── fitswrite.m │ ├── kappas_need.mat │ ├── kappas_s2dw.mat │ ├── kappas_spline.mat │ ├── make_card.m │ ├── s2let_bandlimit.m │ ├── s2let_bandlimit_mex.c │ ├── s2let_check_axisym_tiling.m │ ├── s2let_check_cur_tiling.m │ ├── s2let_check_tiling.m │ ├── s2let_compute_scal.m │ ├── s2let_compute_wav.m │ ├── s2let_curvelet_tiling.m │ ├── s2let_curvelet_transform_test_lm2cur_cur2lm.m │ ├── s2let_curvelet_transform_test_lm2lmn_lmn2lm.m │ ├── s2let_curvelet_transform_test_px2cur_cur2px.m │ ├── s2let_demo1.m │ ├── s2let_demo2.m │ ├── s2let_demo3.m │ ├── s2let_demo4.m │ ├── s2let_demo5.m │ ├── s2let_demo6.m │ ├── s2let_demo7_curvelet_Plot_Funcs_and_Tiling.m │ ├── s2let_demo8_curvelet_Mollweide_EarthTopography.m │ ├── s2let_demo_covariance.m │ ├── s2let_demo_curvelet_covariance.m │ ├── s2let_demo_curvelet_evaluate_performance.m │ ├── s2let_demo_ridgelet_evaluate.m │ ├── s2let_demo_ridgelet_plot.m │ ├── s2let_elmin.m │ ├── s2let_fulltest.m │ ├── s2let_fulltest_curvelet.m │ ├── s2let_hpx2mw.m │ ├── s2let_hpx_alm2map.m │ ├── s2let_hpx_alm2map_mex.c │ ├── s2let_hpx_alm2map_spin.m │ ├── s2let_hpx_alm2map_spin_mex.c │ ├── s2let_hpx_map2alm.m │ ├── s2let_hpx_map2alm_mex.c │ ├── s2let_hpx_map2alm_spin.m │ ├── s2let_hpx_map2alm_spin_mex.c │ ├── s2let_hpx_plot_mollweide.m │ ├── s2let_hpx_read_real_map.m │ ├── s2let_hpx_read_real_spin_maps.m │ ├── s2let_hpx_sampling_ring.m │ ├── s2let_hpx_write_real_map.m │ ├── s2let_hpx_write_real_spin_maps.m │ ├── s2let_hpxtest.m │ ├── s2let_jmax.m │ ├── s2let_jmax_mex.c │ ├── s2let_make_doc.m │ ├── s2let_mw2hpx.m │ ├── s2let_mw_arr2vec.m │ ├── s2let_mw_read_real_map.m │ ├── s2let_mw_vec2arr.m │ ├── s2let_mw_write_real_map.m │ ├── s2let_mwss_arr2vec.m │ ├── s2let_mwss_read_real_map.m │ ├── s2let_mwss_vec2arr.m │ ├── s2let_mwss_write_real_map.m │ ├── s2let_perf_tests.m │ ├── s2let_plot_axisym_tiling.m │ ├── s2let_plot_curvelet_on_sphere.m │ ├── s2let_plot_curvelet_parametric.m │ ├── s2let_plot_curvelet_tiling.m │ ├── s2let_plot_denoising_demo.m │ ├── s2let_plot_mollweide.m │ ├── s2let_plot_sphere.m │ ├── s2let_plot_wavs.m │ ├── s2let_radon_inverse.m │ ├── s2let_radon_transform.m │ ├── s2let_ridgelet_analysis.m │ ├── s2let_ridgelet_compute_wav.m │ ├── s2let_ridgelet_synthesis.m │ ├── s2let_smoothing.m │ ├── s2let_transform_analysis_adjoint_lm2wav.m │ ├── s2let_transform_analysis_adjoint_lm2wav_mex.c │ ├── s2let_transform_analysis_adjoint_mw.m │ ├── s2let_transform_analysis_adjoint_mw_mex.c │ ├── s2let_transform_analysis_lm2wav.m │ ├── s2let_transform_analysis_lm2wav_mex.c │ ├── s2let_transform_analysis_mw.m │ ├── s2let_transform_analysis_mw_mex.c │ ├── s2let_transform_axisym_analysis_adjoint_mw.m │ ├── s2let_transform_axisym_analysis_adjoint_mw_mex.c │ ├── s2let_transform_axisym_analysis_hpx.m │ ├── s2let_transform_axisym_analysis_hpx_mex.c │ ├── s2let_transform_axisym_analysis_mw.m │ ├── s2let_transform_axisym_analysis_mw_mex.c │ ├── s2let_transform_axisym_synthesis_adjoint_mw.m │ ├── s2let_transform_axisym_synthesis_adjoint_mw_mex.c │ ├── s2let_transform_axisym_synthesis_hpx.m │ ├── s2let_transform_axisym_synthesis_hpx_mex.c │ ├── s2let_transform_axisym_synthesis_mw.m │ ├── s2let_transform_axisym_synthesis_mw_mex.c │ ├── s2let_transform_axisym_tiling.m │ ├── s2let_transform_axisym_tiling_mex.c │ ├── s2let_transform_curvelet_analysis_lm2cur.m │ ├── s2let_transform_curvelet_analysis_lm2lmn.m │ ├── s2let_transform_curvelet_analysis_px2cur.m │ ├── s2let_transform_curvelet_synthesis_cur2lm.m │ ├── s2let_transform_curvelet_synthesis_cur2px.m │ ├── s2let_transform_curvelet_synthesis_lmn2lm.m │ ├── s2let_transform_synthesis_adjoint_lm2wav.m │ ├── s2let_transform_synthesis_adjoint_lm2wav_mex.c │ ├── s2let_transform_synthesis_adjoint_mw.m │ ├── s2let_transform_synthesis_adjoint_mw_mex.c │ ├── s2let_transform_synthesis_lm2wav.m │ ├── s2let_transform_synthesis_lm2wav_mex.c │ ├── s2let_transform_synthesis_mw.m │ ├── s2let_transform_synthesis_mw_mex.c │ ├── s2let_wavelet_tiling.m │ └── s2let_wavelet_tiling_mex.c └── pys2let │ ├── CMakeLists.txt │ ├── __init__.py │ ├── plots.py │ └── pys2let.pyx ├── test ├── c │ ├── CMakeLists.txt │ ├── s2let_hpx_test.c │ ├── s2let_test.c │ ├── s2let_test_csv.c │ ├── test_adjoint.c │ ├── test_axisym_vs_directional.c │ ├── test_back_and_forth.c │ └── test_tiling.c ├── java │ └── org │ │ └── s2let │ │ ├── AxisymmetricWaveletTransformTest.java │ │ ├── HealpixMapTest.java │ │ ├── MWMapTest.java │ │ └── S2letLibraryTest.java └── python │ ├── axisym_hpx.py │ ├── directional.py │ ├── directional_manual.py │ ├── mw.py │ ├── test_axisym_adjoints.py │ └── test_directional_harmonic.py ├── test_package ├── CMakeLists.txt ├── conanfile.py └── example.c └── uv.lock /.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | BasedOnStyle: LLVM 3 | AlignAfterOpenBracket: AlwaysBreak 4 | AllowAllArgumentsOnNextLine: true 5 | BinPackArguments: false 6 | BinPackParameters: false 7 | ColumnLimit: 88 8 | CompactNamespaces: true 9 | IncludeBlocks: Regroup 10 | IndentWidth: 2 11 | Language: Cpp 12 | ReflowComments: true 13 | SortIncludes: true 14 | UseTab: Never 15 | IncludeCategories: 16 | - Regex: '^' 17 | Priority: 10 18 | - Regex: '^".*\.h"' 19 | Priority: 9 20 | - Regex: '^<.*\.h>' 21 | Priority: 8 22 | ... 23 | -------------------------------------------------------------------------------- /.github/workflows/cmake.yml: -------------------------------------------------------------------------------- 1 | name: CMake Build 2 | 3 | on: 4 | push: 5 | branches: ["main"] 6 | pull_request: 7 | 8 | env: 9 | BUILD_TYPE: Debug 10 | 11 | jobs: 12 | build: 13 | name: CMake build on ${{ matrix.os }} 14 | runs-on: ${{ matrix.os }} 15 | strategy: 16 | fail-fast: false 17 | matrix: 18 | os: [ubuntu-latest, macos-latest] 19 | python-version: [3.8] 20 | 21 | steps: 22 | - uses: actions/checkout@v4 23 | 24 | - name: Set up Python ${{ matrix.python-version }} 25 | uses: actions/setup-python@v2 26 | with: 27 | python-version: ${{ matrix.python-version }} 28 | 29 | - name: Create Build Environment 30 | shell: bash 31 | run: | 32 | python -m pip install wheel 33 | python -m pip install --upgrade pip "conan" 34 | cmake -E make_directory ${{runner.workspace}}/build 35 | 36 | - name: Configure CMake 37 | working-directory: ${{runner.workspace}}/build 38 | run: >- 39 | cmake $GITHUB_WORKSPACE 40 | -DCMAKE_C_COMPILER=gcc 41 | -DCMAKE_BUILD_TYPE=$BUILD_TYPE 42 | -Dpython=False 43 | -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=./cmake/conan_provider.cmake 44 | 45 | - name: Build 46 | working-directory: ${{runner.workspace}}/build 47 | run: cmake --build . --config $BUILD_TYPE 48 | 49 | - name: Test 50 | working-directory: ${{runner.workspace}}/build 51 | run: ctest -C $BUILD_TYPE --output-on-failure 52 | 53 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.sublime-workspace 2 | *.zip 3 | *checkpoint.ipynb 4 | *.egg-info 5 | *.tif 6 | *fort.6 7 | *.orig 8 | *.fits 9 | *.csv 10 | *.so 11 | *.pdf 12 | *.png 13 | *.DS_Store 14 | *.o 15 | *.mexa64 16 | *.mexmaci64 17 | *~ 18 | *pys2let.c 19 | *.idea/ 20 | 21 | core 22 | vgcore.* 23 | *.dat 24 | *.swp 25 | build/ 26 | CMakeCache.txt 27 | CMakeFiles/ 28 | dist/ 29 | MANIFEST 30 | .clangd/ 31 | compile_commands.json 32 | /_skbuild/ 33 | .devenv/ 34 | .devenv.* 35 | devenv* 36 | .envrc 37 | /wheelhouse/ 38 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | default_language_version: 2 | python: python3.8 3 | repos: 4 | - repo: https://github.com/pre-commit/pre-commit-hooks 5 | rev: v3.1.0 6 | hooks: 7 | - id: check-merge-conflict 8 | - id: debug-statements 9 | - id: no-commit-to-branch 10 | args: ["--branch", "master"] 11 | - repo: https://github.com/prettier/prettier 12 | rev: 2.1.2 13 | hooks: 14 | - id: prettier 15 | files: '.+\.yaml' 16 | -------------------------------------------------------------------------------- /COPYRIGHT.txt: -------------------------------------------------------------------------------- 1 | S2LET package to perform fast wavelet transform on the sphere 2 | Copyright (C) 2012 Boris Leistedt & Jason McEwen 3 | 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include CMakeLists.txt 2 | include setup.py setup.cfg pyproject.toml 3 | include COPYRIGHT.txt LICENSE.md README.md 4 | include cmake/*.cmake 5 | include conanfile.txt 6 | recursive-include src/c *.c CMakeLists.txt 7 | recursive-include include/s2let *.h 8 | recursive-include src/pys2let *.py *.pyx *.md CMakeLists.txt 9 | -------------------------------------------------------------------------------- /bin/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /cmake/S2letConfig.in.cmake: -------------------------------------------------------------------------------- 1 | set(S2LET_VERSION "@PROJECT_VERSION@") 2 | 3 | @PACKAGE_INIT@ 4 | 5 | include(CMakeFindDependencyMacro) 6 | find_dependency(astro-informatics-so3 REQUIRED) 7 | 8 | include("${CMAKE_CURRENT_LIST_DIR}/sshtTargets.cmake") 9 | set(S2LET_LIBRARIES s2let::s2let) 10 | 11 | check_required_components(S2LET) -------------------------------------------------------------------------------- /cmake/conan_dependencies.cmake: -------------------------------------------------------------------------------- 1 | if(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake") 2 | message( 3 | STATUS 4 | "Downloading conan.cmake from https://github.com/conan-io/cmake-conan") 5 | file(DOWNLOAD 6 | "https://github.com/conan-io/cmake-conan/raw/v0.16.1/conan.cmake" 7 | "${CMAKE_BINARY_DIR}/conan.cmake" TLS_VERIFY ON) 8 | endif() 9 | include(${CMAKE_BINARY_DIR}/conan.cmake) 10 | 11 | conan_cmake_configure(CONANFILE ${PROJECT_SOURCE_DIR}/conanfile.txt GENERATORS 12 | cmake_find_package) 13 | conan_cmake_autodetect(settings) 14 | conan_cmake_install( 15 | PATH_OR_REFERENCE 16 | ${PROJECT_SOURCE_DIR}/conanfile.txt 17 | GENERATOR 18 | cmake_find_package 19 | cmake_paths 20 | BUILD 21 | missing 22 | REMOTE 23 | conancenter 24 | SETTINGS 25 | ${settings}) 26 | -------------------------------------------------------------------------------- /cmake/exporting.cmake: -------------------------------------------------------------------------------- 1 | # Exports s2let so other packages can access it 2 | export( 3 | TARGETS s2let 4 | FILE "${PROJECT_BINARY_DIR}/s2letTargets.cmake" 5 | NAMESPACE s2let::) 6 | 7 | # Avoids creating an entry in the cmake registry. 8 | if(NOT NOEXPORT) 9 | export(PACKAGE s2let) 10 | endif() 11 | 12 | # First in binary dir 13 | set(INCLUDE_INSTALL_DIR include/) 14 | include(CMakePackageConfigHelpers) 15 | configure_package_config_file( 16 | cmake/S2letConfig.in.cmake "${PROJECT_BINARY_DIR}/s2letConfig.cmake" 17 | INSTALL_DESTINATION lib/cmake/s2let 18 | PATH_VARS INCLUDE_INSTALL_DIR) 19 | write_basic_package_version_file( 20 | s2letConfigVersion.cmake 21 | VERSION ${PROJECT_VERSION} 22 | COMPATIBILITY SameMajorVersion) 23 | 24 | if(NOT CONAN_EXPORTED) 25 | install(FILES "${PROJECT_BINARY_DIR}/s2letConfig.cmake" 26 | "${PROJECT_BINARY_DIR}/s2letConfigVersion.cmake" 27 | DESTINATION lib/cmake/s2let) 28 | endif() 29 | 30 | install( 31 | EXPORT s2letTargets 32 | DESTINATION lib/cmake/s2let 33 | NAMESPACE s2let::) 34 | -------------------------------------------------------------------------------- /cmake/fetch_cmocka.cmake: -------------------------------------------------------------------------------- 1 | include(FetchContent) 2 | 3 | FetchContent_Declare( 4 | CMocka 5 | GIT_REPOSITORY https://gitlab.com/cmocka/cmocka.git 6 | GIT_TAG cmocka-1.1.5) 7 | 8 | set(WITH_STATIC_LIB 9 | ON 10 | CACHE BOOL "CMocka: Build with a static library" FORCE) 11 | set(WITH_CMOCKERY_SUPPORT 12 | OFF 13 | CACHE BOOL "CMocka: Install a cmockery header" FORCE) 14 | set(PICKY_DEVELOPER 15 | OFF 16 | CACHE BOOL "CMocka: Build with picky developer flags" FORCE) 17 | FetchContent_MakeAvailable("cmocka") 18 | -------------------------------------------------------------------------------- /conanfile.txt: -------------------------------------------------------------------------------- 1 | [requires] 2 | astro-informatics-so3/[>=1.3.4] 3 | ssht/[>=1.5.2] 4 | cfitsio/[>=3.490] 5 | [layout] 6 | cmake_layout 7 | [generators] 8 | CMakeDeps 9 | [options] 10 | cfitsio/*:shared=False 11 | -------------------------------------------------------------------------------- /data/.gitignore: -------------------------------------------------------------------------------- 1 | spin_signal_* 2 | real_signal_* 3 | -------------------------------------------------------------------------------- /data/earth_tomo_mw_128.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/data/earth_tomo_mw_128.fits -------------------------------------------------------------------------------- /data/earth_tomo_mw_128_rot.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/data/earth_tomo_mw_128_rot.fits -------------------------------------------------------------------------------- /data/somecmbsimu_hpx_128.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/data/somecmbsimu_hpx_128.fits -------------------------------------------------------------------------------- /data/wmap_mcmc_base_k_synch_stk_q_9yr_v5.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/data/wmap_mcmc_base_k_synch_stk_q_9yr_v5.fits -------------------------------------------------------------------------------- /data/wmap_mcmc_base_k_synch_stk_u_9yr_v5.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/data/wmap_mcmc_base_k_synch_stk_u_9yr_v5.fits -------------------------------------------------------------------------------- /docs/c/dir_120ed4da3e3217b1e7fc0b4f48568e79_dep.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/c/dir_120ed4da3e3217b1e7fc0b4f48568e79_dep.md5: -------------------------------------------------------------------------------- 1 | 9d2c749d53438a276a668c54951803ba -------------------------------------------------------------------------------- /docs/c/dir_2756d41f8717da58192571bd3d5ae320_dep.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/c/dir_2756d41f8717da58192571bd3d5ae320_dep.md5: -------------------------------------------------------------------------------- 1 | fb0b3897b7d876b96230e41423c0bc24 -------------------------------------------------------------------------------- /docs/c/dir_5eb159725f84c66aafd839904a4acdd0_dep.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/c/dir_5eb159725f84c66aafd839904a4acdd0_dep.md5: -------------------------------------------------------------------------------- 1 | 61f51a1513a402eb97432809781576b7 -------------------------------------------------------------------------------- /docs/c/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/c/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5: -------------------------------------------------------------------------------- 1 | 7651a30be759acc02ca6729d4223c00b -------------------------------------------------------------------------------- /docs/c/dir_7420a7c8f71871d771403938d4d24c4a_dep.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/c/dir_7420a7c8f71871d771403938d4d24c4a_dep.md5: -------------------------------------------------------------------------------- 1 | c9cb171af120dbf61dd4af19196862b4 -------------------------------------------------------------------------------- /docs/c/graph_legend.md5: -------------------------------------------------------------------------------- 1 | f51bf6e9a10430aafef59831b08dcbfe -------------------------------------------------------------------------------- /docs/c/s2let_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | ec0c18150ef9065ce3471c82f7c0eb0b -------------------------------------------------------------------------------- /docs/c/s2let_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 2c73976587779fac08e5ed3456d82266 -------------------------------------------------------------------------------- /docs/c/s2let__about_8c__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__about_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 1376194a41fb8260bd8eedef69739be2 -------------------------------------------------------------------------------- /docs/c/s2let__alloc_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 16c99823824ea97f090b2fc21a07f5dd -------------------------------------------------------------------------------- /docs/c/s2let__alloc_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | d5883afd5ecca568e6db571c60eb1b0c -------------------------------------------------------------------------------- /docs/c/s2let__alloc_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/c/s2let__alloc_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 150b065c1da6ff32316fb2c7d03dbf92 -------------------------------------------------------------------------------- /docs/c/s2let__analysis_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 6a066dac9df0ac78c8d8a4b63e574e9f -------------------------------------------------------------------------------- /docs/c/s2let__analysis_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 93b9326699abf6a7df5afd87e47532fb -------------------------------------------------------------------------------- /docs/c/s2let__analysis_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__analysis_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 37ffb496906e87527328b2c8dc10fac7 -------------------------------------------------------------------------------- /docs/c/s2let__analysis__adjoint_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 48dba1966a91b76ce92362d5430e334b -------------------------------------------------------------------------------- /docs/c/s2let__analysis__adjoint_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | cda72a3ab0ee0f26eb94da7936ec4a09 -------------------------------------------------------------------------------- /docs/c/s2let__analysis__adjoint_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__analysis__adjoint_8h__incl.md5: -------------------------------------------------------------------------------- 1 | c5a45ca843eb42b28a5352ac38b093a8 -------------------------------------------------------------------------------- /docs/c/s2let__axisym__denoising__demo_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 28560459735034fd64a1bf3449e1c3f5 -------------------------------------------------------------------------------- /docs/c/s2let__axisym__denoising__demo_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__axisym__denoising__demo_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 42d6c41f0c8c33aefa9160b3f1bf3533 -------------------------------------------------------------------------------- /docs/c/s2let__denoising__demo_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 5e3fae1296fffd461eb601ac65cb2a89 -------------------------------------------------------------------------------- /docs/c/s2let__denoising__demo_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__denoising__demo_8h__incl.md5: -------------------------------------------------------------------------------- 1 | b115925742d95ef17b309b1e0ab81c44 -------------------------------------------------------------------------------- /docs/c/s2let__error_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 79b7ed4a3a0760cffa0fcffaa4267d7b -------------------------------------------------------------------------------- /docs/c/s2let__error_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/c/s2let__error_8h__incl.md5: -------------------------------------------------------------------------------- 1 | e54eba39331bbe3520c7c0a2e234c0f2 -------------------------------------------------------------------------------- /docs/c/s2let__fits_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 3c50de52687912afb7e7ec7ac06ed31d -------------------------------------------------------------------------------- /docs/c/s2let__fits_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | ffcb0c90c75016840d846495f994cffb -------------------------------------------------------------------------------- /docs/c/s2let__helper_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 35793edbe09857904d79626ded69d8ec -------------------------------------------------------------------------------- /docs/c/s2let__helper_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 2b3cf0a74b948914f7211a431026938c -------------------------------------------------------------------------------- /docs/c/s2let__helper_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__helper_8h__incl.md5: -------------------------------------------------------------------------------- 1 | cc34a0150c99f7c4d6d61e857f99ef21 -------------------------------------------------------------------------------- /docs/c/s2let__hpx_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 426c0cb8d43a23048a4a83885f5601f6 -------------------------------------------------------------------------------- /docs/c/s2let__hpx_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | f7e9889fb45902b841fc5f59deb693bb -------------------------------------------------------------------------------- /docs/c/s2let__hpx_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/c/s2let__hpx_8h__incl.md5: -------------------------------------------------------------------------------- 1 | c041c75cbf051318e6d5fcceebd85759 -------------------------------------------------------------------------------- /docs/c/s2let__hpx__demo_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 99038d3bbcea717963450d07ef60f4c7 -------------------------------------------------------------------------------- /docs/c/s2let__hpx__test_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 6b912fa8295759e9f44b4ae3098386d3 -------------------------------------------------------------------------------- /docs/c/s2let__idl__hpx_8c__incl.md5: -------------------------------------------------------------------------------- 1 | ef80a1ec67dab8c939f84e817b13811c -------------------------------------------------------------------------------- /docs/c/s2let__idl__hpx_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 648ff4eb159408b0ef9b62355795e3ba -------------------------------------------------------------------------------- /docs/c/s2let__idl__hpx_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__idl__hpx_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 97c4155a2b3ae49c247190554343ca61 -------------------------------------------------------------------------------- /docs/c/s2let__idl__mw_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 09ee76b6988c50afccbc8c801bb83e09 -------------------------------------------------------------------------------- /docs/c/s2let__idl__mw_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 7a402ced3ada020473e45b31bb16db12 -------------------------------------------------------------------------------- /docs/c/s2let__lm_8c__incl.md5: -------------------------------------------------------------------------------- 1 | a95daecd2205e4652ecb3167e2d17c42 -------------------------------------------------------------------------------- /docs/c/s2let__lm_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 51061e150c64346d41058cd75f6366f7 -------------------------------------------------------------------------------- /docs/c/s2let__lm_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__lm_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 10215579db71ff27246960351b12a9f7 -------------------------------------------------------------------------------- /docs/c/s2let__math_8c__incl.md5: -------------------------------------------------------------------------------- 1 | a943e11100b1904de70c747dbed747d2 -------------------------------------------------------------------------------- /docs/c/s2let__math_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 0bbd0bd4b023eeb8a3ae41734f47ffd8 -------------------------------------------------------------------------------- /docs/c/s2let__math_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__math_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 9aab85b3baaf799e7c4454200cd53217 -------------------------------------------------------------------------------- /docs/c/s2let__mw_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 87331512468610b826bed4794bed12fd -------------------------------------------------------------------------------- /docs/c/s2let__mw_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 76a720e867393e17573c7c5d5f3bbd97 -------------------------------------------------------------------------------- /docs/c/s2let__mw_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__mw_8h__incl.md5: -------------------------------------------------------------------------------- 1 | c2c0ec031971d651c6e7658ce7d30fd7 -------------------------------------------------------------------------------- /docs/c/s2let__so3_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 1e8564989b3b598ebde9a94026b7e256 -------------------------------------------------------------------------------- /docs/c/s2let__so3_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/c/s2let__so3_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 5baa4e0700a415df1bb66a83b3ab15db -------------------------------------------------------------------------------- /docs/c/s2let__spin__denoising__demo_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 502bf8beec9dbc0663816d15fd7f24f8 -------------------------------------------------------------------------------- /docs/c/s2let__synthesis_8c__incl.md5: -------------------------------------------------------------------------------- 1 | f22b4a35e69559b2c8a7ed4cf840d643 -------------------------------------------------------------------------------- /docs/c/s2let__synthesis_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 6c746741d56910ee6acee9898c2c375d -------------------------------------------------------------------------------- /docs/c/s2let__synthesis_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__synthesis_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 3e1b7662d90611c656bf096dfcd0f067 -------------------------------------------------------------------------------- /docs/c/s2let__synthesis__adjoint_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 1d83ba4f93cacfad117bf10829c088ef -------------------------------------------------------------------------------- /docs/c/s2let__synthesis__adjoint_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 0e4e3be17e5a1026f211ac1af4f2ecd0 -------------------------------------------------------------------------------- /docs/c/s2let__synthesis__adjoint_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__synthesis__adjoint_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 025fb3108b1a84e4b609c2a3b3f9920a -------------------------------------------------------------------------------- /docs/c/s2let__test_8c__incl.md5: -------------------------------------------------------------------------------- 1 | a4c350f110ba01f440f90cc56d044780 -------------------------------------------------------------------------------- /docs/c/s2let__test__csv_8c__incl.md5: -------------------------------------------------------------------------------- 1 | f63454905f8897bf4fe03d693965a69e -------------------------------------------------------------------------------- /docs/c/s2let__tiling_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 6dea279a0f9b20ca2ceacaa6187ea6a0 -------------------------------------------------------------------------------- /docs/c/s2let__tiling_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 592510ae5e70cf3171716d06f91d7870 -------------------------------------------------------------------------------- /docs/c/s2let__tiling_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__tiling_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 0500042c2da34eab0682f3d369119017 -------------------------------------------------------------------------------- /docs/c/s2let__transform__axisym__analysis__hpx__real_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 918569133937e12e0b7af8a5c2fb845d -------------------------------------------------------------------------------- /docs/c/s2let__transform__axisym__analysis__mw__real_8c__incl.md5: -------------------------------------------------------------------------------- 1 | b4b031547ad1ec344ba88002d182cc84 -------------------------------------------------------------------------------- /docs/c/s2let__transform__axisym__hpx_8c__incl.md5: -------------------------------------------------------------------------------- 1 | e16b666048cf07192f890437d42ebaeb -------------------------------------------------------------------------------- /docs/c/s2let__transform__axisym__hpx_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 2639b99d38ac5aa2a224148e6e6c4126 -------------------------------------------------------------------------------- /docs/c/s2let__transform__axisym__lm_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 19d6a6e1e828a816fba7bc62deb60f80 -------------------------------------------------------------------------------- /docs/c/s2let__transform__axisym__lm_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 1c28cfeff722d0aacc65ec332e826f5a -------------------------------------------------------------------------------- /docs/c/s2let__transform__axisym__lm_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__transform__axisym__lm_8h__incl.md5: -------------------------------------------------------------------------------- 1 | a6452a607f40a511e59d5548c7d969ce -------------------------------------------------------------------------------- /docs/c/s2let__transform__axisym__mw_8c__incl.md5: -------------------------------------------------------------------------------- 1 | efa660c767019736dd2eb54dde8401e2 -------------------------------------------------------------------------------- /docs/c/s2let__transform__axisym__mw_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 794f7efadb28322e2c07956ba4c18bd2 -------------------------------------------------------------------------------- /docs/c/s2let__transform__axisym__mw_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__transform__axisym__mw_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 23bdf9aa1d2d634d9e85f61de2e4ef97 -------------------------------------------------------------------------------- /docs/c/s2let__transform__axisym__synthesis__hpx__real_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 23017f3c48cb9491a63b856c5b9a235f -------------------------------------------------------------------------------- /docs/c/s2let__transform__axisym__synthesis__mw__real_8c__incl.md5: -------------------------------------------------------------------------------- 1 | c363915b5899747e979c13aaa45429b0 -------------------------------------------------------------------------------- /docs/c/s2let__types_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 2ed62da257d3873d6b023c2bf2f83f76 -------------------------------------------------------------------------------- /docs/c/s2let__types_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/c/s2let__types_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 47429b02eeeda652eb899160864f257b -------------------------------------------------------------------------------- /docs/c/search/all_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['abs_0',['ABS',['../s2let__math_8h.html#ae2f08dc603ae93c402abd918ba4e23e1',1,'s2let_math.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/all_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['b_1',['B',['../structs2let__parameters__t.html#a5aa59dd22d193213c138188e4a85282a',1,'s2let_parameters_t']]], 4 | ['b3_5fspline_2',['b3_spline',['../s2let__math_8c.html#a77bf2f88aa8abaede094b8d4c98f641b',1,'s2let_math.c']]], 5 | ['binomial_5fcoefficient_3',['binomial_coefficient',['../s2let__math_8c.html#a89bd27b2a137f59ca4c8aa8e3f1c485f',1,'binomial_coefficient(int n, int k, int exact): s2let_math.c'],['../s2let__math_8h.html#a89bd27b2a137f59ca4c8aa8e3f1c485f',1,'binomial_coefficient(int n, int k, int exact): s2let_math.c']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/c/search/all_10.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_10.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['upsample_343',['upsample',['../structs2let__parameters__t.html#aec567c0f2af65ec246fd92169ae66216',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/all_11.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_11.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['verbosity_344',['verbosity',['../structs2let__parameters__t.html#a6198529ad111be476461d3d249d3fa0a',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/all_12.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_12.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['waveletpower_345',['waveletpower',['../s2let__denoising__demo_8c.html#aa037f9325b8399e224222f8d5b9a2788',1,'waveletpower(complex double *wav_lm, int L): s2let_denoising_demo.c'],['../s2let__spin__denoising__demo_8c.html#aa037f9325b8399e224222f8d5b9a2788',1,'waveletpower(complex double *wav_lm, int L): s2let_spin_denoising_demo.c'],['../s2let__denoising__demo_8h.html#aa037f9325b8399e224222f8d5b9a2788',1,'waveletpower(complex double *wav_lm, int L): s2let_denoising_demo.c']]], 4 | ['write_5fhealpix_5fmap_5f_346',['write_healpix_map_',['../s2let__hpx_8c.html#a8b5ed98a88a7f8a79c0d31338f972b19',1,'s2let_hpx.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/c/search/all_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['dl_5fmethod_4',['dl_method',['../structs2let__parameters__t.html#a6d39d3d306f418f81d599d2fad31158d',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/all_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['f_5fneedlet_5',['f_needlet',['../s2let__math_8c.html#acba5b02a49e931413dc0cde1fce77234',1,'s2let_math.c']]], 4 | ['f_5fs2dw_6',['f_s2dw',['../s2let__math_8c.html#a3a626259154382ef236e7d9ab33cca49',1,'s2let_math.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/c/search/all_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['gen_5fflmn_5fcomplex_7',['gen_flmn_complex',['../test__adjoint_8c.html#a4905dad7b518bab34378cec6d748634c',1,'test_adjoint.c']]], 4 | ['get_5fmax_5ferror_8',['get_max_error',['../s2let__test__csv_8c.html#a4d00c945ef5468ad68184f0bc1ada91a',1,'s2let_test_csv.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/c/search/all_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['hard_5fthreshold_9',['hard_threshold',['../s2let__spin__denoising__demo_8c.html#a6efb36935c405dca5e9dd591164f79a0',1,'s2let_spin_denoising_demo.c']]], 4 | ['hard_5fthreshold_5freal_10',['hard_threshold_real',['../s2let__denoising__demo_8c.html#a067d9bf357dbfd7a4986d3f62a9e8c45',1,'hard_threshold_real(double *g_wav, const double *threshold, const s2let_parameters_t *parameters): s2let_denoising_demo.c'],['../s2let__denoising__demo_8h.html#a067d9bf357dbfd7a4986d3f62a9e8c45',1,'hard_threshold_real(double *g_wav, const double *threshold, const s2let_parameters_t *parameters): s2let_denoising_demo.c']]], 5 | ['healpix_5fforward_5freal_5f_11',['healpix_forward_real_',['../s2let__hpx_8c.html#ad1de3129addcea74634d9f809615948b',1,'s2let_hpx.c']]], 6 | ['healpix_5fforward_5fspin_5freal_5f_12',['healpix_forward_spin_real_',['../s2let__hpx_8c.html#a3c1aa5d1d8986ea812c873bd8dd429fa',1,'s2let_hpx.c']]], 7 | ['healpix_5finverse_5freal_5f_13',['healpix_inverse_real_',['../s2let__hpx_8c.html#aeb1da4714bc41184ec236de731756560',1,'s2let_hpx.c']]], 8 | ['healpix_5finverse_5fspin_5freal_5f_14',['healpix_inverse_spin_real_',['../s2let__hpx_8c.html#a27eaaf7d94a6fa9c382fea95ad13d9a0',1,'s2let_hpx.c']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/c/search/all_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['idl_5fint_15',['IDL_INT',['../s2let__idl__hpx_8c.html#a02b9546523fe5ea064e9cc44ce4ad751',1,'IDL_INT(): s2let_idl_hpx.c'],['../s2let__idl__mw_8c.html#a02b9546523fe5ea064e9cc44ce4ad751',1,'IDL_INT(): s2let_idl_mw.c']]], 4 | ['idl_5flong_16',['IDL_LONG',['../s2let__idl__hpx_8c.html#a2d29aee49d7de2cb7d11978dd8dfe4a3',1,'IDL_LONG(): s2let_idl_hpx.c'],['../s2let__idl__mw_8c.html#a2d29aee49d7de2cb7d11978dd8dfe4a3',1,'IDL_LONG(): s2let_idl_mw.c']]], 5 | ['idl_5fsizeof_5fc_5flong_17',['IDL_SIZEOF_C_LONG',['../s2let__idl__hpx_8c.html#a313037b4edc7817a7a40c3a4615ebdfa',1,'IDL_SIZEOF_C_LONG(): s2let_idl_hpx.c'],['../s2let__idl__mw_8c.html#a313037b4edc7817a7a40c3a4615ebdfa',1,'IDL_SIZEOF_C_LONG(): s2let_idl_mw.c']]], 6 | ['idl_5fsizeof_5fc_5fptr_18',['IDL_SIZEOF_C_PTR',['../s2let__idl__hpx_8c.html#a40d088f282782bc6c35262aea13548c6',1,'IDL_SIZEOF_C_PTR(): s2let_idl_hpx.c'],['../s2let__idl__mw_8c.html#a40d088f282782bc6c35262aea13548c6',1,'IDL_SIZEOF_C_PTR(): s2let_idl_mw.c']]], 7 | ['idl_5fuint_19',['IDL_UINT',['../s2let__idl__hpx_8c.html#a5a626e989d3e813bd723db23edabbe08',1,'IDL_UINT(): s2let_idl_hpx.c'],['../s2let__idl__mw_8c.html#a5a626e989d3e813bd723db23edabbe08',1,'IDL_UINT(): s2let_idl_mw.c']]], 8 | ['idl_5fulong_20',['IDL_ULONG',['../s2let__idl__hpx_8c.html#abac63fddf94105cf1190b69730bb6a1c',1,'IDL_ULONG(): s2let_idl_hpx.c'],['../s2let__idl__mw_8c.html#abac63fddf94105cf1190b69730bb6a1c',1,'IDL_ULONG(): s2let_idl_mw.c']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/c/search/all_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['j_5fmin_21',['J_min',['../structs2let__parameters__t.html#a9146ca6b1dd496925173a0ab1feeccf7',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/all_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['l_22',['L',['../structs2let__parameters__t.html#a018fcd55bd13a231c2c71f16cca5c53b',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/all_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['n_28',['N',['../structs2let__parameters__t.html#a93d528e7cc428bfc6783e9a01567b748',1,'s2let_parameters_t']]], 4 | ['needlet_29',['NEEDLET',['../s2let__tiling_8c.html#aa95dc83ea2d993b343828e5c6ca4879aa1ab4d051220837ebef5b7bbc03e7f2ac',1,'s2let_tiling.c']]], 5 | ['needletpower_30',['needletpower',['../s2let__axisym__denoising__demo_8c.html#a16c08eb6db78637aae2b6ffdfd13cfe2',1,'needletpower(double *wav_lm, int L): s2let_axisym_denoising_demo.c'],['../s2let__axisym__denoising__demo_8h.html#a16c08eb6db78637aae2b6ffdfd13cfe2',1,'needletpower(double *wav_lm, int L): s2let_axisym_denoising_demo.c']]], 6 | ['nrepeat_31',['NREPEAT',['../s2let__test__csv_8c.html#a9fa6466347dd349266768c7f7f0b0e4e',1,'s2let_test_csv.c']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/c/search/all_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['original_5fspin_32',['original_spin',['../structs2let__parameters__t.html#a9b083a6f2ac9139fbe25605685c97b4e',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/all_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['pi_33',['PI',['../s2let__math_8h.html#a598a3330b3c21701223ee0ca14316eca',1,'PI(): s2let_math.h'],['../s2let__tiling_8h.html#a598a3330b3c21701223ee0ca14316eca',1,'PI(): s2let_tiling.h']]], 4 | ['printerror_34',['printerror',['../s2let__fits_8c.html#aca57f410eb9f3d6ec61c1c17d4aea3da',1,'s2let_fits.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/c/search/all_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ran2_5fdp_35',['ran2_dp',['../s2let__math_8c.html#a8f1de4509d2d559e1cf392353eae7afa',1,'ran2_dp(int idum): s2let_math.c'],['../s2let__test__csv_8c.html#a8f1de4509d2d559e1cf392353eae7afa',1,'ran2_dp(int idum): s2let_math.c'],['../s2let__math_8h.html#a8f1de4509d2d559e1cf392353eae7afa',1,'ran2_dp(int idum): s2let_math.c']]], 4 | ['read_5fhealpix_5fmap_5f_36',['read_healpix_map_',['../s2let__hpx_8c.html#ae43fcaf0a30b8979a329c9d8a639f9aa',1,'s2let_hpx.c']]], 5 | ['read_5fhealpix_5fmaps_5f_37',['read_healpix_maps_',['../s2let__hpx_8c.html#a24812c14ec76f109d5dae58289353afd',1,'s2let_hpx.c']]], 6 | ['reality_38',['reality',['../structs2let__parameters__t.html#a7718737039d19e05501792535b32ef6d',1,'s2let_parameters_t']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/c/search/all_e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/all_f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/classes_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['s2let_5fparameters_5ft_347',['s2let_parameters_t',['../structs2let__parameters__t.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 15 | 16 | 18 | image/svg+xml 19 | 21 | 22 | 23 | 24 | 25 | 27 | 31 | 32 | -------------------------------------------------------------------------------- /docs/c/search/defines_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/defines_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['abs_679',['ABS',['../s2let__math_8h.html#ae2f08dc603ae93c402abd918ba4e23e1',1,'s2let_math.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/defines_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/defines_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['idl_5fsizeof_5fc_5flong_680',['IDL_SIZEOF_C_LONG',['../s2let__idl__hpx_8c.html#a313037b4edc7817a7a40c3a4615ebdfa',1,'IDL_SIZEOF_C_LONG(): s2let_idl_hpx.c'],['../s2let__idl__mw_8c.html#a313037b4edc7817a7a40c3a4615ebdfa',1,'IDL_SIZEOF_C_LONG(): s2let_idl_mw.c']]], 4 | ['idl_5fsizeof_5fc_5fptr_681',['IDL_SIZEOF_C_PTR',['../s2let__idl__hpx_8c.html#a40d088f282782bc6c35262aea13548c6',1,'IDL_SIZEOF_C_PTR(): s2let_idl_hpx.c'],['../s2let__idl__mw_8c.html#a40d088f282782bc6c35262aea13548c6',1,'IDL_SIZEOF_C_PTR(): s2let_idl_mw.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/c/search/defines_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/defines_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['max_682',['MAX',['../s2let__math_8h.html#afa99ec4acc4ecb2dc3c2d05da15d0e3f',1,'s2let_math.h']]], 4 | ['min_683',['MIN',['../s2let__math_8h.html#a3acffbd305ee72dcd4593c0d8af64a4f',1,'s2let_math.h']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/c/search/defines_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/defines_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['nrepeat_684',['NREPEAT',['../s2let__test__csv_8c.html#a9fa6466347dd349266768c7f7f0b0e4e',1,'s2let_test_csv.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/defines_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/defines_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['pi_685',['PI',['../s2let__math_8h.html#a598a3330b3c21701223ee0ca14316eca',1,'PI(): s2let_math.h'],['../s2let__tiling_8h.html#a598a3330b3c21701223ee0ca14316eca',1,'PI(): s2let_tiling.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/defines_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/defines_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['s2let_5fcomplex_686',['S2LET_COMPLEX',['../s2let__types_8h.html#a121c8622035e81912b4b85b436b4ec6d',1,'s2let_types.h']]], 4 | ['s2let_5ferror_5fgeneric_687',['S2LET_ERROR_GENERIC',['../s2let__error_8h.html#a740f1ee53df6b15f6ca098bb9163c1fc',1,'s2let_error.h']]], 5 | ['s2let_5ferror_5fmem_5falloc_5fcheck_688',['S2LET_ERROR_MEM_ALLOC_CHECK',['../s2let__error_8h.html#a74500ae1fd825972a4508c643173c763',1,'s2let_error.h']]], 6 | ['s2let_5fsampling_5fmw_5fss_5fstr_689',['S2LET_SAMPLING_MW_SS_STR',['../s2let__mex_8h.html#aef877ec016bc062e71412e295efbe843',1,'s2let_mex.h']]], 7 | ['s2let_5fsampling_5fmw_5fstr_690',['S2LET_SAMPLING_MW_STR',['../s2let__mex_8h.html#a965fb52ef2d665d3443bd08e8ec47548',1,'s2let_mex.h']]], 8 | ['s2let_5fso3_5fn_5forder_691',['S2LET_SO3_N_ORDER',['../s2let__so3_8h.html#a0c50a5de20f171c266985a92764153b3',1,'s2let_so3.h']]], 9 | ['s2let_5fso3_5fstorage_692',['S2LET_SO3_STORAGE',['../s2let__so3_8h.html#a234c5518a86c602ca220a16b33dc2e22',1,'s2let_so3.h']]], 10 | ['s2let_5fstring_5flen_693',['S2LET_STRING_LEN',['../s2let__mex_8h.html#a3bd7f5fbd27ea58ab3a23a1eb7a6f4cd',1,'s2let_mex.h']]], 11 | ['s2let_5ftests_694',['S2LET_TESTS',['../test__back__and__forth_8c.html#a47e61454d11e89fdf7bdfed2b12de0f5',1,'S2LET_TESTS(): test_back_and_forth.c'],['../test__back__and__forth_8c.html#a47e61454d11e89fdf7bdfed2b12de0f5',1,'S2LET_TESTS(): test_back_and_forth.c']]] 12 | ]; 13 | -------------------------------------------------------------------------------- /docs/c/search/enums_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/enums_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['s2let_5fkernel_5ftype_671',['s2let_kernel_type',['../s2let__tiling_8c.html#aa95dc83ea2d993b343828e5c6ca4879a',1,'s2let_tiling.c']]], 4 | ['s2let_5fsampling_5ft_672',['s2let_sampling_t',['../s2let__types_8h.html#a1bdf3bdc527d0a90b16cf5f3f507001e',1,'s2let_types.h']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/c/search/enumvalues_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/enumvalues_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['needlet_673',['NEEDLET',['../s2let__tiling_8c.html#aa95dc83ea2d993b343828e5c6ca4879aa1ab4d051220837ebef5b7bbc03e7f2ac',1,'s2let_tiling.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/enumvalues_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/enumvalues_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['s2dw_674',['S2DW',['../s2let__tiling_8c.html#aa95dc83ea2d993b343828e5c6ca4879aad2e1e459d07d91ca00e5f09caf8b4558',1,'s2let_tiling.c']]], 4 | ['s2let_5fsampling_5fmw_675',['S2LET_SAMPLING_MW',['../s2let__types_8h.html#a1bdf3bdc527d0a90b16cf5f3f507001ea061a427ab87d0615aeea0bbc9ef5a8bc',1,'s2let_types.h']]], 5 | ['s2let_5fsampling_5fmw_5fss_676',['S2LET_SAMPLING_MW_SS',['../s2let__types_8h.html#a1bdf3bdc527d0a90b16cf5f3f507001ea4735249ce28fc1c5b443806760f8fcd8',1,'s2let_types.h']]], 6 | ['s2let_5fsampling_5fsize_677',['S2LET_SAMPLING_SIZE',['../s2let__types_8h.html#a1bdf3bdc527d0a90b16cf5f3f507001ea1eb522fb952502e38119d2a315cce842',1,'s2let_types.h']]], 7 | ['spline_678',['SPLINE',['../s2let__tiling_8c.html#aa95dc83ea2d993b343828e5c6ca4879aa4d8b3b9406a35793dead4b293d793463',1,'s2let_tiling.c']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/c/search/files_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/files_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/files_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['test_5fadjoint_2ec_401',['test_adjoint.c',['../test__adjoint_8c.html',1,'']]], 4 | ['test_5faxisym_5fvs_5fdirectional_2ec_402',['test_axisym_vs_directional.c',['../test__axisym__vs__directional_8c.html',1,'']]], 5 | ['test_5fback_5fand_5fforth_2ec_403',['test_back_and_forth.c',['../test__back__and__forth_8c.html',1,'']]], 6 | ['test_5ftiling_2ec_404',['test_tiling.c',['../test__tiling_8c.html',1,'']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/c/search/functions_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['b3_5fspline_405',['b3_spline',['../s2let__math_8c.html#a77bf2f88aa8abaede094b8d4c98f641b',1,'s2let_math.c']]], 4 | ['binomial_5fcoefficient_406',['binomial_coefficient',['../s2let__math_8c.html#a89bd27b2a137f59ca4c8aa8e3f1c485f',1,'binomial_coefficient(int n, int k, int exact): s2let_math.c'],['../s2let__math_8h.html#a89bd27b2a137f59ca4c8aa8e3f1c485f',1,'binomial_coefficient(int n, int k, int exact): s2let_math.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/c/search/functions_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['f_5fneedlet_407',['f_needlet',['../s2let__math_8c.html#acba5b02a49e931413dc0cde1fce77234',1,'s2let_math.c']]], 4 | ['f_5fs2dw_408',['f_s2dw',['../s2let__math_8c.html#a3a626259154382ef236e7d9ab33cca49',1,'s2let_math.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/c/search/functions_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/functions_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['gen_5fflmn_5fcomplex_409',['gen_flmn_complex',['../test__adjoint_8c.html#a4905dad7b518bab34378cec6d748634c',1,'test_adjoint.c']]], 4 | ['get_5fmax_5ferror_410',['get_max_error',['../s2let__test__csv_8c.html#a4d00c945ef5468ad68184f0bc1ada91a',1,'s2let_test_csv.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/c/search/functions_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['hard_5fthreshold_411',['hard_threshold',['../s2let__spin__denoising__demo_8c.html#a6efb36935c405dca5e9dd591164f79a0',1,'s2let_spin_denoising_demo.c']]], 4 | ['hard_5fthreshold_5freal_412',['hard_threshold_real',['../s2let__denoising__demo_8c.html#a067d9bf357dbfd7a4986d3f62a9e8c45',1,'hard_threshold_real(double *g_wav, const double *threshold, const s2let_parameters_t *parameters): s2let_denoising_demo.c'],['../s2let__denoising__demo_8h.html#a067d9bf357dbfd7a4986d3f62a9e8c45',1,'hard_threshold_real(double *g_wav, const double *threshold, const s2let_parameters_t *parameters): s2let_denoising_demo.c']]], 5 | ['healpix_5fforward_5freal_5f_413',['healpix_forward_real_',['../s2let__hpx_8c.html#ad1de3129addcea74634d9f809615948b',1,'s2let_hpx.c']]], 6 | ['healpix_5fforward_5fspin_5freal_5f_414',['healpix_forward_spin_real_',['../s2let__hpx_8c.html#a3c1aa5d1d8986ea812c873bd8dd429fa',1,'s2let_hpx.c']]], 7 | ['healpix_5finverse_5freal_5f_415',['healpix_inverse_real_',['../s2let__hpx_8c.html#aeb1da4714bc41184ec236de731756560',1,'s2let_hpx.c']]], 8 | ['healpix_5finverse_5fspin_5freal_5f_416',['healpix_inverse_spin_real_',['../s2let__hpx_8c.html#a27eaaf7d94a6fa9c382fea95ad13d9a0',1,'s2let_hpx.c']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/c/search/functions_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/functions_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['needletpower_421',['needletpower',['../s2let__axisym__denoising__demo_8c.html#a16c08eb6db78637aae2b6ffdfd13cfe2',1,'needletpower(double *wav_lm, int L): s2let_axisym_denoising_demo.c'],['../s2let__axisym__denoising__demo_8h.html#a16c08eb6db78637aae2b6ffdfd13cfe2',1,'needletpower(double *wav_lm, int L): s2let_axisym_denoising_demo.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/functions_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/functions_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['printerror_422',['printerror',['../s2let__fits_8c.html#aca57f410eb9f3d6ec61c1c17d4aea3da',1,'s2let_fits.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/functions_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/functions_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ran2_5fdp_423',['ran2_dp',['../s2let__math_8c.html#a8f1de4509d2d559e1cf392353eae7afa',1,'ran2_dp(int idum): s2let_math.c'],['../s2let__test__csv_8c.html#a8f1de4509d2d559e1cf392353eae7afa',1,'ran2_dp(int idum): s2let_math.c'],['../s2let__math_8h.html#a8f1de4509d2d559e1cf392353eae7afa',1,'ran2_dp(int idum): s2let_math.c']]], 4 | ['read_5fhealpix_5fmap_5f_424',['read_healpix_map_',['../s2let__hpx_8c.html#ae43fcaf0a30b8979a329c9d8a639f9aa',1,'s2let_hpx.c']]], 5 | ['read_5fhealpix_5fmaps_5f_425',['read_healpix_maps_',['../s2let__hpx_8c.html#a24812c14ec76f109d5dae58289353afd',1,'s2let_hpx.c']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/c/search/functions_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/functions_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/functions_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/functions_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['waveletpower_652',['waveletpower',['../s2let__denoising__demo_8c.html#aa037f9325b8399e224222f8d5b9a2788',1,'waveletpower(complex double *wav_lm, int L): s2let_denoising_demo.c'],['../s2let__spin__denoising__demo_8c.html#aa037f9325b8399e224222f8d5b9a2788',1,'waveletpower(complex double *wav_lm, int L): s2let_spin_denoising_demo.c'],['../s2let__denoising__demo_8h.html#aa037f9325b8399e224222f8d5b9a2788',1,'waveletpower(complex double *wav_lm, int L): s2let_denoising_demo.c']]], 4 | ['write_5fhealpix_5fmap_5f_653',['write_healpix_map_',['../s2let__hpx_8c.html#a8b5ed98a88a7f8a79c0d31338f972b19',1,'s2let_hpx.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/c/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
No Matches
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/c/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "abdfghijlmnoprstuvw", 4 | 1: "s", 5 | 2: "st", 6 | 3: "bfghmnprstw", 7 | 4: "bdjlnorsuv", 8 | 5: "i", 9 | 6: "s", 10 | 7: "ns", 11 | 8: "aimnps" 12 | }; 13 | 14 | var indexSectionNames = 15 | { 16 | 0: "all", 17 | 1: "classes", 18 | 2: "files", 19 | 3: "functions", 20 | 4: "variables", 21 | 5: "typedefs", 22 | 6: "enums", 23 | 7: "enumvalues", 24 | 8: "defines" 25 | }; 26 | 27 | var indexSectionLabels = 28 | { 29 | 0: "All", 30 | 1: "Data Structures", 31 | 2: "Files", 32 | 3: "Functions", 33 | 4: "Variables", 34 | 5: "Typedefs", 35 | 6: "Enumerations", 36 | 7: "Enumerator", 37 | 8: "Macros" 38 | }; 39 | 40 | -------------------------------------------------------------------------------- /docs/c/search/typedefs_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/typedefs_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['idl_5fint_667',['IDL_INT',['../s2let__idl__hpx_8c.html#a02b9546523fe5ea064e9cc44ce4ad751',1,'IDL_INT(): s2let_idl_hpx.c'],['../s2let__idl__mw_8c.html#a02b9546523fe5ea064e9cc44ce4ad751',1,'IDL_INT(): s2let_idl_mw.c']]], 4 | ['idl_5flong_668',['IDL_LONG',['../s2let__idl__hpx_8c.html#a2d29aee49d7de2cb7d11978dd8dfe4a3',1,'IDL_LONG(): s2let_idl_hpx.c'],['../s2let__idl__mw_8c.html#a2d29aee49d7de2cb7d11978dd8dfe4a3',1,'IDL_LONG(): s2let_idl_mw.c']]], 5 | ['idl_5fuint_669',['IDL_UINT',['../s2let__idl__hpx_8c.html#a5a626e989d3e813bd723db23edabbe08',1,'IDL_UINT(): s2let_idl_hpx.c'],['../s2let__idl__mw_8c.html#a5a626e989d3e813bd723db23edabbe08',1,'IDL_UINT(): s2let_idl_mw.c']]], 6 | ['idl_5fulong_670',['IDL_ULONG',['../s2let__idl__hpx_8c.html#abac63fddf94105cf1190b69730bb6a1c',1,'IDL_ULONG(): s2let_idl_hpx.c'],['../s2let__idl__mw_8c.html#abac63fddf94105cf1190b69730bb6a1c',1,'IDL_ULONG(): s2let_idl_mw.c']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/c/search/variables_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/variables_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['b_654',['B',['../structs2let__parameters__t.html#a5aa59dd22d193213c138188e4a85282a',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/variables_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/variables_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['dl_5fmethod_655',['dl_method',['../structs2let__parameters__t.html#a6d39d3d306f418f81d599d2fad31158d',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/variables_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/variables_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['j_5fmin_656',['J_min',['../structs2let__parameters__t.html#a9146ca6b1dd496925173a0ab1feeccf7',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/variables_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/variables_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['l_657',['L',['../structs2let__parameters__t.html#a018fcd55bd13a231c2c71f16cca5c53b',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/variables_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/variables_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['n_658',['N',['../structs2let__parameters__t.html#a93d528e7cc428bfc6783e9a01567b748',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/variables_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/variables_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['original_5fspin_659',['original_spin',['../structs2let__parameters__t.html#a9b083a6f2ac9139fbe25605685c97b4e',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/variables_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/c/search/variables_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['reality_660',['reality',['../structs2let__parameters__t.html#a7718737039d19e05501792535b32ef6d',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/variables_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['s2let_5fkernel_661',['s2let_kernel',['../s2let__tiling_8c.html#ab2ff4854b8611353b7ba607e99a742f3',1,'s2let_tiling.c']]], 4 | ['sampling_5fscheme_662',['sampling_scheme',['../structs2let__parameters__t.html#a32942243b855116a10cc6b8b81a90b87',1,'s2let_parameters_t']]], 5 | ['seed_663',['seed',['../test__adjoint_8c.html#ab1633aa266a0a720540840343194b2cf',1,'seed(): test_adjoint.c'],['../test__axisym__vs__directional_8c.html#ab1633aa266a0a720540840343194b2cf',1,'seed(): test_axisym_vs_directional.c'],['../test__back__and__forth_8c.html#ab1633aa266a0a720540840343194b2cf',1,'seed(): test_back_and_forth.c'],['../test__tiling_8c.html#ab1633aa266a0a720540840343194b2cf',1,'seed(): test_tiling.c']]], 6 | ['spin_664',['spin',['../structs2let__parameters__t.html#a4fd720e3d7a947dab5bbfd0f51c3dcf7',1,'s2let_parameters_t']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/c/search/variables_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['upsample_665',['upsample',['../structs2let__parameters__t.html#aec567c0f2af65ec246fd92169ae66216',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/search/variables_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['verbosity_666',['verbosity',['../structs2let__parameters__t.html#a6198529ad111be476461d3d249d3fa0a',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/c/test__adjoint_8c__incl.md5: -------------------------------------------------------------------------------- 1 | ebcfb84e6dc6253819f88f2a741bb825 -------------------------------------------------------------------------------- /docs/c/test__axisym__vs__directional_8c__incl.md5: -------------------------------------------------------------------------------- 1 | cd933301d2675200d5d39887dcf80b25 -------------------------------------------------------------------------------- /docs/c/test__back__and__forth_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 02367e0e5e5b8026cec31efc1be7ec25 -------------------------------------------------------------------------------- /docs/c/test__tiling_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 1744cabd7ec65d29977456c39e873e0d -------------------------------------------------------------------------------- /docs/images/Ridgeletj3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/images/Ridgeletj3.png -------------------------------------------------------------------------------- /docs/images/Ridgeletj4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/images/Ridgeletj4.png -------------------------------------------------------------------------------- /docs/images/curvelet_L512_B2_Jmin2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/images/curvelet_L512_B2_Jmin2.png -------------------------------------------------------------------------------- /docs/images/download_icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/images/download_icon.gif -------------------------------------------------------------------------------- /docs/images/earth1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/images/earth1.png -------------------------------------------------------------------------------- /docs/images/earth2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/images/earth2.png -------------------------------------------------------------------------------- /docs/images/earth3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/images/earth3.png -------------------------------------------------------------------------------- /docs/images/earth4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/images/earth4.png -------------------------------------------------------------------------------- /docs/images/needlets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/images/needlets.png -------------------------------------------------------------------------------- /docs/images/newlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/images/newlogo.png -------------------------------------------------------------------------------- /docs/images/photo_boris.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/images/photo_boris.jpeg -------------------------------------------------------------------------------- /docs/images/photo_jason.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/images/photo_jason.jpg -------------------------------------------------------------------------------- /docs/images/tiling2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/images/tiling2.png -------------------------------------------------------------------------------- /docs/images/tiling_compar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/images/tiling_compar.png -------------------------------------------------------------------------------- /docs/images/wav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/images/wav.png -------------------------------------------------------------------------------- /docs/matlab/demoicon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/matlab/demoicon.gif -------------------------------------------------------------------------------- /docs/matlab/matlabicon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/matlab/matlabicon.gif -------------------------------------------------------------------------------- /docs/matlab/simulinkicon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/matlab/simulinkicon.gif -------------------------------------------------------------------------------- /docs/matlab/src/main/matlab/s2let_transform_curvelet_synthesis_lmn2lm.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/docs/matlab/src/main/matlab/s2let_transform_curvelet_synthesis_lmn2lm.html -------------------------------------------------------------------------------- /figs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /include/s2let/s2let.h: -------------------------------------------------------------------------------- 1 | #ifndef S2LET 2 | #define S2LET 3 | #include 4 | 5 | #include "s2let_alloc.h" 6 | #include "s2let_analysis.h" 7 | #include "s2let_analysis_adjoint.h" 8 | #include "s2let_error.h" 9 | #include "s2let_fits.h" 10 | #include "s2let_helper.h" 11 | #include "s2let_hpx.h" 12 | #include "s2let_idl_hpx.h" 13 | #include "s2let_idl_mw.h" 14 | #include "s2let_lm.h" 15 | #include "s2let_math.h" 16 | #include "s2let_mw.h" 17 | #include "s2let_so3.h" 18 | #include "s2let_synthesis.h" 19 | #include "s2let_synthesis_adjoint.h" 20 | #include "s2let_tiling.h" 21 | #include "s2let_transform_axisym_hpx.h" 22 | #include "s2let_transform_axisym_lm.h" 23 | #include "s2let_transform_axisym_mw.h" 24 | #include "s2let_types.h" 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /include/s2let/s2let_alloc.h: -------------------------------------------------------------------------------- 1 | // S2LET package 2 | // Copyright (C) 2012 3 | // Boris Leistedt & Jason McEwen 4 | 5 | #ifndef S2LET_ALLOC 6 | #define S2LET_ALLOC 7 | 8 | #include 9 | #include "s2let_types.h" 10 | 11 | #ifdef __cplusplus 12 | extern "C" { 13 | #endif 14 | /** Pixel space allocation **/ 15 | 16 | void s2let_allocate_mw(S2LET_COMPLEX(double) **f, int L); 17 | void s2let_allocate_mw_real(double** f, int L); 18 | 19 | void s2let_allocate_mwss(S2LET_COMPLEX(double) **f, int L); 20 | void s2let_allocate_mwss_real(double** f, int L); 21 | 22 | /** Harmonic space allocation **/ 23 | 24 | void s2let_allocate_lm(S2LET_COMPLEX(double) **flm, int L); 25 | 26 | /** Wigner space allocation **/ 27 | 28 | void s2let_allocate_lmn_f_wav( 29 | S2LET_COMPLEX(double) **f_wav_lmn, 30 | S2LET_COMPLEX(double) **f_scal_lm, 31 | const s2let_parameters_t* parameters); 32 | 33 | /** Wavelet space allocation **/ 34 | 35 | void s2let_allocate_f_wav( 36 | S2LET_COMPLEX(double) **f_wav, 37 | S2LET_COMPLEX(double) **f_scal, 38 | const s2let_parameters_t* parameters); 39 | 40 | void s2let_allocate_f_wav_real( 41 | double** f_wav, 42 | double** f_scal, 43 | const s2let_parameters_t* parameters); 44 | 45 | void s2let_allocate_f_wav_manual( 46 | S2LET_COMPLEX(double) **f_wav, 47 | S2LET_COMPLEX(double) **f_scal, 48 | int* wav_bandlimits, 49 | int scal_bandlimit, 50 | int N, 51 | int J, 52 | const s2let_parameters_t* parameters); 53 | 54 | #ifdef __cplusplus 55 | } 56 | #endif 57 | #endif 58 | -------------------------------------------------------------------------------- /include/s2let/s2let_axisym_denoising_demo.h: -------------------------------------------------------------------------------- 1 | // S2LET package 2 | // Copyright (C) 2012 3 | // Boris Leistedt & Jason McEwen 4 | 5 | #ifndef S2LET_AXISYM_DENOISE_DEMO 6 | #define S2LET_AXISYM_DENOISE_DEMO 7 | #include 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | //!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 14 | 15 | void s2let_lm_random_flm_real_sigma(complex double *flm, int L, int seed, double sigmanoise); 16 | 17 | //!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 18 | 19 | double needletpower(double *wav_lm, int L); 20 | 21 | 22 | #ifdef __cplusplus 23 | } 24 | #endif 25 | #endif 26 | -------------------------------------------------------------------------------- /include/s2let/s2let_denoising_demo.h: -------------------------------------------------------------------------------- 1 | // S2LET package 2 | // Copyright (C) 2012 3 | // Boris Leistedt & Jason McEwen 4 | 5 | #ifndef S2LET_DENOISE_DEMO 6 | #define S2LET_DENOISE_DEMO 7 | #include 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | //!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 14 | 15 | void s2let_lm_random_flm_real_sigma(complex double *flm, int L, int seed, double sigmanoise); 16 | 17 | //!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 18 | 19 | double waveletpower(complex double *wav_lm, int L); 20 | 21 | //!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 22 | 23 | void hard_threshold_real(double *g_wav, const double *threshold, const s2let_parameters_t *parameters); 24 | 25 | #ifdef __cplusplus 26 | } 27 | #endif 28 | #endif 29 | -------------------------------------------------------------------------------- /include/s2let/s2let_error.h: -------------------------------------------------------------------------------- 1 | #ifndef S2LET_ERROR 2 | #define S2LET_ERROR 3 | 4 | #include 5 | #include 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | // Put this macro in a block so that it can be used with single-line 12 | // if-statements. 13 | #define S2LET_ERROR_GENERIC(comment) \ 14 | { \ 15 | printf("ERROR: %s.\n", comment); \ 16 | printf("ERROR: %s <%s> %s %s %s %d.\n", \ 17 | "Occurred in function", \ 18 | __PRETTY_FUNCTION__, \ 19 | "of file", __FILE__, \ 20 | "on line", __LINE__); \ 21 | exit(1); \ 22 | } 23 | 24 | #define S2LET_ERROR_MEM_ALLOC_CHECK(pointer) \ 25 | if(pointer == NULL) { \ 26 | S2LET_ERROR_GENERIC("Memory allocation failed") \ 27 | } 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | #endif 33 | -------------------------------------------------------------------------------- /include/s2let/s2let_helper.h: -------------------------------------------------------------------------------- 1 | #ifndef S2LET_HELPER 2 | #define S2LET_HELPER 3 | #include 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | int s2let_n_phi(const s2let_parameters_t *parameters); 9 | int s2let_n_theta(const s2let_parameters_t *parameters); 10 | int s2let_n_px(const s2let_parameters_t *parameters); 11 | 12 | int s2let_n_lm(const s2let_parameters_t *parameters); 13 | 14 | int s2let_n_lm_scal(const s2let_parameters_t *parameters); 15 | int s2let_n_lmn_wav(const s2let_parameters_t *parameters); 16 | 17 | int s2let_n_gamma(const s2let_parameters_t *parameters); 18 | int s2let_n_scal(const s2let_parameters_t *parameters); 19 | int s2let_n_wav(const s2let_parameters_t *parameters); 20 | 21 | int s2let_n_wav_j(int j, const s2let_parameters_t *parameters); 22 | 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | #endif 28 | -------------------------------------------------------------------------------- /include/s2let/s2let_idl_hpx.h: -------------------------------------------------------------------------------- 1 | // S2LET package 2 | // Copyright (C) 2012 3 | // Boris Leistedt & Jason McEwen 4 | 5 | #ifndef S2LET_IDL_HPX 6 | #define S2LET_IDL_HPX 7 | 8 | #include 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | /*! 15 | * IDL interface to s2let_axisym_hpx_wav_analysis_real 16 | */ 17 | int s2let_idl_hpx_axisym_wav_analysis_real(int argc, void* argv[]); 18 | 19 | /*! 20 | * IDL interface to s2let_axisym_hpx_wav_synthesis_real 21 | */ 22 | int s2let_idl_hpx_axisym_wav_synthesis_real(int argc, void* argv[]); 23 | 24 | /*! 25 | * IDL interface to s2let_hpx_map2alm_real 26 | */ 27 | int s2let_idl_hpx_map2alm_real(int argc, void* argv[]); 28 | 29 | /*! 30 | * IDL interface to s2let_hpx_alm2map_real 31 | */ 32 | int s2let_idl_hpx_alm2map_real(int argc, void* argv[]); 33 | 34 | #ifdef __cplusplus 35 | } 36 | #endif 37 | #endif 38 | -------------------------------------------------------------------------------- /include/s2let/s2let_lm.h: -------------------------------------------------------------------------------- 1 | // S2LET package 2 | // Copyright (C) 2012 3 | // Boris Leistedt & Jason McEwen 4 | 5 | #ifndef S2LET_LM 6 | #define S2LET_LM 7 | 8 | #include 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | double s2let_lm_power(S2LET_COMPLEX(double) *flm, int L); 15 | 16 | void s2let_lm_random_flm(S2LET_COMPLEX(double) *flm, int L, int spin, int seed); 17 | void s2let_lm_random_flm_real(S2LET_COMPLEX(double) *flm, int L, int seed); 18 | 19 | #ifdef __cplusplus 20 | } 21 | #endif 22 | #endif 23 | -------------------------------------------------------------------------------- /include/s2let/s2let_math.h: -------------------------------------------------------------------------------- 1 | // S2LET package 2 | // Copyright (C) 2012 3 | // Boris Leistedt & Jason McEwen 4 | 5 | #ifndef S2LET_MATH 6 | #define S2LET_MATH 7 | #include 8 | 9 | #define PI 3.141592653589793238462643383279502884197 10 | 11 | #define MIN(a, b) ((a) < (b) ? (a) : (b)) 12 | #define MAX(a, b) ((a) > (b) ? (a) : (b)) 13 | #define ABS(a) ((a) > (0.0) ? (a) : (-(a))) 14 | 15 | #ifdef __cplusplus 16 | extern "C" { 17 | #endif 18 | 19 | double s2let_math_kappa0_quadtrap_s2dw(double a, double b, int n, double B); 20 | 21 | double s2let_math_kappa0_quadtrap_needlet(double a, double b, int n); 22 | 23 | double s2let_math_spline_scalingfct(double x, double y); 24 | 25 | double ran2_dp(int idum); 26 | 27 | double maxerr_cplx(S2LET_COMPLEX(double) * a, S2LET_COMPLEX(double) * b, int size); 28 | 29 | double maxerr(double* a, double* b, int size); 30 | 31 | unsigned long binomial_coefficient(int n, int k, int exact); 32 | 33 | #ifdef __cplusplus 34 | } 35 | #endif 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /include/s2let/s2let_mex.h: -------------------------------------------------------------------------------- 1 | #ifndef S2LET_MEX 2 | #define S2LET_MEX 3 | 4 | #define S2LET_SAMPLING_MW_STR "MW" 5 | #define S2LET_SAMPLING_MW_SS_STR "MWSS" 6 | 7 | #define S2LET_STRING_LEN 128 8 | 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /include/s2let/s2let_mw.h: -------------------------------------------------------------------------------- 1 | // S2LET package 2 | // Copyright (C) 2012 3 | // Boris Leistedt & Jason McEwen 4 | 5 | #ifndef S2LET_MW 6 | #define S2LET_MW 7 | 8 | #include 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | /** Interfaces to SSHT (required by the Java interface to S2LET) **/ 15 | void s2let_mw_map2alm_real(S2LET_COMPLEX(double) * flm, const double* f, int L); 16 | void s2let_mw_alm2map_real(double* f, const S2LET_COMPLEX(double) * flm, int L); 17 | void s2let_mw_alm2map(S2LET_COMPLEX(double) * f, const S2LET_COMPLEX(double) * flm, int L, int spin); 18 | void s2let_mw_map2alm(S2LET_COMPLEX(double) * flm, const S2LET_COMPLEX(double) * f, int L, int spin); 19 | 20 | /** Helper functions for pixel-space computations in MW sampling **/ 21 | double s2let_mw_power(S2LET_COMPLEX(double) * flm, int L); 22 | double s2let_mw_power_real(double* flm, int L); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | #endif 28 | -------------------------------------------------------------------------------- /include/s2let/s2let_version.in.h: -------------------------------------------------------------------------------- 1 | #ifndef S2LET_VERSION_H 2 | #define S2LET_VERSION_H 3 | inline const char *s2let_version_string() { return "@PROJECT_VERSION@"; } 4 | inline const char *s2let_info() { 5 | return "package:\n" 6 | " name: S2LET\n" 7 | " description: Scale-discretised axisymmetric and direction wavelets\n" 8 | " authors:\n" 9 | " - Boris Leistedt\n" 10 | " - Martin Büttner\n" 11 | " - Jennifer Chan\n" 12 | " - Jason McEwen\n" 13 | " license: GPL-3\n" 14 | " url: https://astro-informatics.github.io/s2let\n" 15 | " version: @PROJECT_VERSION@\n"; 16 | }; 17 | // clang-format off 18 | inline int s2let_version_major() { return @PROJECT_VERSION_MAJOR@; } 19 | inline int s2let_version_minor() { return @PROJECT_VERSION_MINOR@; } 20 | inline int s2let_version_patch() { return @PROJECT_VERSION_PATCH@; } 21 | #define S2LET_VERSION_MAJOR @PROJECT_VERSION_MAJOR@ 22 | #define S2LET_VERSION_MINOR @PROJECT_VERSION_MINOR@ 23 | #define S2LET_VERSION_PATCH @PROJECT_VERSION_PATCH@ 24 | // clang-format on 25 | #endif 26 | -------------------------------------------------------------------------------- /lib/.gitignore: -------------------------------------------------------------------------------- 1 | libs2let.a 2 | python* 3 | -------------------------------------------------------------------------------- /run_denoising_demos.sh: -------------------------------------------------------------------------------- 1 | make mw_bin 2 | bin/s2let_denoising_demo 3 | bin/s2let_spin_denoising_demo 4 | 5 | matlab -nodesktop -nosplash -r "s2let_plot_denoising_demo;exit" 6 | -------------------------------------------------------------------------------- /run_timing_error.py: -------------------------------------------------------------------------------- 1 | from __future__ import print_function 2 | import numpy as np 3 | import subprocess 4 | import os 5 | 6 | # params : L spin B N 7 | names = ['L', 's', 'B', 'N'] 8 | L = 1024 9 | for spin in [0, 2]: 10 | for B in [2]: 11 | for N in [5]: 12 | params = [L, spin, B, N] 13 | outfilename = '_'.join(['timings', 'errors'] + [nm + str(x) for nm, x in zip(names, params)]) + '.csv' 14 | command = ' '.join(['bin/s2let_test_csv'] + [str(x) for x in params]) 15 | print('Executing', command) 16 | print('Writing to', outfilename) 17 | outfile = open(outfilename, 'w+') 18 | p = subprocess.Popen(command, stdout=outfile, shell=True) 19 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [bumpversion] 2 | current_version = 2.2.7 3 | commit = False 4 | tag = False 5 | 6 | [bumpversion:file:pyproject.toml] 7 | 8 | [bumpversion:file:src/doxygen.config] 9 | 10 | [bumpversion:file:makefile] 11 | 12 | [bumpversion:file:CMakeLists.txt] 13 | 14 | [bumpversion:file:.github/workflows/python.yml] 15 | 16 | [flake8] 17 | max-line-length = 88 18 | extend-ignore = E203, W503 19 | exclude = 20 | .tox, 21 | .git, 22 | build, 23 | __pycache__, 24 | docs/, 25 | 26 | [pycodestyle] 27 | count = False 28 | max-line-length = 88 29 | statistics = True 30 | -------------------------------------------------------------------------------- /src/c/s2let_about.c: -------------------------------------------------------------------------------- 1 | // S2LET package 2 | // Copyright (C) 2012 3 | // Boris Leistedt & Jason McEwen 4 | 5 | /*! 6 | * \file s2let_about.c 7 | * Print information about the S2LET package, including version 8 | * and build numbers. 9 | * 10 | * Usage: s2let_about 11 | * 12 | */ 13 | 14 | #include 15 | #ifdef BUILT_WITH_CMAKE 16 | #include "s2let_version.h" 17 | #endif 18 | 19 | int main(int argc, char *argv[]) { 20 | #ifdef BUILT_WITH_CMAKE 21 | printf("%s", s2let_info()); 22 | #else 23 | printf("%s\n", "=========================================================="); 24 | printf("%s\n", " S2LET package"); 25 | printf("%s\n", " Fast Wavelets on the Sphere"); 26 | printf("%s\n", " By Boris Leistedt & Jason McEwen"); 27 | 28 | printf("%s\n", " See LICENSE.txt for license details."); 29 | 30 | printf("%s%s\n", " Version: ", S2LET_VERSION); 31 | printf("%s%s\n", " Build: ", S2LET_BUILD); 32 | printf("%s\n", "=========================================================="); 33 | #endif 34 | 35 | return 0; 36 | } 37 | -------------------------------------------------------------------------------- /src/idl/s2let_dylib_exists.pro: -------------------------------------------------------------------------------- 1 | function s2let_dylib_exists 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_dylib_exists 8 | ; 9 | ; PURPOSE: 10 | ; Check if the s2let dynamic library exists somewhere in the path 11 | ; 12 | ; CALLING SEQUENCE: 13 | ; status = s2let_dylib_exists() 14 | ; 15 | ; OUTPUT 16 | ; 1 if found, 0 otherwise 17 | ; 18 | ;---------------------------------------------------------------------- 19 | 20 | loc = GETENV('S2LET') 21 | 22 | r1 = file_test(loc + '/lib/libs2let.so') 23 | r2 = file_test(loc + '/lib/libs2let.dylib') 24 | 25 | if loc eq '' then begin 26 | print,'You must define environment variable S2LET (base directory of s2let)' 27 | return, 0 28 | endif 29 | 30 | if (r1 eq 0 and r2 eq 0) then begin 31 | print, 'You must build the dynamic library for s2let 32 | return, 0 33 | endif 34 | 35 | return, 1 36 | 37 | end 38 | -------------------------------------------------------------------------------- /src/idl/s2let_get_dylib.pro: -------------------------------------------------------------------------------- 1 | function s2let_get_dylib 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_get_dylib 8 | ; 9 | ; PURPOSE: 10 | ; Get the location/name of the s2let dynamic library 11 | ; 12 | ; CALLING SEQUENCE: 13 | ; location = s2let_get_dylib() 14 | ; 15 | ;---------------------------------------------------------------------- 16 | 17 | loc = GETENV('S2LET') 18 | 19 | r1 = file_test(loc + '/lib/libs2let.so') 20 | r2 = file_test(loc + '/lib/libs2let.dylib') 21 | 22 | if loc eq '' or (r1 eq 0 and r2 eq 0) then begin 23 | print,'You must define environment variance S2LET (base directory of s2let)' 24 | return, 0 25 | endif 26 | 27 | if r1 eq 1 then soname = loc + '/lib/libs2let.so' 28 | if r1 eq 0 then soname = loc + '/lib/libs2let.dylib' 29 | 30 | return, soname 31 | 32 | end 33 | -------------------------------------------------------------------------------- /src/idl/s2let_get_mw_bandlimit.pro: -------------------------------------------------------------------------------- 1 | function s2let_get_mw_bandlimit, f 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_get_mw_bandlimit 8 | ; 9 | ; PURPOSE: 10 | ; Detect the resolution/bandlimit L of an input MW map 11 | ; 12 | ; CALLING SEQUENCE: 13 | ; L = s2let_get_mw_bandlimit(f) 14 | ; 15 | ; INPUT: 16 | ; f - array/map of size L*(2*L-1) 17 | ; 18 | ; OUTPUT 19 | ; L - the resolution/bandlimit 20 | ; 21 | ;---------------------------------------------------------------------- 22 | 23 | 24 | delta = sqrt(1 + 8*((size(f))(1))) 25 | L = fix(( 1 + delta ) / 4) 26 | 27 | return, L 28 | end 29 | -------------------------------------------------------------------------------- /src/idl/s2let_get_wav_bandlimit.pro: -------------------------------------------------------------------------------- 1 | function s2let_get_wav_bandlimit, B, j 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_get_wav_bandlimit 8 | ; 9 | ; PURPOSE: 10 | ; Compute the bandlimit of the j-th wavelet constructed with parameter B 11 | ; 12 | ; CALLING SEQUENCE: 13 | ; bl = s2let_get_wav_bandlimit(B, j) 14 | ; 15 | ; OUTPUT 16 | ; The bandlimit of the j-th wavelet constructed with parameter B 17 | ; 18 | ;---------------------------------------------------------------------- 19 | 20 | return, ceil(B^float(j+1)) 21 | end 22 | -------------------------------------------------------------------------------- /src/idl/s2let_healpix2mw.pro: -------------------------------------------------------------------------------- 1 | function s2let_healpix2mw, hpxmap, lmax=lmax 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_healpix2mw 8 | ; 9 | ; PURPOSE: 10 | ; Convert a real Healpix map to an MW map 11 | ; through the spherical harmonic transform 12 | ; 13 | ; CALLING SEQUENCE: 14 | ; mwmap = s2let_healpix2mw(hpxmap, lmax=lmax) 15 | ; 16 | ; INPUT: 17 | ; hpxmap - The Healpix map (npix = 12*nside*nside) 18 | ; lmax - The bandlimit of the SHA transform, thus the 19 | ; resolution of the MW map 20 | ; 21 | ; OUTPUT 22 | ; mwmap - The MW map (npix = lmax*(2*lmax-1)) 23 | ; 24 | ;---------------------------------------------------------------------- 25 | 26 | ;print, 'MAP -> ALM' 27 | flm = s2let_hpx_map2alm_real(hpxmap, lmax) 28 | 29 | if not keyword_set(lmax) then begin 30 | nside = fix(sqrt(((size(hpxmap))(1))/12.0)) 31 | lmax = 2*nside 32 | endif 33 | 34 | ;print, 'ALM -> MAP' 35 | mwmap = s2let_mw_alm2map_real(flm) 36 | 37 | return, mwmap 38 | end 39 | -------------------------------------------------------------------------------- /src/idl/s2let_hpx_alm2map_real.pro: -------------------------------------------------------------------------------- 1 | function s2let_hpx_alm2map_real, flm, nside 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_hpx_alm2map_real 8 | ; 9 | ; PURPOSE: 10 | ; Reconstruct a real Healpix map from its spherical harmonic 11 | ; transform (nb: not an exact transform due to healpix) 12 | ; 13 | ; CALLING SEQUENCE: 14 | ; f = s2let_hpx_alm2map_real(alm, nside) 15 | ; 16 | ; INPUT: 17 | ; alm - a complex array containing the spherical harmonic transform 18 | ; alm_{el em} can be accessed at alm(ind) with ind = el*el + el + em 19 | ; nside - resolution for the output map 20 | ; 21 | ; OUTPUT 22 | ; f - The Healpix map (npix = 12*nside*nside) 23 | ; 24 | ;---------------------------------------------------------------------- 25 | 26 | 27 | if s2let_dylib_exists() eq 1 then begin 28 | 29 | soname = s2let_get_dylib() 30 | sz = (size(flm))(1) 31 | L = fix(sqrt(sz)) 32 | 33 | f = dblarr(12*nside*nside) 34 | 35 | r = call_external(soname, 's2let_idl_hpx_alm2map_real', f, flm, nside, L, /CDECL) 36 | 37 | return, f 38 | 39 | endif 40 | 41 | end 42 | -------------------------------------------------------------------------------- /src/idl/s2let_hpx_map2alm_real.pro: -------------------------------------------------------------------------------- 1 | function s2let_hpx_map2alm_real, f, lmax 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_mw_map2alm_real 8 | ; 9 | ; PURPOSE: 10 | ; Compute the spherical harmonic transform of a real Healpix map 11 | ; (nb: not an exact transform due to healpix) 12 | ; 13 | ; CALLING SEQUENCE: 14 | ; alm = s2let_hpx_map2alm_real(f, lmax) 15 | ; 16 | ; INPUTS 17 | ; f - The input healpix map (npix = 12*nside*nside, nside is detected) 18 | ; 19 | ; OUTPUT: 20 | ; alm - a complex array containing the spherical harmonic transform 21 | ; alm_{el em} can be accessed at alm(ind) with ind = el*el + el + em 22 | ; 23 | ; COMMENT: 24 | ; The resolution nside is automatically detected 25 | ; 26 | ;---------------------------------------------------------------------- 27 | 28 | 29 | if s2let_dylib_exists() eq 1 then begin 30 | 31 | soname = s2let_get_dylib() 32 | 33 | nside = fix(sqrt(((size(f))(1))/12.0)) 34 | print, 'nside = ', nside 35 | print, 'lmax = ', lmax 36 | flm = dcomplex(dblarr(lmax^2.0)) 37 | 38 | r = call_external(soname, 's2let_idl_hpx_map2alm_real', flm, double(f), nside, lmax, /CDECL) 39 | 40 | return, flm 41 | 42 | endif 43 | 44 | end 45 | -------------------------------------------------------------------------------- /src/idl/s2let_j_max.pro: -------------------------------------------------------------------------------- 1 | function s2let_j_max, L, B 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_j_max 8 | ; 9 | ; PURPOSE: 10 | ; Compute the maximum wavelet to be used, given a bandlimit L and a 11 | ; wavelet parameter B 12 | ; 13 | ; CALLING SEQUENCE: 14 | ; J_max = s2let_j_max(L, B) 15 | ; 16 | ; OUTPUT 17 | ; Compute the maximum wavelet to be used, given a bandlimit L and a 18 | ; wavelet parameter B; 19 | ; 20 | ;---------------------------------------------------------------------- 21 | 22 | 23 | return, fix(ceil(alog10(L) / alog10(B))) 24 | 25 | end 26 | -------------------------------------------------------------------------------- /src/idl/s2let_make_doc.pro: -------------------------------------------------------------------------------- 1 | pro s2let_make_doc 2 | 3 | loc = GETENV('S2LET') 4 | 5 | if loc eq '' then begin 6 | print,'You must define environment variable S2LET (base directory of s2let)' 7 | endif else begin 8 | codeloc = loc + '/src/main/idl/' 9 | docfile = loc + '/doc/idl/index.html' 10 | MK_HTML_HELP, codeloc, docfile, /verbose, title='S2LET library : documentation for IDL routines and interfaces' 11 | endelse 12 | 13 | end 14 | -------------------------------------------------------------------------------- /src/idl/s2let_mw_alm2map.pro: -------------------------------------------------------------------------------- 1 | function s2let_mw_alm2map, flm 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_mw_alm2map 8 | ; 9 | ; PURPOSE: 10 | ; Reconstruct a complex MW map from its exact spherical harmonic transform 11 | ; 12 | ; CALLING SEQUENCE: 13 | ; f = s2let_mw_alm2map(alm) 14 | ; 15 | ; INPUT: 16 | ; alm - a complex array containing the spherical harmonic transform 17 | ; alm_{el em} can be accessed at alm(ind) with ind = el*el + el + em 18 | ; 19 | ; OUTPUT 20 | ; f - The MW map (npix = L*(2*L-1), L is detected) 21 | ; 22 | ; COMMENT: 23 | ; The resolution/bandlimit L is automatically detected 24 | ; 25 | ;---------------------------------------------------------------------- 26 | 27 | 28 | if s2let_dylib_exists() eq 1 then begin 29 | 30 | soname = s2let_get_dylib() 31 | sz = (size(flm))(1) 32 | delta = sqrt(1 + 8*(sz)) 33 | L = fix(sqrt(sz)) 34 | 35 | f = dcomplex(dblarr(L*(2*L-1))) 36 | 37 | r = call_external(soname, 's2let_idl_mw_alm2map', f, flm, L, /CDECL) 38 | 39 | return, f 40 | 41 | endif 42 | 43 | end 44 | -------------------------------------------------------------------------------- /src/idl/s2let_mw_alm2map_real.pro: -------------------------------------------------------------------------------- 1 | function s2let_mw_alm2map_real, flm 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_mw_alm2map_real 8 | ; 9 | ; PURPOSE: 10 | ; Reconstruct a real MW map from its exact spherical harmonic transform 11 | ; 12 | ; CALLING SEQUENCE: 13 | ; f = s2let_mw_alm2map_real(alm) 14 | ; 15 | ; INPUT: 16 | ; alm - a complex array containing the spherical harmonic transform 17 | ; alm_{el em} can be accessed at alm(ind) with ind = el*el + el + em 18 | ; 19 | ; OUTPUT 20 | ; f - The MW map (npix = L*(2*L-1), L is detected) 21 | ; 22 | ; COMMENT: 23 | ; The resolution/bandlimit L is automatically detected 24 | ; 25 | ;---------------------------------------------------------------------- 26 | 27 | 28 | if s2let_dylib_exists() eq 1 then begin 29 | 30 | soname = s2let_get_dylib() 31 | sz = (size(flm))(1) 32 | delta = sqrt(1 + 8*(sz)) 33 | L = long(sqrt(sz)) 34 | 35 | f = dblarr(L*(2*L-1)) 36 | 37 | r = call_external(soname, 's2let_idl_mw_alm2map_real', f, flm, L, /CDECL) 38 | 39 | return, f 40 | 41 | endif 42 | 43 | end 44 | -------------------------------------------------------------------------------- /src/idl/s2let_mw_map2alm.pro: -------------------------------------------------------------------------------- 1 | function s2let_mw_map2alm, f 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_mw_map2alm_real 8 | ; 9 | ; PURPOSE: 10 | ; Compute exact spherical harmonic transform of a complex MW map 11 | ; 12 | ; CALLING SEQUENCE: 13 | ; alm = s2let_mw_map2alm(f) 14 | ; 15 | ; INPUTS 16 | ; f - The input MW map (npix = L*(2*L-1), L is detected) 17 | ; 18 | ; OUTPUT: 19 | ; alm - a complex array containing the spherical harmonic transform 20 | ; alm_{el em} can be accessed at alm(ind) with ind = el*el + el + em 21 | ; 22 | ; COMMENT: 23 | ; The resolution/bandlimit L is automatically detected 24 | ; 25 | ;---------------------------------------------------------------------- 26 | 27 | 28 | if s2let_dylib_exists() eq 1 then begin 29 | 30 | soname = s2let_get_dylib() 31 | 32 | sz = (size(f))(1) 33 | delta = sqrt(1 + 8*(sz)) 34 | L = fix(( 1 + delta ) / 4) 35 | npix = long(L*(2*L-1)) 36 | 37 | flm = dcomplex(dblarr(L*L)) 38 | 39 | r = call_external(soname, 's2let_idl_mw_map2alm', flm, dcomplex(f), L, /CDECL) 40 | 41 | return, flm 42 | 43 | endif 44 | 45 | end 46 | -------------------------------------------------------------------------------- /src/idl/s2let_mw_map2alm_real.pro: -------------------------------------------------------------------------------- 1 | function s2let_mw_map2alm_real, f 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_mw_map2alm_real 8 | ; 9 | ; PURPOSE: 10 | ; Compute exact spherical harmonic transform of a real MW map 11 | ; 12 | ; CALLING SEQUENCE: 13 | ; alm = s2let_mw_map2alm_real(f) 14 | ; 15 | ; INPUTS 16 | ; f - The input MW map (npix = L*(2*L-1), L is detected) 17 | ; 18 | ; OUTPUT: 19 | ; alm - a complex array containing the spherical harmonic transform 20 | ; alm_{el em} can be accessed at alm(ind) with ind = el*el + el + em 21 | ; 22 | ; COMMENT: 23 | ; The resolution/bandlimit L is automatically detected 24 | ; 25 | ;---------------------------------------------------------------------- 26 | 27 | 28 | if s2let_dylib_exists() eq 1 then begin 29 | 30 | soname = s2let_get_dylib() 31 | 32 | sz = (size(f))(1) 33 | delta = sqrt(1 + 8*(sz)) 34 | L = fix(( 1 + delta ) / 4) 35 | npix = long(L*(2*L-1)) 36 | 37 | flm = dcomplex(dblarr(L*L)) 38 | 39 | r = call_external(soname, 's2let_idl_mw_map2alm_real', flm, double(f), L, /CDECL) 40 | 41 | return, flm 42 | 43 | endif 44 | 45 | end 46 | -------------------------------------------------------------------------------- /src/idl/s2let_mw_pixel_edges.pro: -------------------------------------------------------------------------------- 1 | function s2let_mw_pixel_edges, L, i 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_mw_pixel_edges 8 | ; 9 | ; PURPOSE: 10 | ; Get (theta, phi) coordinates for the corners of the i-th pixel in 11 | ; the MW sampling 12 | ; 13 | ; CALLING SEQUENCE: 14 | ; arr = s2let_mw_pixel_edges(L, i) 15 | ; 16 | ; INPUTS 17 | ; L - resolution/bandlimit of the MW map 18 | ; i - pixel index 19 | ; 20 | ; OUTPUT: 21 | ; arr - an array containing four numbers: theta1, theta2, phi1 and phi2 22 | ; which are the locations of the corners of the pixel 23 | ; 24 | ;---------------------------------------------------------------------- 25 | 26 | t = i / (2*L-1) 27 | p = i mod (2*L-1) 28 | 29 | theta_mid = (2.0*t + 1.0) * !pi / (2.0*L - 1.0) 30 | phi_mid = 2.0 * p * !pi / (2.0*L - 1.0) 31 | 32 | theta1 = theta_mid - !pi / (2.0*L - 1.0) 33 | theta2 = theta_mid + !pi / (2.0*L - 1.0) 34 | phi1 = phi_mid - !pi / (2.0*L - 1.0) 35 | phi2 = phi_mid + !pi / (2.0*L - 1.0) 36 | 37 | return, [ theta1, theta2, phi1, phi2 ] 38 | 39 | end 40 | -------------------------------------------------------------------------------- /src/idl/s2let_mw_read_real_map.pro: -------------------------------------------------------------------------------- 1 | function s2let_mw_read_real_map, file 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_read_mw_real_map 8 | ; 9 | ; PURPOSE: 10 | ; Read a real MW map from a FITS file 11 | ; 12 | ; CALLING SEQUENCE: 13 | ; f = s2let_mw_read_real_map(file) 14 | ; 15 | ; INPUTS 16 | ; file - filename for the FITS 17 | ; 18 | ; OUTPUT: 19 | ; map - MW map (npix=L*(2*L-1), L is detected) 20 | ; 21 | ;---------------------------------------------------------------------- 22 | 23 | r = mrdfits(file, 1) 24 | 25 | mapvec = r.(0) 26 | sz = (size(mapvec))(1) 27 | 28 | delta = sqrt(1 + 8*(sz)) 29 | L = ( 1 + delta ) / 4 30 | 31 | ;maparr = dblarr(L, 2*L-1) 32 | ;for el = 0, L-1 do begin 33 | ; maparr(el,*) = mapvec(el*(2*L-1):(el+1)*(2*L-1)-1) 34 | ;endfor 35 | 36 | return, mapvec 37 | end 38 | -------------------------------------------------------------------------------- /src/idl/s2let_mw_sampling.pro: -------------------------------------------------------------------------------- 1 | pro s2let_mw_sampling, L, thetas, phis 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_mw_sampling 8 | ; 9 | ; PURPOSE: 10 | ; Compute the coordinates of the nodes of the MW sampling for a 11 | ; given bandlimit/resolution 12 | ; 13 | ; CALLING SEQUENCE: 14 | ; s2let_mw_sampling, L, thetas, phis 15 | ; 16 | ; INPUT: 17 | ; L - resolution/bandlimit 18 | ; 19 | ; OUTPUT 20 | ; thetas - The theta coordinates of the nodes 21 | ; phis - The phi coordinates of the nodes 22 | ; 23 | ;---------------------------------------------------------------------- 24 | 25 | thetas = dblarr(L) 26 | phis = dblarr(2*L-1) 27 | 28 | ;t = long(0) 29 | ;repeat begin 30 | for t = 0, L-1 do begin 31 | thetas(t) = (2.0*t + 1.0) * !pi / (2.0*L - 1.0) 32 | endfor 33 | ; t = t + 1 34 | ;endrep until t eq L - 1 35 | 36 | ;p = long(0) 37 | ;repeat begin 38 | for p = 0, 2*L-2 do begin 39 | phis(p) = 2.0 * p * !pi / (2.0*L - 1.0); 40 | endfor 41 | ; p = p + 1 42 | ;endrep until p eq 2 * L - 2 43 | 44 | end 45 | -------------------------------------------------------------------------------- /src/idl/s2let_mw_write_real_map.pro: -------------------------------------------------------------------------------- 1 | pro s2let_mw_write_real_map, mapvec, file 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_mw_write_real_map 8 | ; 9 | ; PURPOSE: 10 | ; Write a real MW map to a FITS file 11 | ; 12 | ; CALLING SEQUENCE: 13 | ; s2let_mw_write_real_map, map, file 14 | ; 15 | ; INPUTS: 16 | ; map - input MW map (npix=L*(2*L-1), L is detected) 17 | ; file - filename for the FITS 18 | ; 19 | ;---------------------------------------------------------------------- 20 | 21 | L = (size(maparr))(1) 22 | 23 | ;mapvec = dblarr(L*(2*L-1)) 24 | ;for el = 0, L-1 do begin 25 | ; mapvec(el*(2*L-1):(el+1)*(2*L-1)-1) = maparr(el,*) 26 | ;endfor 27 | 28 | sxaddpar, hdr, 'L', L 29 | 30 | s = {data: mapvec} 31 | mwrfits_chunks, s, file, hdr, /silent 32 | 33 | end 34 | -------------------------------------------------------------------------------- /src/idl/s2let_valid_wav_parameters.pro: -------------------------------------------------------------------------------- 1 | pro s2let_valid_wav_parameters, B, L, J_min, wavtype 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_valid_wav_parameters 8 | ; 9 | ; PURPOSE: 10 | ; Check and test a set of wavelet parameters 11 | ; 12 | ; CALLING SEQUENCE: 13 | ; status = s2let_valid_wav_parameters(B, L, J_min) 14 | ; 15 | ; INPUTS: 16 | ; B - Wavelet parameter 17 | ; L - Band-limit to be used for the spherical harmonic transforms 18 | ; J_min - First wavelet scale to be used 19 | ; wavtype - Wavelet type (1: scale-discretised, 2:needlets, 3: cubic splines) 20 | ; 21 | ;---------------------------------------------------------------------- 22 | 23 | if not valid_num(B,/integer) or B lt 2 then stop, 'Error: Parameter B must be a positive integer' 24 | if not valid_num(L,/integer) or L lt 2 then stop, 'Error: Parameter L must be a positive integer' 25 | if not valid_num(J_min,/integer) or J_min lt 0 then stop, 'Error: Parameter J_min must be a positive integer' 26 | if not valid_num(wavtype,/integer) or wavtype gt 3 or wavtype lt 1 then stop, 'Error: Parameter wavtype must be 1, 2 or 3' 27 | J_max = s2let_j_max(L, B) 28 | msg = 'Error: Parameter B must be greater than J_max='+strtrim(J_max,2) 29 | if J_max lt 1 then stop, msg 30 | msg = 'Error: Parameter J_min must be lower than J_max='+strtrim(J_max,2) 31 | if J_min ge J_max then stop, msg 32 | 33 | end 34 | -------------------------------------------------------------------------------- /src/java/org/s2let/SamplingScheme.java: -------------------------------------------------------------------------------- 1 | /* 2 | * To change this template, choose Tools | Templates 3 | * and open the template in the editor. 4 | */ 5 | package org.s2let; 6 | 7 | /** 8 | * 9 | * @author bl 10 | */ 11 | public enum SamplingScheme { 12 | HEALPIX, MW 13 | }; 14 | -------------------------------------------------------------------------------- /src/jnaerator/config.jnaerator: -------------------------------------------------------------------------------- 1 | -library s2let 2 | 3 | //-Dcomplex= 4 | 5 | -parseChunks 6 | 7 | -I $(DIR)/../../../include 8 | $(DIR)/../../../include/s2let.h 9 | 10 | -I /usr/local/include 11 | 12 | -I $(SSHT)/include/c 13 | $(SSHT)/include/c/ssht.h 14 | 15 | -I $(HEALPIX)/include 16 | 17 | -arch darwin_universal 18 | $(DIR)/../../../lib/libs2let.dylib 19 | 20 | -package org.s2let.bindings 21 | -------------------------------------------------------------------------------- /src/matlab/EGM2008_Topography_flms_L0128.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/src/matlab/EGM2008_Topography_flms_L0128.mat -------------------------------------------------------------------------------- /src/matlab/kappas_need.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/src/matlab/kappas_need.mat -------------------------------------------------------------------------------- /src/matlab/kappas_s2dw.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/src/matlab/kappas_s2dw.mat -------------------------------------------------------------------------------- /src/matlab/kappas_spline.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/src/matlab/kappas_spline.mat -------------------------------------------------------------------------------- /src/matlab/s2let_bandlimit.m: -------------------------------------------------------------------------------- 1 | function bl = s2let_bandlimit(j, J_min, B, L) 2 | 3 | % s2let_bandlimit 4 | % Return the band-limit of a specific wavelet scale j 5 | % 6 | % Default usage: 7 | % bl = s2let_bandlimit(j, J_min, B, L) 8 | % 9 | % j the scale of interest, 10 | % J_min the minimal wavelet scale, 11 | % B is the wavelet parameter, 12 | % L is the band-limit for the transform. 13 | % 14 | % S2LET package to perform Wavelets transform on the Sphere. 15 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 16 | % See LICENSE.txt for license details 17 | 18 | bl = s2let_bandlimit_mex(j, J_min, B, L); 19 | 20 | end 21 | -------------------------------------------------------------------------------- /src/matlab/s2let_check_axisym_tiling.m: -------------------------------------------------------------------------------- 1 | function error_on_axisym_tiling = s2let_check_axisym_tiling(kappa, kappa0, L, J) 2 | 3 | % s2let_check_axisym_tiling - Checks exactness of the tiling. 4 | % -- Axisymmetric wavelets on the sphere. 5 | % 6 | % S2LET package to perform Wavelets transform on the Sphere. 7 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 8 | % See LICENSE.txt for license details 9 | 10 | identity = kappa0.^2; 11 | for j=0:J 12 | identity(1,:) = identity(1,:) + kappa(j+1,:).^2; 13 | end 14 | 15 | error_on_axisym_tiling = 0; 16 | for l=1:L 17 | error_on_axisym_tiling = error_on_axisym_tiling + identity(1,l) - 1.0; 18 | end 19 | 20 | end 21 | -------------------------------------------------------------------------------- /src/matlab/s2let_check_cur_tiling.m: -------------------------------------------------------------------------------- 1 | function error_on_cur_tiling = s2let_check_cur_tiling(cur_lm, scal_l, L, Spin, J, J_min) 2 | % s2let_check_cur_tiling - Checks the admissibity condition is satisfied. 3 | % ----------------------------------------------------------- 4 | % S2LET package to perform wavelets transform on the Sphere. 5 | % Copyright (C) 2012-2016 Boris Leistedt, Jennifer Chan & Jason McEwen 6 | % See LICENSE.txt for license details 7 | % ----------------------------------------------------------- 8 | 9 | % Scaling function 10 | identity = zeros(1,L); 11 | for el=abs(Spin):L-1 12 | identity(1,el+1) = identity(1,el+1)+4.*pi/(2*el+1)*scal_l(el^2+el+1,1)*conj(scal_l(el^2+el+1,1)); 13 | end 14 | 15 | 16 | % Curvelet functions 17 | for j= J_min: J 18 | ind = Spin*Spin + 1; 19 | for el=abs(Spin):L-1 20 | for m= -el:el 21 | identity(1,el+1) = identity(1,el+1)+(8.*pi^2/(2*el+1))* cur_lm{j-J_min+1}(ind)*conj(cur_lm{j-J_min+1}(ind)); 22 | ind = ind + 1; 23 | end 24 | end 25 | end 26 | 27 | error_on_cur_tiling = 0; 28 | for el=abs(Spin):L-1 29 | error_on_cur_tiling = error_on_cur_tiling+(identity(1,el+1) - 1.0); 30 | end 31 | 32 | 33 | end 34 | 35 | -------------------------------------------------------------------------------- /src/matlab/s2let_check_tiling.m: -------------------------------------------------------------------------------- 1 | function error_on_tiling = s2let_check_tiling(psi, phi, L, spin, J) 2 | 3 | % s2let_check_tiling - Checks exactness of the directional wavelet tiling. 4 | % -- Spin directional wavelets on the sphere. 5 | % 6 | % S2LET package to perform Wavelets transform on the Sphere. 7 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 8 | % See LICENSE.txt for license details 9 | 10 | identity = zeros(1,L); 11 | for l=abs(spin):L-1 12 | identity(1,l+1) = identity(1,l+1) + 4*pi/(2*l+1) * phi(l+1) * conj(phi(l+1)); 13 | end 14 | 15 | for j=0:J 16 | ind = spin*spin + 1; 17 | for l=abs(spin):L-1 18 | for m=-l:l 19 | identity(1,l+1) = identity(1,l+1) + 8*pi^2/(2*l+1) * psi(ind, j+1) * conj(psi(ind, j+1)); 20 | ind = ind + 1; 21 | end 22 | end 23 | end 24 | 25 | error_on_tiling = 0; 26 | for l=abs(spin):L-1 27 | error_on_tiling = error_on_tiling + identity(1,l+1) - 1.0; 28 | end 29 | 30 | end 31 | -------------------------------------------------------------------------------- /src/matlab/s2let_demo3.m: -------------------------------------------------------------------------------- 1 | % s2let_demo3 2 | % Analyse some CMB simulation from a valid HEALPIX map 3 | % Compute the output wavelets as Healpix maps and plot them. 4 | % 5 | % S2LET package to perform Wavelets on the Sphere. 6 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 7 | % See LICENSE.txt for license details 8 | 9 | L = 192; 10 | B = 3; 11 | J_min = 2; 12 | nside_recon = 128; 13 | s2let_path = '.' 14 | inputfile = strcat(s2let_path,'/data/somecmbsimu_hpx_128.fits') 15 | 16 | % Read the file 17 | [f_ini, nside] = s2let_hpx_read_real_map(inputfile); 18 | 19 | % Band limit the data 20 | flm = s2let_hpx_map2alm(f_ini, 'L', L); 21 | f = s2let_hpx_alm2map(flm, nside_recon, 'L', L); 22 | 23 | % Perform decomposition 24 | [f_wav, f_scal] = s2let_transform_axisym_analysis_hpx(f,'B',B,'L',L,'J_min',J_min); 25 | 26 | % Plot 27 | J = s2let_jmax(L, B); 28 | zoomfactor = 1.2; 29 | ns = ceil(sqrt(2+J-J_min+1)) ; 30 | ny = ns - 1 ; 31 | nx = ns ; 32 | figure('Position',[100 100 1300 1000]) 33 | 34 | subplot(nx, ny, 1); 35 | s2let_hpx_plot_mollweide(f); 36 | campos([0 0 -1]); camup([0 1 0]); zoom(zoomfactor) 37 | title('Initial band-limited data') 38 | 39 | subplot(nx, ny, 2); 40 | s2let_hpx_plot_mollweide(f_scal); 41 | campos([0 0 -1]); camup([0 1 0]); zoom(zoomfactor) 42 | title('Scaling fct') 43 | 44 | for j = J_min:J 45 | subplot(nx, ny, j-J_min+3); 46 | s2let_hpx_plot_mollweide(f_wav{j-J_min+1}); 47 | campos([0 0 -1]); camup([0 1 0]); zoom(zoomfactor) 48 | title(['Wavelet scale : ',int2str(j)-J_min+1]) 49 | end 50 | -------------------------------------------------------------------------------- /src/matlab/s2let_elmin.m: -------------------------------------------------------------------------------- 1 | function elmin = s2let_elmin(B, j) 2 | 3 | % s2let_elmin 4 | % Return the lowest harmonic index el supported by the given 5 | % wavelet scale. 6 | % 7 | % Default usage: 8 | % elmin = s2let_elmin(B, j) 9 | % 10 | % B is the wavelet parameter, 11 | % j the scale of interest. 12 | % 13 | % S2LET package to perform Wavelets transform on the Sphere. 14 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 15 | % See LICENSE.txt for license details 16 | 17 | elmin = floor(B^(j-1) + 1); 18 | 19 | end 20 | -------------------------------------------------------------------------------- /src/matlab/s2let_hpx2mw.m: -------------------------------------------------------------------------------- 1 | function f_mw = s2let_hpx2mw(f, varargin) 2 | 3 | % s2let_hpx2mw 4 | % Converts Healpix map into MW map 5 | % 6 | % Default usage : 7 | % 8 | % f_mw = s2let_hpx2mw(f_hpx, ) 9 | % 10 | % f is the input map -- HEALPIX sampling, 11 | % f is the output map -- MW sampling. 12 | % 13 | % Option : 14 | % 'nside' = { HEALPIX resolution; (default=guessed)} 15 | % 'L' = { Harmonic band-limit; L > 1 (default=2*nside) } 16 | 17 | % S2LET package to perform Wavelets transform on the Sphere. 18 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 19 | % See LICENSE.txt for license details 20 | 21 | sz = size(f); 22 | nsideguessed = sqrt(max(sz)/12); 23 | Lguessed = 2*nsideguessed; 24 | 25 | p = inputParser; 26 | p.addRequired('f', @isnumeric); 27 | p.addParamValue('nside', nsideguessed, @isnumeric); 28 | p.addParamValue('L', Lguessed, @isnumeric); 29 | p.parse(f, varargin{:}); 30 | args = p.Results; 31 | 32 | flm = s2let_hpx_map2alm(f, 'nside', args.nside, 'L', args.L); 33 | %flm = s2let_hpx_map2alm_mex(f, args.nside, args.L); 34 | f_mw = ssht_inverse(flm, args.L, 'Reality', true); 35 | 36 | end 37 | -------------------------------------------------------------------------------- /src/matlab/s2let_hpx_alm2map.m: -------------------------------------------------------------------------------- 1 | function f = s2let_hpx_alm2map(flm, nside, varargin) 2 | 3 | % s2let_axisym_synthesis 4 | % Compute axisymmetric wavelet transform, output as HEALPIX maps. 5 | % 6 | % Default usage : 7 | % 8 | % f = s2let_hpx_alm2map(flm, nside, ) 9 | % 10 | % flm is the input spherical harmonic decomposition, 11 | % nside is the HEALPIX resolution for the output map, 12 | % f is the corresponding output map. 13 | % 14 | % Option : 15 | % 'L' = { Harmonic band-limit; L > 1 (default=2*nside) } 16 | % 17 | % S2LET package to perform Wavelets transform on the Sphere. 18 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 19 | % See LICENSE.txt for license details 20 | 21 | 22 | sz = size(flm); 23 | Lguessed = sqrt(sz(1)); 24 | 25 | p = inputParser; 26 | p.addRequired('flm',@isnumeric); 27 | p.addRequired('nside', @isnumeric); 28 | p.addParamValue('L', Lguessed, @isnumeric); 29 | p.parse(flm, nside, varargin{:}); 30 | args = p.Results; 31 | 32 | f = s2let_hpx_alm2map_mex(flm, nside, args.L); 33 | 34 | end -------------------------------------------------------------------------------- /src/matlab/s2let_hpx_alm2map_spin.m: -------------------------------------------------------------------------------- 1 | function [fQ, fU] = s2let_hpx_alm2map(flmQ, flmU, nside, varargin) 2 | 3 | % s2let_axisym_synthesis_spin 4 | % Compute axisymmetric wavelet transform, output as HEALPIX maps. 5 | % 6 | % Default usage : 7 | % 8 | % fQ, fU = s2let_hpx_alm2map(flm, nside, ) 9 | % 10 | % flm is the input spherical harmonic decomposition, 11 | % nside is the HEALPIX resolution for the output map, 12 | % f is the corresponding output map. 13 | % 14 | % Option : 15 | % 'L' = { Harmonic band-limit; L > 1 (default=2*nside) } 16 | % 'Spin' = { Spin; (default=2)} 17 | % 18 | % S2LET package to perform Wavelets transform on the Sphere. 19 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 20 | % See LICENSE.txt for license details 21 | 22 | 23 | sz = size(flmQ); 24 | Lguessed = sqrt(sz(1)); 25 | 26 | p = inputParser; 27 | p.addRequired('flmQ',@isnumeric); 28 | p.addRequired('flmU',@isnumeric); 29 | p.addRequired('nside', @isnumeric); 30 | p.addParamValue('Spin', 2, @isnumeric); 31 | p.addParamValue('L', Lguessed, @isnumeric); 32 | p.parse(flmQ, flmU, nside, varargin{:}); 33 | args = p.Results; 34 | 35 | [fQ, fU] = s2let_hpx_alm2map_spin_mex(flmQ, flmU, nside, args.L, args.Spin); 36 | 37 | end 38 | -------------------------------------------------------------------------------- /src/matlab/s2let_hpx_map2alm.m: -------------------------------------------------------------------------------- 1 | function flm = s2let_hpx_map2alm(f, varargin) 2 | 3 | % s2let_hpx_axisym_analysis 4 | % Compute axisymmetric wavelet transform, output as HEALPIX maps. 5 | % 6 | % Default usage : 7 | % 8 | % flm = s2let_hpx_map2alm(f, ) 9 | % 10 | % f is the input field -- HEALPIX sampling, 11 | % flm is the output spherical harmonic decomposition. 12 | % 13 | % Option : 14 | % 'nside' = { HEALPIX resolution; (default=guessed)} 15 | % 'L' = { Harmonic band-limit; L > 1 (default=2*nside) } 16 | 17 | % S2LET package to perform Wavelets transform on the Sphere. 18 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 19 | % See LICENSE.txt for license details 20 | 21 | sz = size(f); 22 | nsideguessed = sqrt(max(sz)/12); 23 | Lguessed = 2*nsideguessed; 24 | 25 | p = inputParser; 26 | p.addRequired('f', @isnumeric); 27 | p.addParamValue('nside', nsideguessed, @isnumeric); 28 | p.addParamValue('L', Lguessed, @isnumeric); 29 | p.parse(f, varargin{:}); 30 | args = p.Results; 31 | 32 | flm = s2let_hpx_map2alm_mex(f, args.nside, args.L); 33 | 34 | end -------------------------------------------------------------------------------- /src/matlab/s2let_hpx_map2alm_spin.m: -------------------------------------------------------------------------------- 1 | function [flmQ, flmU] = s2let_hpx_map2alm_spin(fQ, fU, varargin) 2 | % s2let_hpx_axisym_analysis_spin 3 | % 4 | % Default usage : 5 | % 6 | % flmQ, flmU = s2let_hpx_map2alm_spin(fQ, fU, ) 7 | % 8 | % f is the input field -- HEALPIX sampling, 9 | % flm is the output spherical harmonic decomposition. 10 | % 11 | % Option : 12 | % 'nside' = { HEALPIX resolution; (default=guessed)} 13 | % 'Spin' = { Spin; (default=2)} 14 | % 'L' = { Harmonic band-limit; L > 1 (default=2*nside) } 15 | 16 | % S2LET package to perform Wavelets transform on the Sphere. 17 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 18 | % See LICENSE.txt for license details 19 | 20 | sz = size(fQ); 21 | nsideguessed = sqrt(max(sz)/12); 22 | Lguessed = 2*nsideguessed; 23 | 24 | p = inputParser; 25 | p.addRequired('fQ', @isnumeric); 26 | p.addRequired('fU', @isnumeric); 27 | p.addParamValue('nside', nsideguessed, @isnumeric); 28 | p.addParamValue('Spin', 2, @isnumeric); 29 | p.addParamValue('L', Lguessed, @isnumeric); 30 | p.parse(fQ, fU, varargin{:}); 31 | args = p.Results; 32 | 33 | [flmQ, flmU] = s2let_hpx_map2alm_spin_mex(fQ, fU, args.nside, args.L, args.Spin); 34 | 35 | end 36 | -------------------------------------------------------------------------------- /src/matlab/s2let_hpx_read_real_map.m: -------------------------------------------------------------------------------- 1 | function [healpixmap, nside]= s2let_hpx_read_real_map(file) 2 | 3 | % s2let_hpx_read_real_map 4 | % Read a Healpix real map from a FITS file 5 | % Default usage : 6 | % 7 | % [healpixmap, L]= s2let_hpx_read_real_map(file) 8 | % 9 | % file the name of the input FITS file, 10 | % healpixmap the output signal read from the file, 11 | % nside its resolution. 12 | % 13 | % S2LET package to perform Wavelets transform on the Sphere. 14 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 15 | % See LICENSE.txt for license details 16 | 17 | datacell = fitsread(file,'binarytable'); 18 | data = datacell{1}; 19 | sz = size(data); 20 | 21 | healpixmap = []; 22 | for col = 1:sz(1) 23 | healpixmap = [healpixmap data(col,:)]; 24 | end 25 | 26 | nside = sqrt((sz(1) * sz(2)) / 12); 27 | 28 | end 29 | -------------------------------------------------------------------------------- /src/matlab/s2let_hpx_read_real_spin_maps.m: -------------------------------------------------------------------------------- 1 | function [fQ, fU, nside]= s2let_hpx_read_real_spin_maps(file) 2 | 3 | % s2let_hpx_read_real_spin_maps 4 | % Read a Healpix real map from a FITS file 5 | % Default usage : 6 | % 7 | % [fQ, fU, nside]= s2let_hpx_read_real_spin_maps(file) 8 | % 9 | % file the name of the input FITS file, 10 | % healpixmap the output signal read from the file, 11 | % nside its resolution. 12 | % 13 | % S2LET package to perform Wavelets transform on the Sphere. 14 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 15 | % See LICENSE.txt for license details 16 | 17 | 18 | datacell = fitsread(file,'binarytable'); 19 | 20 | data = datacell{1}; 21 | sz = size(data); 22 | fQ = []; 23 | for col = 1:sz(1) 24 | fQ = [fQ data(col,:)]; 25 | end 26 | data = datacell{2}; 27 | sz = size(data); 28 | fU = []; 29 | for col = 1:sz(1) 30 | fU = [fU data(col,:)]; 31 | end 32 | 33 | nside = sqrt((sz(1) * sz(2)) / 12); 34 | 35 | end 36 | -------------------------------------------------------------------------------- /src/matlab/s2let_hpx_write_real_map.m: -------------------------------------------------------------------------------- 1 | function s2let_hpx_write_real_map(f, file) 2 | 3 | % s2let_hpx_rite_real_map 4 | % Write a real Healpix map to a FITS file 5 | % Default usage : 6 | % 7 | % s2let_hpx_write_real_map(f, file) 8 | % 9 | % f the Healpix map to be written, 10 | % file the name of the output FITS file. 11 | % 12 | % S2LET package to perform Wavelets transform on the Sphere. 13 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 14 | % See LICENSE.txt for license details 15 | 16 | sz = size(f); 17 | szb = max([sz(1), sz(2)]); 18 | nside = floor(sqrt(szb/12.0)); 19 | 20 | fitswrite(f, file, 'NSIDE', nside); 21 | 22 | end -------------------------------------------------------------------------------- /src/matlab/s2let_jmax.m: -------------------------------------------------------------------------------- 1 | function J = s2let_jmax(L, B) 2 | 3 | % s2let_jmax 4 | % Return the maximum scale for a wavelet transform 5 | % 6 | % Default usage: 7 | % J_max = s2let_jmax(L, B) 8 | % 9 | % L is the band-limit for the transform, 10 | % B is the wavelet parameter. 11 | % 12 | % S2LET package to perform Wavelets transform on the Sphere. 13 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 14 | % See LICENSE.txt for license details 15 | 16 | J = s2let_jmax_mex(L, B); 17 | 18 | end 19 | -------------------------------------------------------------------------------- /src/matlab/s2let_make_doc.m: -------------------------------------------------------------------------------- 1 | function s2let_make_doc(s2letpath) 2 | 3 | % s2let_make_doc 4 | % Generate Matlab documentation 5 | % 6 | % Default usage : 7 | % 8 | % s2let_make_doc(s2letpath) 9 | % 10 | % s2letpath is the path for the S2LET package (root) 11 | % 12 | % S2LET package to perform Wavelets transform on the Sphere. 13 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 14 | % See LICENSE.txt for license details 15 | 16 | cd(s2letpath) 17 | m2html('mfiles', 'src/main/matlab', 'htmldir', 'doc/matlab'); 18 | 19 | end -------------------------------------------------------------------------------- /src/matlab/s2let_mw2hpx.m: -------------------------------------------------------------------------------- 1 | function f_hpx = s2let_mw2hpx(f, nside, varargin) 2 | 3 | % s2let_mw2hpx 4 | % Converts MW map into Healpix map 5 | % 6 | % Default usage : 7 | % 8 | % f_hpx = s2let_hpx2mw(f_mw, ) 9 | % 10 | % f is the input map -- MW sampling, 11 | % f is the output map -- Healpix sampling. 12 | % 13 | % Option : 14 | % 'L' = { Harmonic band-limit; L > 1 (default=guessed) } 15 | 16 | % S2LET package to perform Wavelets transform on the Sphere. 17 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 18 | % See LICENSE.txt for license details 19 | 20 | sz = size(f); 21 | Lguessed = min([sz(1) sz(2)]); 22 | 23 | p = inputParser; 24 | p.addRequired('f', @isnumeric); 25 | p.addParamValue('L', Lguessed, @isnumeric); 26 | p.parse(f, varargin{:}); 27 | args = p.Results; 28 | 29 | [flm] = ssht_forward(f, args.L, 'Reality', true); 30 | f_hpx = s2let_hpx_alm2map(flm, nside, 'L', args.L); 31 | 32 | end 33 | -------------------------------------------------------------------------------- /src/matlab/s2let_mw_arr2vec.m: -------------------------------------------------------------------------------- 1 | function vec = s2let_mw_arr2vec(arr) 2 | 3 | sz = size(arr); 4 | 5 | if sz(1) == 2*sz(2)-1 % array 2L-1 x L 6 | 7 | L = sz(2); 8 | vec = zeros(L*(2*L-1),1); 9 | for t = 1:L 10 | for p = 1:2*L-1 11 | vec((t-1)*(2*L-1)+p,1) = arr(p,t); 12 | end 13 | end 14 | 15 | end 16 | 17 | if sz(2) == 2*sz(1)-1 % array L x 2L-1 18 | 19 | L = sz(1); 20 | vec = zeros(L*(2*L-1),1); 21 | for t = 1:L 22 | for p = 1:2*L-1 23 | vec((t-1)*(2*L-1)+p,1) = arr(t,p); 24 | end 25 | end 26 | 27 | end 28 | 29 | end -------------------------------------------------------------------------------- /src/matlab/s2let_mw_read_real_map.m: -------------------------------------------------------------------------------- 1 | function [mwmaparr, L]= s2let_mw_read_real_map(file) 2 | 3 | % s2let_mw_read_real_map 4 | % Read an MW real map from a FITS file 5 | % Default usage : 6 | % 7 | % [mwmaparr, L]= s2let_mw_read_real_map(file) 8 | % 9 | % file the name of the input FITS file, 10 | % mwmaparr the output signal read from the file, 11 | % L its resolution. 12 | % 13 | % S2LET package to perform Wavelets transform on the Sphere. 14 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 15 | % See LICENSE.txt for license details 16 | 17 | datacell = fitsread(file,'binarytable'); 18 | data = datacell{1}; 19 | sz = size(data); 20 | 21 | mwmap = []; 22 | for col = 1:sz(1) 23 | mwmap = [mwmap data(col,:)]; 24 | end 25 | 26 | mwmaparr = s2let_mw_vec2arr(mwmap); 27 | sz = size(mwmaparr); 28 | L = sz(1); 29 | 30 | end -------------------------------------------------------------------------------- /src/matlab/s2let_mw_vec2arr.m: -------------------------------------------------------------------------------- 1 | function arr = s2let_mw_vec2arr(vec) 2 | 3 | len = length(vec(:)); 4 | 5 | delta = sqrt(1 + 8*len); 6 | L = ( 1 + delta ) / 4; 7 | 8 | arr = zeros(L, 2*L-1); 9 | 10 | for t = 1:L 11 | for p = 1:2*L-1 12 | arr(t,p) = vec((t-1)*(2*L-1)+p); 13 | end 14 | end 15 | 16 | 17 | end 18 | -------------------------------------------------------------------------------- /src/matlab/s2let_mw_write_real_map.m: -------------------------------------------------------------------------------- 1 | function s2let_mw_write_real_map(f, file) 2 | 3 | % s2let_mw_write_real_map 4 | % Write an MW real map to a FITS file 5 | % Default usage : 6 | % 7 | % s2let_mw_write_real_map(f, file) 8 | % 9 | % f the MW map to be written, 10 | % file the name of the output FITS file. 11 | % 12 | % S2LET package to perform Wavelets transform on the Sphere. 13 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 14 | % See LICENSE.txt for license details 15 | 16 | sz = size(f); 17 | L = min([sz(1), sz(2)]); 18 | 19 | mwmap = []; 20 | for l = 1:L 21 | mwmap = [mwmap f(l,:)]; 22 | end 23 | 24 | fitswrite(mwmap, file, 'L', L); 25 | 26 | end -------------------------------------------------------------------------------- /src/matlab/s2let_mwss_arr2vec.m: -------------------------------------------------------------------------------- 1 | function vec = s2let_mwss_arr2vec(arr) 2 | 3 | sz = size(arr); 4 | 5 | if sz(1) == 2*(sz(2)-1) % array 2L x L+1 6 | 7 | L = sz(2)-1; 8 | vec = zeros((L+1)*2*L,1); 9 | for t = 1:L+1 10 | for p = 1:2*L 11 | vec((t-1)*2*L+p,1) = arr(p,t); 12 | end 13 | end 14 | 15 | end 16 | 17 | if sz(2) == 2*(sz(1)-1) % array L+1 x 2L 18 | 19 | L = sz(1)-1; 20 | vec = zeros((L+1)*2*L,1); 21 | for t = 1:L+1 22 | for p = 1:2*L 23 | vec((t-1)*2*L+p,1) = arr(t,p); 24 | end 25 | end 26 | 27 | end 28 | 29 | end 30 | -------------------------------------------------------------------------------- /src/matlab/s2let_mwss_read_real_map.m: -------------------------------------------------------------------------------- 1 | function [mwmaparr, L]= s2let_mwss_read_real_map(file) 2 | 3 | % s2let_mw_read_real_map 4 | % Read an MW real map from a FITS file 5 | % Default usage : 6 | % 7 | % [mwmaparr, L]= s2let_mw_read_real_map(file) 8 | % 9 | % file the name of the input FITS file, 10 | % mwmaparr the output signal read from the file, 11 | % L its resolution. 12 | % 13 | % S2LET package to perform Wavelets transform on the Sphere. 14 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 15 | % See LICENSE.txt for license details 16 | 17 | datacell = fitsread(file,'binarytable'); 18 | data = datacell{1}; 19 | sz = size(data); 20 | 21 | mwmap = []; 22 | for col = 1:sz(1) 23 | mwmap = [mwmap data(col,:)]; 24 | end 25 | 26 | mwmaparr = s2let_mwss_vec2arr(mwmap); 27 | sz = size(mwmaparr); 28 | L = sz(1)-1; 29 | 30 | end 31 | -------------------------------------------------------------------------------- /src/matlab/s2let_mwss_vec2arr.m: -------------------------------------------------------------------------------- 1 | function arr = s2let_mwss_vec2arr(vec) 2 | 3 | len = length(vec(:)); 4 | 5 | delta = sqrt(1 + 2*len); 6 | L = ( delta - 1 ) / 2; 7 | 8 | arr = zeros(L+1, 2*L); 9 | 10 | for t = 1:L+1 11 | for p = 1:2*L 12 | arr(t,p) = vec((t-1)*2*L+p); 13 | end 14 | end 15 | 16 | 17 | end 18 | -------------------------------------------------------------------------------- /src/matlab/s2let_mwss_write_real_map.m: -------------------------------------------------------------------------------- 1 | function s2let_mwss_write_real_map(f, file) 2 | 3 | % s2let_mw_write_real_map 4 | % Write an MW real map to a FITS file 5 | % Default usage : 6 | % 7 | % s2let_mw_write_real_map(f, file) 8 | % 9 | % f the MW map to be written, 10 | % file the name of the output FITS file. 11 | % 12 | % S2LET package to perform Wavelets transform on the Sphere. 13 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 14 | % See LICENSE.txt for license details 15 | 16 | sz = size(f); 17 | L = min([sz(1), sz(2)])-1; 18 | 19 | mwmap = []; 20 | for l = 1:L+1 21 | mwmap = [mwmap f(l,:)]; 22 | end 23 | 24 | fitswrite(mwmap, file, 'L', L); 25 | 26 | end 27 | -------------------------------------------------------------------------------- /src/matlab/s2let_plot_axisym_tiling.m: -------------------------------------------------------------------------------- 1 | function s2let_plot_axisym_tiling(B, L, J_min) 2 | 3 | % plot_axisym_tiling - Plot tiling in harmonic space. 4 | % -- Axisymmetric wavelets on the sphere. 5 | % 6 | % Default usage : 7 | % 8 | % plot_axisym_tiling(B, L, J_min) 9 | % 10 | % B is the wavelet parameter, 11 | % L is the angular band-limit, 12 | % J_min the first wavelet to be used. 13 | % 14 | % S2LET package to perform Wavelet transform on the Sphere. 15 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 16 | % See LICENSE.txt for license details 17 | 18 | [kappa kappa0] = s2let_transform_axisym_tiling(B, L, J_min); 19 | 20 | J = s2let_jmax(L, B); 21 | xi = 0:0.01:L-1; 22 | x = 0:L-1; 23 | 24 | figure('Position',[100 100 900 450]) 25 | %semilogx(0:L-1, kappa0, 'k', 'LineWidth', 2); 26 | yi = interp1(x,kappa0,xi,'pchip'); 27 | semilogx(xi, yi, 'k', 'LineWidth', 2); 28 | %h = text(2, 1.07, 'k0', 'Color', [0 0 0]); 29 | hold on; 30 | for j = J_min:J 31 | colour = rand(1,3)*0.9; 32 | %plot(0:L-1, kappa(j+1,:), 'LineWidth', 2, 'Color', colour); 33 | yi = interp1(x,kappa(j+1,:),xi,'pchip'); 34 | plot(xi, yi, 'LineWidth', 2, 'Color', colour); 35 | %h = text(B.^j, 1.07, strcat('j',num2str(j+1)), 'Color', colour); 36 | end 37 | %title('Harmonic tiling'); 38 | %xlabel('el'); 39 | axis([0 L -0.05 1.15]); 40 | set(gca,'XTick',2.^[0:(J+2)]); 41 | 42 | end 43 | -------------------------------------------------------------------------------- /src/matlab/s2let_smoothing.m: -------------------------------------------------------------------------------- 1 | function map_sm = s2let_smoothing(map, L, fwhm, varargin) 2 | 3 | p = inputParser; 4 | p.addParamValue('Reality', false, @islogical); 5 | p.addParamValue('Method', 'MW', @ischar); 6 | p.parse(varargin{:}); 7 | args = p.Results; 8 | 9 | map_lm = ssht_forward(map, L, 'Reality', true, 'Method', args.Method); 10 | map_sm_lm = zeros(size(map_lm)); 11 | sigma = fwhm / 2.355; 12 | 13 | ind = 1; 14 | for el = 0:L-1 15 | for m = -el:el 16 | map_sm_lm(ind) = map_lm(ind) * exp(-el*(el+1) * sigma^2 / 2); 17 | ind = ind+1; 18 | end 19 | end 20 | 21 | map_sm = ssht_inverse(map_sm_lm, L, 'Reality', args.Reality, 'Method', args.Method); 22 | -------------------------------------------------------------------------------- /src/matlab/s2let_transform_axisym_tiling.m: -------------------------------------------------------------------------------- 1 | function [kappa kappa0] = s2let_transform_axisym_tiling(B, L, J_min) 2 | 3 | % s2let_axisym_tiling - Compute tiling in harmonic space. 4 | % -- Axisymmetric wavelets on the sphere. 5 | % 6 | % Default usage : 7 | % 8 | % [kappa kappa0] = s2let_axisym_tiling(B, L, J_min) 9 | % 10 | % kappa is an array containing wavelet tiling . 11 | % kappa0 contains the scaling function. 12 | % B is the wavelet parameter, 13 | % L is the angular band-limit, 14 | % J_min the first wavelet to be used. 15 | % 16 | % S2LET package to perform Wavelets transform on the Sphere. 17 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 18 | % See LICENSE.txt for license details 19 | 20 | p = inputParser; 21 | p.addRequired('B', @isnumeric); 22 | p.addRequired('L', @isnumeric); 23 | p.addRequired('J_min', @isnumeric); 24 | p.parse(B, L, J_min); 25 | args = p.Results; 26 | 27 | [kappa kappa0] = s2let_transform_axisym_tiling_mex(B, L, J_min); 28 | 29 | end -------------------------------------------------------------------------------- /src/matlab/s2let_transform_curvelet_synthesis_lmn2lm.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let/151d89b875a5b979233597544993c724d6ed2364/src/matlab/s2let_transform_curvelet_synthesis_lmn2lm.m -------------------------------------------------------------------------------- /src/pys2let/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_custom_command( 2 | OUTPUT pys2let.c 3 | MAIN_DEPENDENCY pys2let.pyx 4 | VERBATIM 5 | COMMAND 6 | Python::Interpreter -m cython "${CMAKE_CURRENT_SOURCE_DIR}/pys2let.pyx" 7 | --output-file "${CMAKE_CURRENT_BINARY_DIR}/pys2let.c") 8 | 9 | python_add_library(pys2let MODULE "${CMAKE_CURRENT_BINARY_DIR}/pys2let.c" 10 | WITH_SOABI) 11 | if(WIN32) 12 | target_compile_definitions(pys2let PRIVATE MS_WIN64) 13 | endif() 14 | 15 | target_link_libraries(pys2let PUBLIC s2let) 16 | target_include_directories(pys2let PUBLIC ${Python3_NumPy_INCLUDE_DIR}) 17 | install(TARGETS pys2let LIBRARY DESTINATION ${SKBUILD_PROJECT_NAME}) 18 | -------------------------------------------------------------------------------- /src/pys2let/__init__.py: -------------------------------------------------------------------------------- 1 | from pys2let.pys2let import * 2 | -------------------------------------------------------------------------------- /test/c/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | foreach(name tiling adjoint back_and_forth axisym_vs_directional) 2 | add_executable(test_${name} test_${name}.c) 3 | target_link_libraries(test_${name} PUBLIC s2let cmocka) 4 | add_test(NAME test_${name} COMMAND test_${name}) 5 | set_target_properties( 6 | test_${name} PROPERTIES C_STANDARD 11 RUNTIME_OUTPUT_DIRECTORY 7 | ${PROJECT_BINARY_DIR}/bin) 8 | endforeach() 9 | -------------------------------------------------------------------------------- /test/java/org/s2let/HealpixMapTest.java: -------------------------------------------------------------------------------- 1 | 2 | package org.s2let; 3 | 4 | import org.bridj.Pointer; 5 | import org.junit.*; 6 | import static org.junit.Assert.*; 7 | 8 | /** 9 | * @author Boris Leistedt 10 | */ 11 | public class HealpixMapTest { 12 | 13 | @Test 14 | public void test_Healpix_SphericalHarmonicTransform() { 15 | boolean verbosity = true; 16 | test_Healpix_SphericalHarmonicTransform(64, 16, verbosity); 17 | test_Healpix_SphericalHarmonicTransform(256, 128, verbosity); 18 | } 19 | /** 20 | * Test that the spherical harmonic transform works well on the Healpix sampling (real signals). 21 | * @param nside the resolution of the Healpix maps 22 | * @param bandlimit the bandlimit of the decomposition to generate and work with 23 | * @param verbosity 24 | */ 25 | public void test_Healpix_SphericalHarmonicTransform(int nside, int bandlimit, boolean verbosity) { 26 | SphericalHarmonicTransform flm = SphericalHarmonicTransform.randomReal(bandlimit); 27 | PixelizedMap map = PixelizedMap.fromHarmonics(flm, SamplingScheme.HEALPIX, nside); 28 | SphericalHarmonicTransform flm_rec = SphericalHarmonicTransform.fromMap(map, bandlimit); 29 | double error = flm_rec.maxAbsoluteDifferenceWith(flm); 30 | if(verbosity){ 31 | System.out.println("MaxAbsErr of HPX-SHA with L=" + bandlimit + " and nside=" +nside + " : " + error); 32 | } 33 | assertEquals(error, 0.0, 1e-1); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /test_package/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.12) 2 | project(PackageTest C) 3 | 4 | include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) 5 | conan_basic_setup(TARGETS) 6 | 7 | add_executable(example example.c) 8 | target_link_libraries(example PUBLIC CONAN_PKG::s2let) 9 | -------------------------------------------------------------------------------- /test_package/conanfile.py: -------------------------------------------------------------------------------- 1 | import os 2 | from conans import ConanFile, CMake, tools 3 | 4 | 5 | class S2letTestConan(ConanFile): 6 | settings = "os", "compiler", "build_type", "arch" 7 | generators = "cmake" 8 | 9 | def configure(self): 10 | del self.settings.compiler.libcxx 11 | 12 | def build(self): 13 | cmake = CMake(self) 14 | cmake.configure() 15 | cmake.build() 16 | 17 | def test(self): 18 | if not tools.cross_building(self): 19 | os.chdir("bin") 20 | self.run(".%sexample" % os.sep) 21 | --------------------------------------------------------------------------------