├── .gitignore ├── CMakeInstall ├── CMakeLists.txt ├── INSTALL ├── LICENSE.txt ├── README ├── S2LET.sublime-project ├── bin └── .gitignore ├── 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 ├── doc ├── c │ ├── annotated.html │ ├── classes.html │ ├── dir_120ed4da3e3217b1e7fc0b4f48568e79.html │ ├── dir_2756d41f8717da58192571bd3d5ae320.html │ ├── dir_5eb159725f84c66aafd839904a4acdd0.html │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.html │ ├── dir_7420a7c8f71871d771403938d4d24c4a.html │ ├── dir_d44c64559bbebec7f509842c48db8b23.html │ ├── doxygen.css │ ├── dynsections.js │ ├── files.html │ ├── functions.html │ ├── functions_vars.html │ ├── globals.html │ ├── globals_0x62.html │ ├── globals_0x66.html │ ├── globals_0x67.html │ ├── globals_0x68.html │ ├── globals_0x69.html │ ├── globals_0x6d.html │ ├── globals_0x6e.html │ ├── globals_0x70.html │ ├── globals_0x72.html │ ├── globals_0x73.html │ ├── globals_0x77.html │ ├── globals_b.html │ ├── globals_defs.html │ ├── globals_enum.html │ ├── globals_eval.html │ ├── globals_f.html │ ├── globals_func.html │ ├── globals_func_0x66.html │ ├── globals_func_0x67.html │ ├── globals_func_0x68.html │ ├── globals_func_0x6d.html │ ├── globals_func_0x6e.html │ ├── globals_func_0x70.html │ ├── globals_func_0x72.html │ ├── globals_func_0x73.html │ ├── globals_func_0x77.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_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_type.html │ ├── globals_vars.html │ ├── globals_w.html │ ├── index.html │ ├── installdox │ ├── jquery.js │ ├── s2let_8h.html │ ├── s2let_8h_source.html │ ├── s2let__about_8c.html │ ├── s2let__about_8c_source.html │ ├── s2let__alloc_8c.html │ ├── s2let__alloc_8c_source.html │ ├── s2let__alloc_8h.html │ ├── s2let__alloc_8h_source.html │ ├── s2let__analysis_8c.html │ ├── s2let__analysis_8c_source.html │ ├── s2let__analysis_8h.html │ ├── s2let__analysis_8h_source.html │ ├── s2let__axisym__denoising__demo_8c.html │ ├── s2let__axisym__denoising__demo_8c_source.html │ ├── s2let__denoising__demo_8c.html │ ├── s2let__denoising__demo_8c_source.html │ ├── s2let__error_8h.html │ ├── s2let__error_8h_source.html │ ├── s2let__fits_8c.html │ ├── s2let__fits_8c_source.html │ ├── s2let__fits_8h.html │ ├── s2let__fits_8h_source.html │ ├── s2let__helper_8c.html │ ├── s2let__helper_8c_source.html │ ├── s2let__helper_8h.html │ ├── s2let__helper_8h_source.html │ ├── s2let__hpx_8c.html │ ├── s2let__hpx_8c_source.html │ ├── s2let__hpx_8h.html │ ├── s2let__hpx_8h_source.html │ ├── s2let__hpx__demo_8c.html │ ├── s2let__hpx__demo_8c_source.html │ ├── s2let__hpx__test_8c.html │ ├── s2let__hpx__test_8c_source.html │ ├── s2let__idl__hpx_8c.html │ ├── s2let__idl__hpx_8c_source.html │ ├── s2let__idl__hpx_8h.html │ ├── s2let__idl__hpx_8h_source.html │ ├── s2let__idl__mw_8c.html │ ├── s2let__idl__mw_8c_source.html │ ├── s2let__idl__mw_8h.html │ ├── s2let__idl__mw_8h_source.html │ ├── s2let__lm_8c.html │ ├── s2let__lm_8c_source.html │ ├── s2let__lm_8h.html │ ├── s2let__lm_8h_source.html │ ├── s2let__math_8c.html │ ├── s2let__math_8c_source.html │ ├── s2let__math_8h.html │ ├── s2let__math_8h_source.html │ ├── s2let__mex_8h.html │ ├── s2let__mex_8h_source.html │ ├── s2let__mw_8c.html │ ├── s2let__mw_8c_source.html │ ├── s2let__mw_8h.html │ ├── s2let__mw_8h_source.html │ ├── s2let__so3_8h.html │ ├── s2let__so3_8h_source.html │ ├── s2let__spin__denoising__demo_8c.html │ ├── s2let__spin__denoising__demo_8c_source.html │ ├── s2let__synthesis_8c.html │ ├── s2let__synthesis_8c_source.html │ ├── s2let__synthesis_8h.html │ ├── s2let__synthesis_8h_source.html │ ├── s2let__test_8c.html │ ├── s2let__test_8c_source.html │ ├── s2let__test__csv_8c.html │ ├── s2let__test__csv_8c_source.html │ ├── s2let__tiling_8c.html │ ├── s2let__tiling_8c_source.html │ ├── s2let__tiling_8h.html │ ├── s2let__tiling_8h_source.html │ ├── s2let__transform__axisym__analysis__hpx__real_8c.html │ ├── s2let__transform__axisym__analysis__hpx__real_8c_source.html │ ├── s2let__transform__axisym__analysis__mw__real_8c.html │ ├── s2let__transform__axisym__analysis__mw__real_8c_source.html │ ├── s2let__transform__axisym__hpx_8c.html │ ├── s2let__transform__axisym__hpx_8c_source.html │ ├── s2let__transform__axisym__hpx_8h.html │ ├── s2let__transform__axisym__hpx_8h_source.html │ ├── s2let__transform__axisym__lm_8c.html │ ├── s2let__transform__axisym__lm_8c_source.html │ ├── s2let__transform__axisym__lm_8h.html │ ├── s2let__transform__axisym__lm_8h_source.html │ ├── s2let__transform__axisym__mw_8c.html │ ├── s2let__transform__axisym__mw_8c_source.html │ ├── s2let__transform__axisym__mw_8h.html │ ├── s2let__transform__axisym__mw_8h_source.html │ ├── s2let__transform__axisym__synthesis__hpx__real_8c.html │ ├── s2let__transform__axisym__synthesis__hpx__real_8c_source.html │ ├── s2let__transform__axisym__synthesis__mw__real_8c.html │ ├── s2let__transform__axisym__synthesis__mw__real_8c_source.html │ ├── s2let__types_8h.html │ ├── 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_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_61.html │ │ ├── all_62.html │ │ ├── all_64.html │ │ ├── all_66.html │ │ ├── all_67.html │ │ ├── all_68.html │ │ ├── all_69.html │ │ ├── all_6a.html │ │ ├── all_6c.html │ │ ├── all_6d.html │ │ ├── all_6e.html │ │ ├── all_6f.html │ │ ├── all_7.html │ │ ├── all_7.js │ │ ├── all_70.html │ │ ├── all_72.html │ │ ├── all_73.html │ │ ├── all_75.html │ │ ├── all_76.html │ │ ├── all_77.html │ │ ├── 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 │ │ ├── classes_73.html │ │ ├── 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 │ │ ├── defines_61.html │ │ ├── defines_69.html │ │ ├── defines_6d.html │ │ ├── defines_6e.html │ │ ├── defines_70.html │ │ ├── defines_73.html │ │ ├── enums_0.html │ │ ├── enums_0.js │ │ ├── enums_73.html │ │ ├── enumvalues_0.html │ │ ├── enumvalues_0.js │ │ ├── enumvalues_1.html │ │ ├── enumvalues_1.js │ │ ├── enumvalues_6e.html │ │ ├── enumvalues_73.html │ │ ├── files_0.html │ │ ├── files_0.js │ │ ├── files_73.html │ │ ├── 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_62.html │ │ ├── functions_66.html │ │ ├── functions_67.html │ │ ├── functions_68.html │ │ ├── functions_6d.html │ │ ├── functions_6e.html │ │ ├── functions_7.html │ │ ├── functions_7.js │ │ ├── functions_70.html │ │ ├── functions_72.html │ │ ├── functions_73.html │ │ ├── functions_77.html │ │ ├── functions_8.html │ │ ├── functions_8.js │ │ ├── functions_9.html │ │ ├── functions_9.js │ │ ├── nomatches.html │ │ ├── search.css │ │ ├── search.js │ │ ├── searchdata.js │ │ ├── typedefs_0.html │ │ ├── typedefs_0.js │ │ ├── typedefs_69.html │ │ ├── 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_62.html │ │ ├── variables_64.html │ │ ├── variables_6a.html │ │ ├── variables_6c.html │ │ ├── variables_6e.html │ │ ├── variables_6f.html │ │ ├── variables_7.html │ │ ├── variables_7.js │ │ ├── variables_72.html │ │ ├── variables_73.html │ │ ├── variables_75.html │ │ ├── variables_76.html │ │ ├── variables_8.html │ │ ├── variables_8.js │ │ ├── variables_9.html │ │ └── variables_9.js │ ├── structs2let__parameters__t.html │ ├── tab_b.gif │ ├── tab_l.gif │ ├── tab_r.gif │ └── tabs.css ├── c_doc.html ├── idl │ └── index.html ├── idl_doc.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 ├── scratch_install.html └── style.css ├── figs └── .gitignore ├── include ├── s2let.h ├── s2let_alloc.h ├── s2let_analysis.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_tiling.h ├── s2let_transform_axisym_hpx.h ├── s2let_transform_axisym_lm.h ├── s2let_transform_axisym_mw.h └── s2let_types.h ├── lib └── .gitignore ├── makefile ├── pom.xml ├── run_denoising_demos.sh ├── run_timing_error.py ├── s2let_timing_plots.py ├── setup.cfg ├── setup.py └── src ├── doxygen.config ├── main ├── c │ ├── s2let_about.c │ ├── s2let_alloc.c │ ├── s2let_analysis.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_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 ├── 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 │ ├── 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_lm2wav.m │ ├── s2let_transform_analysis_lm2wav_mex.c │ ├── s2let_transform_analysis_mw.m │ ├── s2let_transform_analysis_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_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_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 └── python │ ├── pys2let.pyx │ ├── pys2let_test_axisym_hpx.py │ ├── pys2let_test_directional.py │ ├── pys2let_test_directional_manual.py │ └── pys2let_test_mw.py └── test ├── c ├── s2let_hpx_test.c ├── s2let_test.c ├── s2let_test.c~ └── s2let_test_csv.c └── java └── org └── s2let ├── AxisymmetricWaveletTransformTest.java ├── HealpixMapTest.java ├── MWMapTest.java └── S2letLibraryTest.java /.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 | 19 | core 20 | vgcore.* 21 | -------------------------------------------------------------------------------- /CMakeInstall: -------------------------------------------------------------------------------- 1 | 2 | # S2LET Installation script - CMake 3 | 4 | # Cleaning directories and previous build 5 | rm -rf build 6 | 7 | # Running CMake and make 8 | mkdir build 9 | cd build 10 | cmake .. 11 | make clean all VERBOSE=1 12 | 13 | # Cleaning directories 14 | rm -rf build -------------------------------------------------------------------------------- /S2LET.sublime-project: -------------------------------------------------------------------------------- 1 | { 2 | "detect_indentation": false, 3 | "tab_size": 4, 4 | "translate_tabs_to_spaces": true, 5 | "folders": 6 | [ 7 | { 8 | "path": ".", 9 | "file_exclude_patterns": ["*.mexa64", "*~"] 10 | }, 11 | { 12 | "path": "../so3" 13 | }, 14 | { 15 | "path": "../ssht" 16 | } 17 | ], 18 | 19 | "build_systems": 20 | [ 21 | { 22 | "name": "S2LET", 23 | "cmd": ["make", "all"], 24 | "file_regex": "^([^:\n]*):(\\d+):(?:(\\d+):)? ((?:(?:fatal )?error|note|warning): .*)$", 25 | "working_dir": "$project_path", 26 | "variants": [ 27 | { 28 | "name": "Run", 29 | "cmd": ["make", "runtest"] 30 | }, 31 | { 32 | "name": "Run unit tests", 33 | "cmd": ["make", "rununittest"] 34 | }, 35 | { 36 | "name": "Clean", 37 | "cmd": ["make", "clean"] 38 | } 39 | ] 40 | } 41 | ] 42 | } 43 | -------------------------------------------------------------------------------- /bin/.gitignore: -------------------------------------------------------------------------------- 1 | s2let_* 2 | -------------------------------------------------------------------------------- /data/.gitignore: -------------------------------------------------------------------------------- 1 | spin_signal_* 2 | real_signal_* 3 | -------------------------------------------------------------------------------- /data/earth_tomo_mw_128.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/data/earth_tomo_mw_128.fits -------------------------------------------------------------------------------- /data/earth_tomo_mw_128_rot.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/data/earth_tomo_mw_128_rot.fits -------------------------------------------------------------------------------- /data/somecmbsimu_hpx_128.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/data/somecmbsimu_hpx_128.fits -------------------------------------------------------------------------------- /data/wmap_mcmc_base_k_synch_stk_q_9yr_v5.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/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-archive/8170280a521f227c8dbb864be117c2b14812fcfc/data/wmap_mcmc_base_k_synch_stk_u_9yr_v5.fits -------------------------------------------------------------------------------- /doc/c/search/all_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['abs',['ABS',['../s2let__math_8h.html#ae2f08dc603ae93c402abd918ba4e23e1',1,'s2let_math.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/all_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['b',['B',['../structs2let__parameters__t.html#a5aa59dd22d193213c138188e4a85282a',1,'s2let_parameters_t']]], 4 | ['b3_5fspline',['b3_spline',['../s2let__math_8c.html#a77bf2f88aa8abaede094b8d4c98f641b',1,'s2let_math.c']]], 5 | ['binomial_5fcoefficient',['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 | -------------------------------------------------------------------------------- /doc/c/search/all_10.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_10.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['verbosity',['verbosity',['../structs2let__parameters__t.html#a6198529ad111be476461d3d249d3fa0a',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/all_11.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_11.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['waveletpower',['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']]], 4 | ['write_5fhealpix_5fmap_5f',['write_healpix_map_',['../s2let__hpx_8c.html#a8b5ed98a88a7f8a79c0d31338f972b19',1,'s2let_hpx.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/c/search/all_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['dl_5fmethod',['dl_method',['../structs2let__parameters__t.html#a6d39d3d306f418f81d599d2fad31158d',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/all_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['f_5fneedlet',['f_needlet',['../s2let__math_8c.html#acba5b02a49e931413dc0cde1fce77234',1,'s2let_math.c']]], 4 | ['f_5fs2dw',['f_s2dw',['../s2let__math_8c.html#a3a626259154382ef236e7d9ab33cca49',1,'s2let_math.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/c/search/all_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['get_5fmax_5ferror',['get_max_error',['../s2let__test__csv_8c.html#a4d00c945ef5468ad68184f0bc1ada91a',1,'s2let_test_csv.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/all_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['hard_5fthreshold',['hard_threshold',['../s2let__spin__denoising__demo_8c.html#a6efb36935c405dca5e9dd591164f79a0',1,'s2let_spin_denoising_demo.c']]], 4 | ['hard_5fthreshold_5freal',['hard_threshold_real',['../s2let__denoising__demo_8c.html#a067d9bf357dbfd7a4986d3f62a9e8c45',1,'s2let_denoising_demo.c']]], 5 | ['healpix_5fforward_5freal_5f',['healpix_forward_real_',['../s2let__hpx_8c.html#ad1de3129addcea74634d9f809615948b',1,'s2let_hpx.c']]], 6 | ['healpix_5fforward_5fspin_5freal_5f',['healpix_forward_spin_real_',['../s2let__hpx_8c.html#a3c1aa5d1d8986ea812c873bd8dd429fa',1,'s2let_hpx.c']]], 7 | ['healpix_5finverse_5freal_5f',['healpix_inverse_real_',['../s2let__hpx_8c.html#aeb1da4714bc41184ec236de731756560',1,'s2let_hpx.c']]], 8 | ['healpix_5finverse_5fspin_5freal_5f',['healpix_inverse_spin_real_',['../s2let__hpx_8c.html#a27eaaf7d94a6fa9c382fea95ad13d9a0',1,'s2let_hpx.c']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /doc/c/search/all_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['idl_5fint',['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',['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',['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',['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',['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',['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 | -------------------------------------------------------------------------------- /doc/c/search/all_61.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | ABS 13 | s2let_math.h 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_64.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | dl_method 13 | s2let_parameters_t 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_66.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | f_needlet 13 | s2let_math.c 14 |
15 |
16 |
17 |
18 | f_s2dw 19 | s2let_math.c 20 |
21 |
22 |
Searching...
23 |
No Matches
24 | 30 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /doc/c/search/all_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | get_max_error 13 | s2let_test_csv.c 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_6a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | J_min 13 | s2let_parameters_t 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_6c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | L 13 | s2let_parameters_t 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_6f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | original_spin 13 | s2let_parameters_t 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['j_5fmin',['J_min',['../structs2let__parameters__t.html#a9146ca6b1dd496925173a0ab1feeccf7',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/all_75.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | upsample 13 | s2let_parameters_t 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_76.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | verbosity 13 | s2let_parameters_t 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['l',['L',['../structs2let__parameters__t.html#a018fcd55bd13a231c2c71f16cca5c53b',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/all_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['n',['N',['../structs2let__parameters__t.html#a93d528e7cc428bfc6783e9a01567b748',1,'s2let_parameters_t']]], 4 | ['needlet',['NEEDLET',['../s2let__tiling_8c.html#aa95dc83ea2d993b343828e5c6ca4879aa1ab4d051220837ebef5b7bbc03e7f2ac',1,'s2let_tiling.c']]], 5 | ['needletpower',['needletpower',['../s2let__axisym__denoising__demo_8c.html#a16c08eb6db78637aae2b6ffdfd13cfe2',1,'s2let_axisym_denoising_demo.c']]], 6 | ['normalization',['normalization',['../structs2let__parameters__t.html#a22f2592dbf99e937ae0e67fe4ee2de93',1,'s2let_parameters_t']]], 7 | ['nrepeat',['NREPEAT',['../s2let__test__csv_8c.html#a9fa6466347dd349266768c7f7f0b0e4e',1,'s2let_test_csv.c']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /doc/c/search/all_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['original_5fspin',['original_spin',['../structs2let__parameters__t.html#a9b083a6f2ac9139fbe25605685c97b4e',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/all_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['pi',['PI',['../s2let__math_8h.html#a598a3330b3c21701223ee0ca14316eca',1,'PI(): s2let_math.h'],['../s2let__tiling_8h.html#a598a3330b3c21701223ee0ca14316eca',1,'PI(): s2let_tiling.h']]], 4 | ['printerror',['printerror',['../s2let__fits_8c.html#aca57f410eb9f3d6ec61c1c17d4aea3da',1,'s2let_fits.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/c/search/all_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ran2_5fdp',['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',['read_healpix_map_',['../s2let__hpx_8c.html#ae43fcaf0a30b8979a329c9d8a639f9aa',1,'s2let_hpx.c']]], 5 | ['reality',['reality',['../structs2let__parameters__t.html#a7718737039d19e05501792535b32ef6d',1,'s2let_parameters_t']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/c/search/all_e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/all_f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['upsample',['upsample',['../structs2let__parameters__t.html#aec567c0f2af65ec246fd92169ae66216',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/classes_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['s2let_5fparameters_5ft',['s2let_parameters_t',['../structs2let__parameters__t.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/classes_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | s2let_parameters_t 13 |
14 |
15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/c/search/defines_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/defines_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['abs',['ABS',['../s2let__math_8h.html#ae2f08dc603ae93c402abd918ba4e23e1',1,'s2let_math.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/defines_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/defines_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['idl_5fsizeof_5fc_5flong',['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',['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 | -------------------------------------------------------------------------------- /doc/c/search/defines_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/defines_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['max',['MAX',['../s2let__math_8h.html#afa99ec4acc4ecb2dc3c2d05da15d0e3f',1,'s2let_math.h']]], 4 | ['min',['MIN',['../s2let__math_8h.html#a3acffbd305ee72dcd4593c0d8af64a4f',1,'s2let_math.h']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/c/search/defines_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/defines_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['nrepeat',['NREPEAT',['../s2let__test__csv_8c.html#a9fa6466347dd349266768c7f7f0b0e4e',1,'s2let_test_csv.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/defines_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/defines_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['pi',['PI',['../s2let__math_8h.html#a598a3330b3c21701223ee0ca14316eca',1,'PI(): s2let_math.h'],['../s2let__tiling_8h.html#a598a3330b3c21701223ee0ca14316eca',1,'PI(): s2let_tiling.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/defines_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/defines_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['s2let_5ferror_5fgeneric',['S2LET_ERROR_GENERIC',['../s2let__error_8h.html#a1fc4ad04b2aec1f0fd461d11cee161c6',1,'s2let_error.h']]], 4 | ['s2let_5ferror_5fmem_5falloc_5fcheck',['S2LET_ERROR_MEM_ALLOC_CHECK',['../s2let__error_8h.html#a0aeaf94328b5e5b821266c1d97cbe96c',1,'s2let_error.h']]], 5 | ['s2let_5fsampling_5fmw_5fss_5fstr',['S2LET_SAMPLING_MW_SS_STR',['../s2let__mex_8h.html#aef877ec016bc062e71412e295efbe843',1,'s2let_mex.h']]], 6 | ['s2let_5fsampling_5fmw_5fstr',['S2LET_SAMPLING_MW_STR',['../s2let__mex_8h.html#a965fb52ef2d665d3443bd08e8ec47548',1,'s2let_mex.h']]], 7 | ['s2let_5fso3_5fn_5forder',['S2LET_SO3_N_ORDER',['../s2let__so3_8h.html#a0c50a5de20f171c266985a92764153b3',1,'s2let_so3.h']]], 8 | ['s2let_5fso3_5fstorage',['S2LET_SO3_STORAGE',['../s2let__so3_8h.html#a234c5518a86c602ca220a16b33dc2e22',1,'s2let_so3.h']]], 9 | ['s2let_5fstring_5flen',['S2LET_STRING_LEN',['../s2let__mex_8h.html#a3bd7f5fbd27ea58ab3a23a1eb7a6f4cd',1,'s2let_mex.h']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /doc/c/search/defines_61.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | ABS 13 | s2let_math.h 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/defines_6d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | MAX 13 | s2let_math.h 14 |
15 |
16 |
17 |
18 | MIN 19 | s2let_math.h 20 |
21 |
22 |
Searching...
23 |
No Matches
24 | 30 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /doc/c/search/defines_6e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | NREPEAT 13 | s2let_test_csv.c 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/defines_70.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | PI 13 | 17 |
18 |
19 |
Searching...
20 |
No Matches
21 | 27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /doc/c/search/enums_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/enums_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['s2let_5fkernel_5ftype',['s2let_kernel_type',['../s2let__tiling_8c.html#aa95dc83ea2d993b343828e5c6ca4879a',1,'s2let_tiling.c']]], 4 | ['s2let_5fsampling_5ft',['s2let_sampling_t',['../s2let__types_8h.html#a1bdf3bdc527d0a90b16cf5f3f507001e',1,'s2let_types.h']]], 5 | ['s2let_5fwav_5fnorm_5ft',['s2let_wav_norm_t',['../s2let__types_8h.html#add00361eb2a713b43c379284c2c07810',1,'s2let_types.h']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/c/search/enums_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | s2let_kernel_type 13 | s2let_tiling.c 14 |
15 |
16 |
17 |
18 | s2let_sampling_t 19 | s2let_types.h 20 |
21 |
22 |
Searching...
23 |
No Matches
24 | 30 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /doc/c/search/enumvalues_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/enumvalues_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['needlet',['NEEDLET',['../s2let__tiling_8c.html#aa95dc83ea2d993b343828e5c6ca4879aa1ab4d051220837ebef5b7bbc03e7f2ac',1,'s2let_tiling.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/enumvalues_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/enumvalues_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['s2dw',['S2DW',['../s2let__tiling_8c.html#aa95dc83ea2d993b343828e5c6ca4879aad2e1e459d07d91ca00e5f09caf8b4558',1,'s2let_tiling.c']]], 4 | ['s2let_5fsampling_5fmw',['S2LET_SAMPLING_MW',['../s2let__types_8h.html#a1bdf3bdc527d0a90b16cf5f3f507001ea061a427ab87d0615aeea0bbc9ef5a8bc',1,'s2let_types.h']]], 5 | ['s2let_5fsampling_5fmw_5fss',['S2LET_SAMPLING_MW_SS',['../s2let__types_8h.html#a1bdf3bdc527d0a90b16cf5f3f507001ea4735249ce28fc1c5b443806760f8fcd8',1,'s2let_types.h']]], 6 | ['s2let_5fsampling_5fsize',['S2LET_SAMPLING_SIZE',['../s2let__types_8h.html#a1bdf3bdc527d0a90b16cf5f3f507001ea1eb522fb952502e38119d2a315cce842',1,'s2let_types.h']]], 7 | ['s2let_5fwav_5fnorm_5fdefault',['S2LET_WAV_NORM_DEFAULT',['../s2let__types_8h.html#add00361eb2a713b43c379284c2c07810ad4f518290807ff6b67dc975abc427df1',1,'s2let_types.h']]], 8 | ['s2let_5fwav_5fnorm_5fsize',['S2LET_WAV_NORM_SIZE',['../s2let__types_8h.html#add00361eb2a713b43c379284c2c07810a3132564605e276ddc8295963d16d1522',1,'s2let_types.h']]], 9 | ['s2let_5fwav_5fnorm_5fspin_5flowered',['S2LET_WAV_NORM_SPIN_LOWERED',['../s2let__types_8h.html#add00361eb2a713b43c379284c2c07810a8ea0959683521822b68c6f919dd755e6',1,'s2let_types.h']]], 10 | ['spline',['SPLINE',['../s2let__tiling_8c.html#aa95dc83ea2d993b343828e5c6ca4879aa4d8b3b9406a35793dead4b293d793463',1,'s2let_tiling.c']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /doc/c/search/enumvalues_6e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | NEEDLET 13 | s2let_tiling.c 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/files_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/functions_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['b3_5fspline',['b3_spline',['../s2let__math_8c.html#a77bf2f88aa8abaede094b8d4c98f641b',1,'s2let_math.c']]], 4 | ['binomial_5fcoefficient',['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 | -------------------------------------------------------------------------------- /doc/c/search/functions_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['f_5fneedlet',['f_needlet',['../s2let__math_8c.html#acba5b02a49e931413dc0cde1fce77234',1,'s2let_math.c']]], 4 | ['f_5fs2dw',['f_s2dw',['../s2let__math_8c.html#a3a626259154382ef236e7d9ab33cca49',1,'s2let_math.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/c/search/functions_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/functions_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['get_5fmax_5ferror',['get_max_error',['../s2let__test__csv_8c.html#a4d00c945ef5468ad68184f0bc1ada91a',1,'s2let_test_csv.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/functions_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['hard_5fthreshold',['hard_threshold',['../s2let__spin__denoising__demo_8c.html#a6efb36935c405dca5e9dd591164f79a0',1,'s2let_spin_denoising_demo.c']]], 4 | ['hard_5fthreshold_5freal',['hard_threshold_real',['../s2let__denoising__demo_8c.html#a067d9bf357dbfd7a4986d3f62a9e8c45',1,'s2let_denoising_demo.c']]], 5 | ['healpix_5fforward_5freal_5f',['healpix_forward_real_',['../s2let__hpx_8c.html#ad1de3129addcea74634d9f809615948b',1,'s2let_hpx.c']]], 6 | ['healpix_5fforward_5fspin_5freal_5f',['healpix_forward_spin_real_',['../s2let__hpx_8c.html#a3c1aa5d1d8986ea812c873bd8dd429fa',1,'s2let_hpx.c']]], 7 | ['healpix_5finverse_5freal_5f',['healpix_inverse_real_',['../s2let__hpx_8c.html#aeb1da4714bc41184ec236de731756560',1,'s2let_hpx.c']]], 8 | ['healpix_5finverse_5fspin_5freal_5f',['healpix_inverse_spin_real_',['../s2let__hpx_8c.html#a27eaaf7d94a6fa9c382fea95ad13d9a0',1,'s2let_hpx.c']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /doc/c/search/functions_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/functions_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['needletpower',['needletpower',['../s2let__axisym__denoising__demo_8c.html#a16c08eb6db78637aae2b6ffdfd13cfe2',1,'s2let_axisym_denoising_demo.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/functions_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/functions_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['printerror',['printerror',['../s2let__fits_8c.html#aca57f410eb9f3d6ec61c1c17d4aea3da',1,'s2let_fits.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/functions_66.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | f_needlet 13 | s2let_math.c 14 |
15 |
16 |
17 |
18 | f_s2dw 19 | s2let_math.c 20 |
21 |
22 |
Searching...
23 |
No Matches
24 | 30 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /doc/c/search/functions_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | get_max_error 13 | s2let_test_csv.c 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/functions_6e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | needletpower 13 | s2let_axisym_denoising_demo.c 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/functions_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/functions_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ran2_5fdp',['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',['read_healpix_map_',['../s2let__hpx_8c.html#ae43fcaf0a30b8979a329c9d8a639f9aa',1,'s2let_hpx.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/c/search/functions_70.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | printerror 13 | s2let_fits.c 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/functions_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/functions_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/functions_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['waveletpower',['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']]], 4 | ['write_5fhealpix_5fmap_5f',['write_healpix_map_',['../s2let__hpx_8c.html#a8b5ed98a88a7f8a79c0d31338f972b19',1,'s2let_hpx.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/c/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
No Matches
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /doc/c/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "abdfghijlmnoprsuvw", 4 | 1: "s", 5 | 2: "s", 6 | 3: "bfghmnprsw", 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 | -------------------------------------------------------------------------------- /doc/c/search/typedefs_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/typedefs_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['idl_5fint',['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',['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',['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',['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 | -------------------------------------------------------------------------------- /doc/c/search/variables_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['b',['B',['../structs2let__parameters__t.html#a5aa59dd22d193213c138188e4a85282a',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/variables_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['dl_5fmethod',['dl_method',['../structs2let__parameters__t.html#a6d39d3d306f418f81d599d2fad31158d',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/variables_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['j_5fmin',['J_min',['../structs2let__parameters__t.html#a9146ca6b1dd496925173a0ab1feeccf7',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/variables_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['l',['L',['../structs2let__parameters__t.html#a018fcd55bd13a231c2c71f16cca5c53b',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/variables_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['n',['N',['../structs2let__parameters__t.html#a93d528e7cc428bfc6783e9a01567b748',1,'s2let_parameters_t']]], 4 | ['normalization',['normalization',['../structs2let__parameters__t.html#a22f2592dbf99e937ae0e67fe4ee2de93',1,'s2let_parameters_t']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/c/search/variables_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['original_5fspin',['original_spin',['../structs2let__parameters__t.html#a9b083a6f2ac9139fbe25605685c97b4e',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/variables_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['reality',['reality',['../structs2let__parameters__t.html#a7718737039d19e05501792535b32ef6d',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/variables_62.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | B 13 | s2let_parameters_t 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_64.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | dl_method 13 | s2let_parameters_t 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_6a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | J_min 13 | s2let_parameters_t 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_6c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | L 13 | s2let_parameters_t 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_6e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | N 13 | s2let_parameters_t 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_6f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | original_spin 13 | s2let_parameters_t 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['s2let_5fkernel',['s2let_kernel',['../s2let__tiling_8c.html#ab2ff4854b8611353b7ba607e99a742f3',1,'s2let_tiling.c']]], 4 | ['sampling_5fscheme',['sampling_scheme',['../structs2let__parameters__t.html#a32942243b855116a10cc6b8b81a90b87',1,'s2let_parameters_t']]], 5 | ['spin',['spin',['../structs2let__parameters__t.html#a4fd720e3d7a947dab5bbfd0f51c3dcf7',1,'s2let_parameters_t']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/c/search/variables_72.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | reality 13 | s2let_parameters_t 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_75.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | upsample 13 | s2let_parameters_t 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_76.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | verbosity 13 | s2let_parameters_t 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['upsample',['upsample',['../structs2let__parameters__t.html#aec567c0f2af65ec246fd92169ae66216',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/search/variables_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/c/search/variables_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['verbosity',['verbosity',['../structs2let__parameters__t.html#a6198529ad111be476461d3d249d3fa0a',1,'s2let_parameters_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/c/tab_b.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/c/tab_b.gif -------------------------------------------------------------------------------- /doc/c/tab_l.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/c/tab_l.gif -------------------------------------------------------------------------------- /doc/c/tab_r.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/c/tab_r.gif -------------------------------------------------------------------------------- /doc/images/Ridgeletj3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/images/Ridgeletj3.png -------------------------------------------------------------------------------- /doc/images/Ridgeletj4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/images/Ridgeletj4.png -------------------------------------------------------------------------------- /doc/images/curvelet_L512_B2_Jmin2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/images/curvelet_L512_B2_Jmin2.png -------------------------------------------------------------------------------- /doc/images/download_icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/images/download_icon.gif -------------------------------------------------------------------------------- /doc/images/earth1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/images/earth1.png -------------------------------------------------------------------------------- /doc/images/earth2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/images/earth2.png -------------------------------------------------------------------------------- /doc/images/earth3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/images/earth3.png -------------------------------------------------------------------------------- /doc/images/earth4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/images/earth4.png -------------------------------------------------------------------------------- /doc/images/needlets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/images/needlets.png -------------------------------------------------------------------------------- /doc/images/newlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/images/newlogo.png -------------------------------------------------------------------------------- /doc/images/photo_boris.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/images/photo_boris.jpeg -------------------------------------------------------------------------------- /doc/images/photo_jason.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/images/photo_jason.jpg -------------------------------------------------------------------------------- /doc/images/tiling2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/images/tiling2.png -------------------------------------------------------------------------------- /doc/images/tiling_compar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/images/tiling_compar.png -------------------------------------------------------------------------------- /doc/images/wav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/images/wav.png -------------------------------------------------------------------------------- /doc/matlab/demoicon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/matlab/demoicon.gif -------------------------------------------------------------------------------- /doc/matlab/m2html.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: white; 3 | color: black; 4 | font-family: arial,sans-serif; 5 | margin: 0; 6 | padding: 1ex; 7 | } 8 | 9 | div.fragment { 10 | width: 98%; 11 | border: 1px solid #CCCCCC; 12 | background-color: #f5f5f5; 13 | padding-left: 4px; 14 | margin: 4px; 15 | } 16 | 17 | div.box { 18 | width: 98%; 19 | background-color: #f5f5f5; 20 | border: 1px solid #CCCCCC; 21 | color: black; 22 | padding: 4px; 23 | } 24 | 25 | .comment { 26 | color: #228B22; 27 | } 28 | .string { 29 | color: #B20000; 30 | } 31 | .keyword { 32 | color: #0000FF; 33 | } 34 | 35 | .keywordtype { color: #604020; } 36 | .keywordflow { color: #e08000; } 37 | .preprocessor { color: #806020; } 38 | .stringliteral { color: #002080; } 39 | .charliteral { color: #008080; } 40 | 41 | a { 42 | text-decoration: none; 43 | } 44 | 45 | a:hover { 46 | background-color: #006699; 47 | color:#FFFFFF; 48 | } 49 | 50 | a.code { 51 | font-weight: normal; 52 | color: #A020F0; 53 | } 54 | 55 | a.code:hover { 56 | background-color: #FF0000; 57 | color: #FFFFFF; 58 | } 59 | 60 | h1 { 61 | background: transparent; 62 | color: #006699; 63 | font-size: x-large; 64 | text-align: center; 65 | } 66 | 67 | h2 { 68 | background: transparent; 69 | color: #006699; 70 | font-size: large; 71 | } 72 | 73 | address { 74 | font-size:small; 75 | } 76 | 77 | form.search { 78 | margin-bottom: 0px; 79 | margin-top: 0px; 80 | } 81 | input.search { 82 | font-size: 75%; 83 | color: #000080; 84 | font-weight: normal; 85 | background-color: #eeeeff; 86 | } 87 | 88 | li { 89 | padding-left:5px; 90 | } -------------------------------------------------------------------------------- /doc/matlab/matlabicon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/matlab/matlabicon.gif -------------------------------------------------------------------------------- /doc/matlab/simulinkicon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/matlab/simulinkicon.gif -------------------------------------------------------------------------------- /doc/matlab/src/main/matlab/s2let_transform_curvelet_synthesis_lmn2lm.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/doc/matlab/src/main/matlab/s2let_transform_curvelet_synthesis_lmn2lm.html -------------------------------------------------------------------------------- /figs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /include/s2let.h: -------------------------------------------------------------------------------- 1 | #ifndef S2LET 2 | #define S2LET 3 | 4 | #include "s2let_error.h" 5 | #include "s2let_types.h" 6 | #include "s2let_helper.h" 7 | #include "s2let_so3.h" 8 | #include "s2let_alloc.h" 9 | #include "s2let_analysis.h" 10 | #include "s2let_synthesis.h" 11 | #include "s2let_transform_axisym_hpx.h" 12 | #include "s2let_transform_axisym_lm.h" 13 | #include "s2let_transform_axisym_mw.h" 14 | #include "s2let_fits.h" 15 | #include "s2let_hpx.h" 16 | #include "s2let_lm.h" 17 | #include "s2let_mw.h" 18 | #include "s2let_idl_hpx.h" 19 | #include "s2let_idl_mw.h" 20 | #include "s2let_math.h" 21 | #include "s2let_tiling.h" 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /include/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 | 10 | /** Pixel space allocation **/ 11 | 12 | void s2let_allocate_mw(complex double **f, int L); 13 | void s2let_allocate_mw_real(double **f, int L); 14 | 15 | void s2let_allocate_mwss(complex double **f, int L); 16 | void s2let_allocate_mwss_real(double **f, int L); 17 | 18 | /** Harmonic space allocation **/ 19 | 20 | void s2let_allocate_lm(complex double **flm, int L); 21 | 22 | /** Wigner space allocation **/ 23 | 24 | void s2let_allocate_lmn_f_wav( 25 | complex double **f_wav_lmn, 26 | complex double **f_scal_lm, 27 | const s2let_parameters_t *parameters 28 | ); 29 | 30 | /** Wavelet space allocation **/ 31 | 32 | void s2let_allocate_f_wav( 33 | complex double **f_wav, 34 | complex double **f_scal, 35 | const s2let_parameters_t *parameters 36 | ); 37 | 38 | void s2let_allocate_f_wav_real( 39 | double **f_wav, 40 | double **f_scal, 41 | const s2let_parameters_t *parameters 42 | ); 43 | 44 | void s2let_allocate_f_wav_manual( 45 | complex double **f_wav, 46 | complex double **f_scal, 47 | int *wav_bandlimits, 48 | int scal_bandlimit, 49 | int N, 50 | int J, 51 | s2let_parameters_t *parameters 52 | ); 53 | 54 | #endif 55 | -------------------------------------------------------------------------------- /include/s2let_error.h: -------------------------------------------------------------------------------- 1 | #ifndef S2LET_ERROR 2 | #define S2LET_ERROR 3 | 4 | #include 5 | 6 | // Put this macro in a block so that it can be used with single-line 7 | // if-statements. 8 | #define S2LET_ERROR_GENERIC(comment) \ 9 | { \ 10 | printf("ERROR: %s.\n", comment); \ 11 | printf("ERROR: %s <%s> %s %s %s %d.\n", \ 12 | "Occurred in function", \ 13 | __PRETTY_FUNCTION__, \ 14 | "of file", __FILE__, \ 15 | "on line", __LINE__); \ 16 | exit(1); \ 17 | } 18 | 19 | #define S2LET_ERROR_MEM_ALLOC_CHECK(pointer) \ 20 | if(pointer == NULL) { \ 21 | S2LET_ERROR_GENERIC("Memory allocation failed") \ 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /include/s2let_helper.h: -------------------------------------------------------------------------------- 1 | #ifndef S2LET_HELPER 2 | #define S2LET_HELPER 3 | 4 | int s2let_n_phi(const s2let_parameters_t *parameters); 5 | int s2let_n_theta(const s2let_parameters_t *parameters); 6 | int s2let_n_px(const s2let_parameters_t *parameters); 7 | 8 | int s2let_n_lm(const s2let_parameters_t *parameters); 9 | 10 | int s2let_n_lm_scal(const s2let_parameters_t *parameters); 11 | int s2let_n_lmn_wav(const s2let_parameters_t *parameters); 12 | 13 | int s2let_n_gamma(const s2let_parameters_t *parameters); 14 | int s2let_n_scal(const s2let_parameters_t *parameters); 15 | int s2let_n_wav(const s2let_parameters_t *parameters); 16 | 17 | int s2let_n_wav_j(int j, const s2let_parameters_t *parameters); 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /include/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 | /*! 9 | * IDL interface to s2let_axisym_hpx_wav_analysis_real 10 | */ 11 | int s2let_idl_hpx_axisym_wav_analysis_real(int argc, void* argv[]); 12 | 13 | /*! 14 | * IDL interface to s2let_axisym_hpx_wav_synthesis_real 15 | */ 16 | int s2let_idl_hpx_axisym_wav_synthesis_real(int argc, void* argv[]); 17 | 18 | /*! 19 | * IDL interface to s2let_hpx_map2alm_real 20 | */ 21 | int s2let_idl_hpx_map2alm_real(int argc, void* argv[]); 22 | 23 | /*! 24 | * IDL interface to s2let_hpx_alm2map_real 25 | */ 26 | int s2let_idl_hpx_alm2map_real(int argc, void* argv[]); 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /include/s2let_idl_mw.h: -------------------------------------------------------------------------------- 1 | // S2LET package 2 | // Copyright (C) 2012 3 | // Boris Leistedt & Jason McEwen 4 | 5 | #ifndef S2LET_IDL_MW 6 | #define S2LET_IDL_MW 7 | 8 | /*! 9 | * IDL interface to s2let_mw_axisym_wav_analysis_mw_real 10 | */ 11 | int s2let_idl_transform_axisym_wav_analysis_mw_real(int argc, void* argv[]); 12 | 13 | /*! 14 | * IDL interface to s2let_mw_axisym_wav_synthesis_mw_real 15 | */ 16 | int s2let_idl_transform_axisym_wav_synthesis_mw_real(int argc, void* argv[]); 17 | 18 | /*! 19 | * IDL interface to s2let_mw_axisym_wav_analysis_mw 20 | */ 21 | int s2let_idl_transform_axisym_wav_analysis_mw(int argc, void* argv[]); 22 | 23 | /*! 24 | * IDL interface to s2let_mw_axisym_wav_synthesis_mw 25 | */ 26 | int s2let_idl_transform_axisym_wav_synthesis_mw(int argc, void* argv[]); 27 | 28 | 29 | /*! 30 | * IDL interface to s2let_mw_axisym_wav_analysis_mw_multires_real 31 | */ 32 | int s2let_idl_transform_axisym_wav_analysis_mw_multires_real(int argc, void* argv[]); 33 | 34 | /*! 35 | * IDL interface to s2let_mw_axisym_wav_synthesis_mw_multires_real 36 | */ 37 | int s2let_idl_transform_axisym_wav_synthesis_mw_multires_real(int argc, void* argv[]); 38 | 39 | /*! 40 | * IDL interface to s2let_mw_axisym_wav_analysis_mw_multires 41 | */ 42 | int s2let_idl_transform_axisym_wav_analysis_mw_multires(int argc, void* argv[]); 43 | 44 | /*! 45 | * IDL interface to s2let_mw_axisym_wav_synthesis_mw_multires 46 | */ 47 | int s2let_idl_transform_axisym_wav_synthesis_mw_multires(int argc, void* argv[]); 48 | 49 | /*! 50 | * IDL interface to s2let_mw_map2alm_real 51 | */ 52 | int s2let_idl_transform_map2alm_real(int argc, void* argv[]); 53 | 54 | /*! 55 | * IDL interface to s2let_mw_alm2map_real 56 | */ 57 | int s2let_idl_transform_alm2map_real(int argc, void* argv[]); 58 | 59 | /*! 60 | * IDL interface to s2let_mw_map2alm 61 | */ 62 | int s2let_idl_transform_map2alm(int argc, void* argv[]); 63 | 64 | /*! 65 | * IDL interface to s2let_mw_alm2map 66 | */ 67 | int s2let_idl_transform_alm2map(int argc, void* argv[]); 68 | 69 | #endif 70 | -------------------------------------------------------------------------------- /include/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 | double s2let_lm_power(complex double *flm, int L); 9 | 10 | void s2let_lm_random_flm(complex double *flm, int L, int spin, int seed); 11 | void s2let_lm_random_flm_real(complex double *flm, int L, int seed); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /include/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 | 8 | #define PI 3.141592653589793238462643383279502884197 9 | 10 | #define MIN(a,b) ((a) < (b) ? (a) : (b)) 11 | #define MAX(a,b) ((a) > (b) ? (a) : (b)) 12 | #define ABS(a) ((a) > (0.0) ? (a) : (-(a))) 13 | 14 | 15 | double s2let_math_kappa0_quadtrap_s2dw(double a, double b, int n, double B); 16 | 17 | double s2let_math_kappa0_quadtrap_needlet(double a, double b, int n); 18 | 19 | double s2let_math_spline_scalingfct(double x, double y); 20 | 21 | double ran2_dp(int idum); 22 | 23 | double maxerr_cplx(complex double *a, complex double *b, int size); 24 | 25 | double maxerr(double *a, double *b, int size); 26 | 27 | unsigned long binomial_coefficient(int n, int k, int exact); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /include/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_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 | 9 | /** Interfaces to SSHT (required by the Java interface to S2LET) **/ 10 | void s2let_mw_map2alm_real(complex double* flm, const double* f, int L); 11 | void s2let_mw_alm2map_real(double* f, const complex double* flm, int L); 12 | void s2let_mw_alm2map(complex double* f, const complex double* flm, int L, int spin); 13 | void s2let_mw_map2alm(complex double* flm, const complex double* f, int L, int spin); 14 | 15 | /** Helper functions for pixel-space computations in MW sampling **/ 16 | double s2let_mw_power(complex double *flm, int L); 17 | double s2let_mw_power_real(double *flm, int L); 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /include/s2let_so3.h: -------------------------------------------------------------------------------- 1 | // S2LET package 2 | // Copyright (C) 2014 3 | // Boris Leistedt & Jason McEwen 4 | 5 | #ifndef S2LET_SO3 6 | #define S2LET_SO3 7 | 8 | #include 9 | 10 | // Define a few macros for fixed SO3 configuration used 11 | // throughout S2LET. 12 | #define S2LET_SO3_N_ORDER SO3_N_ORDER_NEGATIVE_FIRST 13 | #define S2LET_SO3_STORAGE SO3_STORAGE_COMPACT 14 | 15 | /*! 16 | * A static helper function to prepopulate an so3_parameters_t 17 | * struct with data from an s2let_parameters_t struct. 18 | */ 19 | static inline void fill_so3_parameters(so3_parameters_t *so3_parameters, const s2let_parameters_t *parameters) 20 | { 21 | so3_parameters->verbosity = parameters->verbosity; 22 | so3_parameters->L = parameters->L; 23 | so3_parameters->N = parameters->N; 24 | so3_parameters->sampling_scheme = parameters->sampling_scheme; 25 | so3_parameters->n_order = S2LET_SO3_N_ORDER; 26 | so3_parameters->storage = S2LET_SO3_STORAGE; 27 | so3_parameters->dl_method = parameters->dl_method; 28 | so3_parameters->reality = parameters->reality; 29 | so3_parameters->steerable = 1; 30 | 31 | if (parameters->N % 2) 32 | so3_parameters->n_mode = SO3_N_MODE_EVEN; 33 | else 34 | so3_parameters->n_mode = SO3_N_MODE_ODD; 35 | } 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /include/s2let_tiling.h: -------------------------------------------------------------------------------- 1 | // S2LET package 2 | // Copyright (C) 2012 3 | // Boris Leistedt & Jason McEwen 4 | 5 | #ifndef S2LET_TILING 6 | #define S2LET_TILING 7 | 8 | #define PI 3.141592653589793238462643383279502884197 9 | 10 | void s2let_switch_wavtype(int typenum); 11 | 12 | int s2let_bandlimit(int j, const s2let_parameters_t *parameters); 13 | 14 | int s2let_L0(int j, const s2let_parameters_t *parameters); 15 | 16 | int s2let_j_max(const s2let_parameters_t *parameters); 17 | 18 | void s2let_tiling_axisym_allocate(double **kappa, double **kappa0, const s2let_parameters_t *parameters); 19 | 20 | void s2let_tiling_axisym(double *kappa, double *kappa0, const s2let_parameters_t *parameters); 21 | 22 | void s2let_tiling_direction_allocate(complex double **s_elm, const s2let_parameters_t *parameters); 23 | 24 | void s2let_tiling_direction(complex double *s_elm, const s2let_parameters_t *parameters); 25 | 26 | void s2let_tiling_wavelet_allocate(complex double **psi, double **phi, const s2let_parameters_t *parameters); 27 | 28 | void s2let_tiling_wavelet(complex double *psi, double *phi, const s2let_parameters_t *parameters); 29 | 30 | double s2let_tiling_axisym_check_identity(double *kappa, double *kappa0, const s2let_parameters_t *parameters); 31 | 32 | double s2let_tiling_direction_check_identity(complex double *s_elm, const s2let_parameters_t *parameters); 33 | 34 | double s2let_tiling_wavelet_check_identity(complex double *psi, double *phi, const s2let_parameters_t *parameters); 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /include/s2let_transform_axisym_lm.h: -------------------------------------------------------------------------------- 1 | // S2LET package 2 | // Copyright (C) 2012 3 | // Boris Leistedt & Jason McEwen 4 | 5 | #ifndef S2LET_transform_AXISYM_LM 6 | #define S2LET_transform_AXISYM_LM 7 | 8 | #include 9 | 10 | 11 | void s2let_transform_axisym_lm_allocate_f_wav( 12 | complex double **f_wav_lm, 13 | complex double **f_scal_lm, 14 | const s2let_parameters_t *parameters 15 | ); 16 | 17 | void s2let_transform_axisym_lm_allocate_f_wav_multires( 18 | complex double **f_wav_lm, 19 | complex double **f_scal_lm, 20 | const s2let_parameters_t *parameters 21 | ); 22 | 23 | void s2let_transform_axisym_lm_allocate_wav(double **wav_lm, double **scal_lm, const s2let_parameters_t *parameters); 24 | void s2let_transform_axisym_lm_wav(double *wav_lm, double *scal_lm, const s2let_parameters_t *parameters); 25 | 26 | void s2let_transform_axisym_lm_wav_analysis( 27 | complex double *f_wav_lm, 28 | complex double *f_scal_lm, 29 | const complex double *flm, 30 | const double *wav_lm, 31 | const double *scal_lm, 32 | const s2let_parameters_t *parameters 33 | ); 34 | void s2let_transform_axisym_lm_wav_synthesis( 35 | complex double *flm, 36 | const complex double *f_wav_lm, 37 | const complex double *f_scal_lm, 38 | const double *wav_lm, 39 | const double *scal_lm, 40 | const s2let_parameters_t *parameters 41 | ); 42 | 43 | void s2let_transform_axisym_lm_wav_analysis_multires( 44 | complex double *f_wav_lm, 45 | complex double *f_scal_lm, 46 | const complex double *flm, 47 | const double *wav_lm, 48 | const double *scal_lm, 49 | const s2let_parameters_t *parameters 50 | ); 51 | void s2let_transform_axisym_lm_wav_synthesis_multires( 52 | complex double *flm, 53 | const complex double *f_wav_lm, 54 | const complex double *f_scal_lm, 55 | const double *wav_lm, 56 | const double *scal_lm, 57 | const s2let_parameters_t *parameters 58 | ); 59 | 60 | #endif 61 | -------------------------------------------------------------------------------- /lib/.gitignore: -------------------------------------------------------------------------------- 1 | libs2let.a 2 | -------------------------------------------------------------------------------- /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 | 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 | 20 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [install] 2 | prefix=./ -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | 2 | import sys 3 | import os 4 | import shutil 5 | 6 | from distutils.core import setup, Extension 7 | from Cython.Distutils import build_ext 8 | from Cython.Build import cythonize 9 | 10 | import numpy 11 | 12 | # clean previous build 13 | for root, dirs, files in os.walk("./src/main/python/", topdown=False): 14 | for name in dirs: 15 | if (name == "build"): 16 | shutil.rmtree(name) 17 | 18 | 19 | include_dirs = [ 20 | numpy.get_include(), 21 | "./include", 22 | os.environ['SSHT']+"/include/c", 23 | os.environ['SO3']+"/include/c" 24 | ] 25 | 26 | extra_link_args=[ 27 | "-L./lib", 28 | "-L"+os.environ['FFTW']+"/lib", 29 | "-L"+os.environ['SSHT']+"/lib/c", 30 | "-L"+os.environ['SO3']+"/lib/c" 31 | ] 32 | 33 | setup( 34 | name = "pys2let", 35 | version = "2.0", 36 | prefix='.', 37 | cmdclass={'build_ext': build_ext}, 38 | ext_modules=cythonize([Extension( 39 | "src/main/python/pys2let", 40 | package_dir=['src'], 41 | sources=["src/main/python/pys2let.pyx"], 42 | include_dirs=include_dirs, 43 | libraries=["s2let", "so3", "ssht", "fftw3"], 44 | extra_link_args=extra_link_args, 45 | extra_compile_args=[] 46 | )]) 47 | ) 48 | 49 | 50 | -------------------------------------------------------------------------------- /src/main/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 | 16 | int main(int argc, char *argv[]) { 17 | 18 | printf("%s\n", "=========================================================="); 19 | printf("%s\n", " S2LET package"); 20 | printf("%s\n", " Fast Wavelets on the Sphere"); 21 | printf("%s\n", " By Boris Leistedt & Jason McEwen"); 22 | 23 | printf("%s\n", " See LICENSE.txt for license details."); 24 | 25 | printf("%s%s\n", " Version: ", S2LET_VERSION); 26 | printf("%s%s\n", " Build: ", S2LET_BUILD); 27 | printf("%s\n", "=========================================================="); 28 | 29 | return 0; 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/c/s2let_hpx.c: -------------------------------------------------------------------------------- 1 | // S2LET package 2 | // Copyright (C) 2012 3 | // Boris Leistedt & Jason McEwen 4 | 5 | #include "s2let.h" 6 | #include 7 | #include 8 | 9 | // Fortran interfaces to Healpix F90 library ; see s2let_hpx.f90 10 | extern void healpix_inverse_real_(); 11 | extern void healpix_forward_real_(); 12 | extern void healpix_inverse_spin_real_(); 13 | extern void healpix_forward_spin_real_(); 14 | extern void write_healpix_map_(); 15 | extern void read_healpix_map_(); 16 | extern void read_healpix_maps_(); 17 | extern void healpix_forward_real_(); 18 | 19 | void s2let_hpx_alm2map_real(double* f, const complex double* flm, int nside, int L) 20 | { 21 | healpix_inverse_real_(f, flm, &nside, &L); 22 | } 23 | 24 | void s2let_hpx_map2alm_real(complex double* flm, const double* f, int nside, int L) 25 | { 26 | healpix_forward_real_(flm, f, &nside, &L); 27 | } 28 | 29 | void s2let_hpx_alm2map_spin_real(double* fQ, double* fU, const complex double* flmE, const complex double* flmB, int nside, int L, int spin) 30 | { 31 | healpix_inverse_spin_real_(fQ, fU, flmE, flmB, &nside, &L, &spin); 32 | } 33 | 34 | void s2let_hpx_map2alm_spin_real(complex double* flmE, complex double* flmB, const double* fQ, const double* fU, int nside, int L, int spin) 35 | { 36 | healpix_forward_spin_real_(flmE, flmB, fQ, fU, &nside, &L, &spin); 37 | } 38 | 39 | void s2let_hpx_read_maps(double* f, char* file, int nside, int nmaps) 40 | { 41 | read_healpix_maps_(f, file, &nside, &nmaps); 42 | } 43 | 44 | void s2let_hpx_read_map(double* f, char* file, int nside) 45 | { 46 | read_healpix_map_(f, file, &nside); 47 | } 48 | 49 | void s2let_hpx_write_map(char* file, const double* f, int nside) 50 | { 51 | write_healpix_map_(file, f, &nside); 52 | } 53 | 54 | void s2let_hpx_allocate_real(double **f, int nside) 55 | { 56 | *f = calloc(12*nside*nside, sizeof **f); 57 | } 58 | -------------------------------------------------------------------------------- /src/main/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/main/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/main/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/main/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/main/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/main/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/main/idl/s2let_hpx_demo.pro: -------------------------------------------------------------------------------- 1 | pro s2let_hpx_demo, B=B, L=L, J_min=J_min, wavtype=wavtype 2 | ;+ 3 | ; S2LET package - Copyright (C) 2012 4 | ; Boris Leistedt & Jason McEwen 5 | ; 6 | ; NAME: 7 | ; s2let_hpx_demo 8 | ; 9 | ; PURPOSE: 10 | ; Demo : test all HPX spherical harmonics and wavelet transforms 11 | ; (not exact due to healpix) for a simulated CMB map and plot the wavelet maps 12 | ; 13 | ; OPTIONAL KEYWORDS: 14 | ; L - The bandlimit for the spherical harmonic transforms 15 | ; B - The wavelet parameter for the test 16 | ; J_min - The first wavelet scale to be used for the transform 17 | ; wavtype - Wavelet type (1: scale-discretised, 2:needlets, 3: cubic splines) 18 | ; DEFAULT VALUES: L=192, B=7, J_min=2, wavtype=1 19 | ; 20 | ;---------------------------------------------------------------------- 21 | 22 | if not keyword_set(B) then B = 7 23 | if not keyword_set(L) then L = 192 24 | if not keyword_set(J_min) then J_min = 2 25 | if not keyword_set(wavtype) then wavtype = 1 26 | 27 | if s2let_dylib_exists() eq 1 then begin 28 | 29 | loc = GETENV('S2LET') 30 | file = loc + '/data/somecmbsimu_hpx_128.fits' 31 | read_fits_map, file, f 32 | 33 | f_wav = s2let_axisym_hpx_wav_analysis(f, B, L, J_min, wavtype=wavtype) 34 | f_rec = s2let_axisym_hpx_wav_synthesis(f_wav) 35 | 36 | J_max = s2let_j_max(L, B) 37 | mollview, f_rec, title='Band-limited map' 38 | mollview, f_wav.scal, title='Scaling map' 39 | for j=0, J_max-J_min do begin 40 | mollview, f_wav.(j), title='Wavelet map '+strtrim(j+1,2)+' on '+strtrim(J_max-J_min+1,2) 41 | endfor 42 | 43 | endif 44 | 45 | end 46 | -------------------------------------------------------------------------------- /src/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/matlab/EGM2008_Topography_flms_L0128.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/src/main/matlab/EGM2008_Topography_flms_L0128.mat -------------------------------------------------------------------------------- /src/main/matlab/kappas_need.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/src/main/matlab/kappas_need.mat -------------------------------------------------------------------------------- /src/main/matlab/kappas_s2dw.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/src/main/matlab/kappas_s2dw.mat -------------------------------------------------------------------------------- /src/main/matlab/kappas_spline.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/src/main/matlab/kappas_spline.mat -------------------------------------------------------------------------------- /src/main/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/main/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/main/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/main/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/main/matlab/s2let_demo2.m: -------------------------------------------------------------------------------- 1 | % s2let_demo2 2 | % Compute and plot the harmonic tiling and the wavelet kernels. 3 | % 4 | % S2LET package to perform Wavelets on the Sphere. 5 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 6 | % See LICENSE.txt for license details 7 | 8 | B = 3; 9 | zoomfactor = 1.4; 10 | J_min = 2; 11 | L = 128; 12 | J = s2let_jmax(L, B); 13 | type = 'colour'; 14 | lighting = true; 15 | 16 | ns = ceil(sqrt(2+J-J_min+1)) ; 17 | nx = ns - 1 + rem(2+J-J_min + 1, ns) ; 18 | ny = ns; 19 | 20 | [kappa kappa0] = s2let_transform_axisym_tiling(B, L, J_min); 21 | 22 | s2let_plot_axisym_tiling(B, L, J_min); 23 | 24 | figure('Position',[100 100 1100 700]) 25 | 26 | h=subplot(nx, ny, 1); 27 | flm = zeros(L^2,1); 28 | for l = 0:L-1 29 | flm(l^2+l+1,1) = kappa0(l+1); 30 | end 31 | f = ssht_inverse(flm, L, 'Reality', true); 32 | ssht_plot_sphere(f, L, 'Type', type, 'Lighting', lighting); 33 | zoom(zoomfactor) 34 | v = caxis; 35 | temp = max(abs(v)); 36 | caxis([-temp temp]) 37 | %title('k0') 38 | locate = get(h,'title'); 39 | pos = get(locate,'position'); 40 | pos(1,2) = pos(1,2)+0.7; 41 | pos(1,1) = pos(1,1)-0.7; 42 | set(locate,'pos',pos); 43 | 44 | for j = J_min:5 45 | h=subplot(nx, ny, j-J_min+2); 46 | flm = zeros(L^2,1); 47 | for l = 0:L-1 48 | flm(l^2+l+1,1) = kappa(j+1,l+1); 49 | end 50 | f = ssht_inverse(flm, L, 'Reality', true); 51 | ssht_plot_sphere(f, L, 'Type', type, 'Lighting', lighting); 52 | v = caxis; 53 | temp = max(abs(v)); 54 | caxis([-temp temp]) 55 | colormap(jet) 56 | %title(['j',int2str(j)-J_min+1]) 57 | locate = get(h,'title'); 58 | pos = get(locate,'position'); 59 | pos(1,2) = pos(1,2)+0.7; 60 | pos(1,1) = pos(1,1)-0.7; 61 | set(locate,'pos',pos); 62 | zoom(zoomfactor) 63 | end 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /src/main/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/main/matlab/s2let_demo_ridgelet_plot.m: -------------------------------------------------------------------------------- 1 | 2 | % s2let_demo_ridgelet_plot 3 | % Compute and plot the ridgelet wavelet and scaling functions. 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 | % close all; 10 | 11 | L = 256 12 | B = 2; 13 | J_min = 3; 14 | J = s2let_jmax(L, B); 15 | sampling_method = 'MWSS'; 16 | % sphere_plot_type = 'parametric'; 17 | sphere_plot_type = 'colour'; 18 | sphere_plot_lighting = true; 19 | sphere_plot_scale = 1; 20 | save_plots = false; 21 | spin = 2 22 | reality = false 23 | 24 | % plot_component = @(x) (x); 25 | plot_component = @(x) real(x); 26 | % plot_component = @(x) imag(x); 27 | % plot_component = @(x) abs(x); 28 | 29 | [ridgelet_wav, ridgelet_scal] = s2let_ridgelet_compute_wav(L, ... 30 | 'B', B, 'J_min', J_min, ... 31 | 'Spin', spin, 'Reality', reality, 'Sampling', sampling_method); 32 | 33 | figure 34 | ssht_plot_sphere(plot_component(ridgelet_scal), L, ... 35 | 'Lighting', sphere_plot_lighting, ... 36 | 'Type', sphere_plot_type, 'ParametricScale', sphere_plot_scale, ... 37 | 'Method', sampling_method, ... 38 | 'ColourBar', true); 39 | c = caxis; 40 | caxis([-1 1].*max(abs(c))); 41 | view(-37.5,10) 42 | if save_plots, print('-r300', '-dpng', 'ridgelet_scal_Jmin03.png'); end 43 | 44 | for j = J_min:J 45 | 46 | figure 47 | ssht_plot_sphere(plot_component(ridgelet_wav{j-J_min+1}), L, ... 48 | 'Lighting', sphere_plot_lighting, ... 49 | 'Type', sphere_plot_type, 'ParametricScale', sphere_plot_scale, ... 50 | 'ParametricMin', true, ... 51 | 'Method', sampling_method, ... 52 | 'ColourBar', true); 53 | c = caxis; 54 | caxis([-1 1].*max(abs(c))); 55 | view(-37.5,10) 56 | 57 | plot_filename = sprintf('plots/ridgelet_wav_j%2.2d.png', j); 58 | if save_plots, print('-r300', '-dpng', plot_filename); end 59 | 60 | end 61 | 62 | -------------------------------------------------------------------------------- /src/main/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/main/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/main/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/main/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/main/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/main/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/main/matlab/s2let_hpx_plot_mollweide.m: -------------------------------------------------------------------------------- 1 | function s2let_hpx_plot_mollweide(f) 2 | 3 | % s2let_hpx_plot_mollweide 4 | % Plot a real Healpix map using Mollweide projection. 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 | sz = size(f); 11 | nside = sqrt(max(sz)/12); 12 | 13 | [thetas, phis] = s2let_hpx_sampling_ring(nside); 14 | 15 | [x, y] = ssht_mollweide(thetas, phis); 16 | 17 | gridDelaunay = delaunay(x,y); 18 | h = trisurf(gridDelaunay,x,y,f*0.0,f); 19 | 20 | set(h, 'LineStyle', 'none') 21 | axis equal 22 | axis off 23 | campos([0 0 1]) 24 | camup([0 1 0]) 25 | 26 | 27 | function [x, y] = ssht_mollweide(thetas, phis) 28 | % ssht_mollweide - Compute Mollweide projection 29 | % 30 | % Compute Mollweide projection of spherical coordinates. 31 | % 32 | % Usage is given by 33 | % 34 | % [x,y] = ssht_mollweide(thetas, phis) 35 | % 36 | % where thetas and phis are spherical coordinates and x and y are the 37 | % projected Mollweide coordinates. 38 | % 39 | % Author: Jason McEwen (www.jasonmcewen.org) 40 | 41 | MAX_ITERATIONS = 1e5; 42 | TOL = 1e-10; 43 | 44 | % Convert theta to longitude. 45 | thetas = pi/2 - thetas; 46 | phis = phis - pi; 47 | 48 | t = thetas; 49 | for it = 1:MAX_ITERATIONS 50 | 51 | dt = (t + sin(t) - pi.*sin(thetas)) ./ (1 + cos(t)); 52 | t = t - dt; 53 | 54 | if(max(abs(dt)) < TOL) 55 | break; 56 | end 57 | 58 | end 59 | t = t/2; 60 | x = 2 .* sqrt(2) ./ pi .* phis .* cos(t); 61 | y = sqrt(2) .* sin(t); 62 | -------------------------------------------------------------------------------- /src/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/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/main/matlab/s2let_transform_axisym_analysis_hpx.m: -------------------------------------------------------------------------------- 1 | function [f_wav, f_scal] = s2let_transform_axisym_analysis_hpx(f, varargin) 2 | 3 | % s2let_transform_axisym_analysis_hpx 4 | % Compute axisymmetric wavelet transform, output as HEALPIX maps. 5 | % 6 | % Default usage : 7 | % 8 | % [f_wav, f_scal] = s2let_transform_axisym_analysis_hpx(f, ) 9 | % 10 | % f is the input field -- HEALPIX sampling, 11 | % f_wav contains the output wavelet contributions, 12 | % f_scal contains the output scaling contributions, 13 | % 14 | % Option : 15 | % 'nside' = { HEALPIX resolution; (default=guessed)} 16 | % 'B' = { Dilation factor; B > 1 (default=2) } 17 | % 'L' = { Harmonic band-limit; L > 1 (default=2*nside) } 18 | % 'J_min' = { Minimum wavelet scale to consider; 19 | % 0 <= J_min < log_B(L) (default=0) } 20 | % 21 | % S2LET package to perform Wavelets transform on the Sphere. 22 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 23 | % See LICENSE.txt for license details 24 | 25 | sz = size(f); 26 | nsideguessed = sqrt(max(sz)/12); 27 | Lguessed = 2*nsideguessed; 28 | 29 | p = inputParser; 30 | p.addRequired('f', @isnumeric); 31 | p.addParamValue('nside', nsideguessed, @isnumeric); 32 | p.addParamValue('B', 2, @isnumeric); 33 | p.addParamValue('L', Lguessed, @isnumeric); 34 | p.addParamValue('J_min', 0, @isnumeric); 35 | p.parse(f, varargin{:}); 36 | args = p.Results; 37 | 38 | [f_wav_vec, f_scal] = s2let_transform_axisym_analysis_hpx_mex(f, args.nside, args.B, args.L, args.J_min); 39 | 40 | J = s2let_jmax(args.L, args.B); 41 | npix = 12*args.nside*args.nside; 42 | f_wav = cell(J+1-args.J_min, 1); 43 | offset = 1; 44 | for j = args.J_min:J 45 | f_wav{j+1-args.J_min} = f_wav_vec(offset:offset+npix-1); 46 | offset = offset + npix; 47 | end 48 | -------------------------------------------------------------------------------- /src/main/matlab/s2let_transform_axisym_synthesis_hpx.m: -------------------------------------------------------------------------------- 1 | function f = s2let_transform_axisym_synthesis_hpx(f_wav, f_scal, varargin) 2 | 3 | % s2let_axisym_synthesis 4 | % Compute axisymmetric wavelet transform, input/outputs as HEALPIX maps. 5 | % 6 | % Default usage : 7 | % 8 | % f = s2let_transform_axisym_synthesis_hpx(f_wav, f_scal, ) 9 | % 10 | % f_wav contains the input wavelet contributions -- HEALPIX sampling, 11 | % f_scal contains the input scaling contributions -- HEALPIX sampling, 12 | % f is the output field -- HEALPIX sampling, 13 | % 14 | % Option : 15 | % 'nside' = { HEALPIX resolution; (default=guessed)} 16 | % 'B' = { Dilation factor; B > 1 (default=2) } 17 | % 'L' = { Harmonic band-limit; L > 1 (default=2*nside) } 18 | % 'J_min' = { Minimum wavelet scale to consider; 19 | % 0 <= J_min < log_B(L) (default=0) } 20 | % 21 | % S2LET package to perform Wavelets transform on the Sphere. 22 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 23 | % See LICENSE.txt for license details 24 | 25 | 26 | len = size(f_wav); 27 | temp = f_wav{len}; 28 | sz = size(temp); 29 | nsideguessed = sqrt(max(sz)/12); 30 | Lguessed = 2*nsideguessed; 31 | 32 | p = inputParser; 33 | p.addRequired('f_wav'); 34 | p.addRequired('f_scal', @isnumeric); 35 | p.addParamValue('nside', nsideguessed, @isnumeric); 36 | p.addParamValue('B', 2, @isnumeric); 37 | p.addParamValue('L', 2*nsideguessed, @isnumeric); 38 | p.addParamValue('J_min', 0, @isnumeric); 39 | p.parse(f_wav, f_scal, varargin{:}); 40 | args = p.Results; 41 | 42 | 43 | J = s2let_jmax(args.L, args.B); 44 | f_wav_vec = []; 45 | for j = args.J_min:J 46 | temp = f_wav{j+1-args.J_min}; 47 | f_wav_vec = [f_wav_vec temp]; 48 | end 49 | 50 | f = s2let_transform_axisym_synthesis_hpx_mex(f_wav_vec, f_scal, args.nside, args.B, args.L, args.J_min); 51 | 52 | end 53 | -------------------------------------------------------------------------------- /src/main/matlab/s2let_transform_axisym_tiling.m: -------------------------------------------------------------------------------- 1 | function [kappa kappa0] = s2let_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/main/matlab/s2let_transform_curvelet_synthesis_lmn2lm.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astro-informatics/s2let-archive/8170280a521f227c8dbb864be117c2b14812fcfc/src/main/matlab/s2let_transform_curvelet_synthesis_lmn2lm.m -------------------------------------------------------------------------------- /src/main/matlab/s2let_wavelet_tiling.m: -------------------------------------------------------------------------------- 1 | function [psi_lm phi_l] = s2let_wavelet_tiling(B, L, N, Spin, J_min, varargin) 2 | 3 | % s2let_wavelet_tiling - Compute tiling in harmonic space. 4 | % -- Spin directional wavelets on the sphere. 5 | % 6 | % Default usage : 7 | % 8 | % [psi_lm phi_l] = s2let_wavelet_tiling(B, L, N, Spin, J_min, ) 9 | % 10 | % psi_lm is an array containing the wavelet spherical harmonic coefficients. 11 | % phi_l is an array containing the scaling function spherical harmonic coefficients (l only). 12 | % B is the wavelet parameter, 13 | % L is the angular band-limit, 14 | % N is the azimuthal/directional band-limit, 15 | % Spin is the spin number, 16 | % J_min the first wavelet to be used. 17 | % 18 | % Options consist of parameter type and value pairs. 19 | % Valid options include: 20 | % 'OriginalSpin' = [integer; if the SpinLowered option is used, this 21 | % option indicates which spin number the wavelets 22 | % should be lowered from (default = 0)] 23 | % 24 | % S2LET package to perform Wavelets transform on the Sphere. 25 | % Copyright (C) 2012-2015 Boris Leistedt & Jason McEwen 26 | % See LICENSE.txt for license details 27 | 28 | p = inputParser; 29 | p.addRequired('B', @isnumeric); 30 | p.addRequired('L', @isnumeric); 31 | p.addRequired('N', @isnumeric); 32 | p.addRequired('Spin', @isnumeric); 33 | p.addRequired('J_min', @isnumeric); 34 | p.addParamValue('OriginalSpin', 0, @isnumeric); 35 | p.parse(B, L, N, Spin, J_min, varargin{:}); 36 | args = p.Results; 37 | 38 | [psi_lm phi_l] = s2let_wavelet_tiling_mex(B, L, N, Spin, J_min, args.OriginalSpin); 39 | 40 | end 41 | -------------------------------------------------------------------------------- /src/main/python/pys2let_test_axisym_hpx.py: -------------------------------------------------------------------------------- 1 | 2 | import healpy as hp 3 | from pys2let import * 4 | import math 5 | import matplotlib.pyplot as plt 6 | 7 | nside = 128 8 | L = 128 9 | J_min = 1 10 | B = 3 11 | J = pys2let_j_max(B, L, J_min) 12 | 13 | # The filename of some random healpix map 14 | fname = '/Users/bl/Dropbox/Wavelets/s2let/data/somecmbsimu_hpx_128.fits' 15 | 16 | # Read healpix map and compute alms. 17 | # f_lm has size L*(L+1)/2 18 | f_ini = hp.read_map(fname) # Initial map 19 | f_lm = hp.map2alm(f_ini, lmax=L-1) # Its alms 20 | f = hp.alm2map(f_lm, nside=nside, lmax=L-1) # Band limited version 21 | 22 | hp.mollview(f) 23 | 24 | # Call pys2let and compute wavelet transform. Returns the harmonic coefficients of the wavelets. 25 | # f_scal_lm has size L*(L+1)/2 26 | # f_wav_lm has size L*(L+1)/2 by J-J_min+1 27 | f_wav_lm, f_scal_lm = analysis_axisym_lm_wav(f_lm, B, L, J_min) 28 | 29 | # Reconstruct healpix maps on the sphere and plot them 30 | f_scal = hp.alm2map(f_scal_lm, nside=nside, lmax=L-1) 31 | hp.mollview(f_scal) 32 | f_wav = np.empty([12*nside*nside, J-J_min+1]) 33 | for j in range(J-J_min+1): 34 | flm = f_wav_lm[:,j].ravel() 35 | f_wav[:,j] = hp.alm2map(flm, nside=nside, lmax=L-1) 36 | hp.mollview(f_wav[:,j]) 37 | 38 | # Uses synthesis to reconstruct the input map. 39 | f_lm_rec = synthesis_axisym_lm_wav(f_wav_lm, f_scal_lm, B, L, J_min) 40 | f_rec = hp.alm2map(f_lm_rec, nside=nside, lmax=L-1) 41 | hp.mollview(f_rec) 42 | 43 | plt.show() -------------------------------------------------------------------------------- /src/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 | --------------------------------------------------------------------------------