My Project
ssht_core.h
Go to the documentation of this file.
1 // SSHT package to perform spin spherical harmonic transforms
2 // Copyright (C) 2011 Jason McEwen
3 // See LICENSE.txt for license details
4 
5 
6 #ifndef SSHT_CORE
7 #define SSHT_CORE
8 
9 #include <complex.h>
10 
11 
12 #ifdef __cplusplus
13 extern "C"{
14 #endif
15 
16 void ssht_core_mw_inverse_sov_sym(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm,
17  int L, int spin,
18  ssht_dl_method_t dl_method,
19  int verbosity);
20 void ssht_core_mw_lb_inverse_sov_sym(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm,
21  int L0, int L, int spin,
22  ssht_dl_method_t dl_method,
23  int verbosity);
24 void ssht_core_mw_inverse_sov_sym_real(double *f, const SSHT_COMPLEX(double) *flm,
25  int L,
26  ssht_dl_method_t dl_method,
27  int verbosity);
28 void ssht_core_mw_lb_inverse_sov_sym_real(double *f, const SSHT_COMPLEX(double) *flm,
29  int L0, int L,
30  ssht_dl_method_t dl_method,
31  int verbosity);
32 void ssht_core_mw_forward_sov_conv_sym(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f,
33  int L, int spin,
34  ssht_dl_method_t dl_method,
35  int verbosity);
36 void ssht_core_mw_lb_forward_sov_conv_sym(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f,
37  int L0, int L, int spin,
38  ssht_dl_method_t dl_method,
39  int verbosity);
40 void ssht_core_mw_forward_sov_conv_sym_real(SSHT_COMPLEX(double) *flm, const double *f,
41  int L,
42  ssht_dl_method_t dl_method,
43  int verbosity);
44 void ssht_core_mw_lb_forward_sov_conv_sym_real(SSHT_COMPLEX(double) *flm, const double *f,
45  int L0, int L,
46  ssht_dl_method_t dl_method,
47  int verbosity);
49  SSHT_COMPLEX(double) *f_sp, double *phi_sp,
50  const SSHT_COMPLEX(double) *flm,
51  int L, int spin,
52  ssht_dl_method_t dl_method,
53  int verbosity);
55  double *f_sp,
56  const SSHT_COMPLEX(double) *flm,
57  int L,
58  ssht_dl_method_t dl_method,
59  int verbosity);
60 void ssht_core_mw_forward_sov_conv_sym_pole(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f,
61  SSHT_COMPLEX(double) f_sp, double phi_sp,
62  int L, int spin,
63  ssht_dl_method_t dl_method,
64  int verbosity);
66  const double *f,
67  double f_sp,
68  int L,
69  ssht_dl_method_t dl_method,
70  int verbosity);
71 // Note that mw direct algoritms are for testing purposes only.
72 void ssht_core_mwdirect_inverse(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm,
73  int L, int spin, int verbosity);
74 void ssht_core_mwdirect_inverse_sov(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm,
75  int L, int spin, int verbosity);
76 
77 
78 void ssht_core_mw_inverse_sov_sym_ss(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm,
79  int L, int spin,
80  ssht_dl_method_t dl_method,
81  int verbosity);
82 void ssht_core_mw_lb_inverse_sov_sym_ss(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm,
83  int L0, int L, int spin,
84  ssht_dl_method_t dl_method,
85  int verbosity);
86 void ssht_core_mw_inverse_sov_sym_ss_real(double *f, const SSHT_COMPLEX(double) *flm,
87  int L,
88  ssht_dl_method_t dl_method,
89  int verbosity);
90 void ssht_core_mw_lb_inverse_sov_sym_ss_real(double *f, const SSHT_COMPLEX(double) *flm,
91  int L0, int L,
92  ssht_dl_method_t dl_method,
93  int verbosity);
94 void ssht_core_mw_forward_sov_conv_sym_ss(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f,
95  int L, int spin,
96  ssht_dl_method_t dl_method,
97  int verbosity);
98 void ssht_core_mw_lb_forward_sov_conv_sym_ss(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f,
99  int L0, int L, int spin,
100  ssht_dl_method_t dl_method,
101  int verbosity);
102 void ssht_core_mw_forward_sov_conv_sym_ss_real(SSHT_COMPLEX(double) *flm, const double *f,
103  int L,
104  ssht_dl_method_t dl_method,
105  int verbosity);
106 void ssht_core_mw_lb_forward_sov_conv_sym_ss_real(SSHT_COMPLEX(double) *flm, const double *f,
107  int L0, int L,
108  ssht_dl_method_t dl_method,
109  int verbosity);
111  SSHT_COMPLEX(double) *f_np, double *phi_np,
112  SSHT_COMPLEX(double) *f_sp, double *phi_sp,
113  const SSHT_COMPLEX(double) *flm,
114  int L, int spin,
115  ssht_dl_method_t dl_method,
116  int verbosity);
118  double *f_np,
119  double *f_sp,
120  const SSHT_COMPLEX(double) *flm,
121  int L,
122  ssht_dl_method_t dl_method,
123  int verbosity);
124 void ssht_core_mw_forward_sov_conv_sym_ss_pole(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f,
125  SSHT_COMPLEX(double) f_np, double phi_np,
126  SSHT_COMPLEX(double) f_sp, double phi_sp,
127  int L, int spin,
128  ssht_dl_method_t dl_method,
129  int verbosity);
131  const double *f,
132  double f_np,
133  double f_sp,
134  int L,
135  ssht_dl_method_t dl_method,
136  int verbosity);
137 // Note that mw direct algoritms are for testing purposes only.
138 void ssht_core_mwdirect_inverse_ss(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm,
139  int L, int spin, int verbosity);
140 
141 
142 void ssht_core_gl_inverse_sov(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm,
143  int L, int spin, int verbosity);
144 void ssht_core_gl_inverse_sov_real(double *f, const SSHT_COMPLEX(double) *flm,
145  int L, int verbosity);
146 void ssht_core_gl_forward_sov(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f,
147  int L, int spin, int verbosity);
148 void ssht_core_gl_forward_sov_real(SSHT_COMPLEX(double) *flm, const double *f,
149  int L, int verbosity);
150 
151 
152 void ssht_core_dh_inverse_sov(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm,
153  int L, int spin, int verbosity);
154 void ssht_core_dh_inverse_sov_real(double *f, const SSHT_COMPLEX(double) *flm,
155  int L, int verbosity);
156 void ssht_core_dh_forward_sov(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f,
157  int L, int spin, int verbosity);
158 void ssht_core_dh_forward_sov_real(SSHT_COMPLEX(double) *flm, const double *f,
159  int L, int verbosity);
160 
161 #ifdef __cplusplus
162 }
163 #endif
164 
165 #endif
ssht_core_mw_lb_inverse_sov_sym
void ssht_core_mw_lb_inverse_sov_sym(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm, int L0, int L, int spin, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:77
ssht_core_dh_forward_sov
void ssht_core_dh_forward_sov(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f, int L, int spin, int verbosity)
Definition: ssht_core.c:4236
ssht_core_mw_forward_sov_conv_sym_ss_real
void ssht_core_mw_forward_sov_conv_sym_ss_real(SSHT_COMPLEX(double) *flm, const double *f, int L, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:2820
ssht_core_dh_inverse_sov
void ssht_core_dh_inverse_sov(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm, int L, int spin, int verbosity)
Definition: ssht_core.c:3996
ssht_core_mw_inverse_sov_sym_real_pole
void ssht_core_mw_inverse_sov_sym_real_pole(double *f, double *f_sp, const SSHT_COMPLEX(double) *flm, int L, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:1654
ssht_core_mw_lb_forward_sov_conv_sym_real
void ssht_core_mw_lb_forward_sov_conv_sym_real(SSHT_COMPLEX(double) *flm, const double *f, int L0, int L, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:1230
ssht_core_gl_forward_sov_real
void ssht_core_gl_forward_sov_real(SSHT_COMPLEX(double) *flm, const double *f, int L, int verbosity)
Definition: ssht_core.c:3832
ssht_core_mw_lb_forward_sov_conv_sym_ss
void ssht_core_mw_lb_forward_sov_conv_sym_ss(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f, int L0, int L, int spin, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:2452
ssht_core_dh_forward_sov_real
void ssht_core_dh_forward_sov_real(SSHT_COMPLEX(double) *flm, const double *f, int L, int verbosity)
Definition: ssht_core.c:4373
ssht_core_mw_lb_inverse_sov_sym_real
void ssht_core_mw_lb_inverse_sov_sym_real(double *f, const SSHT_COMPLEX(double) *flm, int L0, int L, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:348
ssht_core_dh_inverse_sov_real
void ssht_core_dh_inverse_sov_real(double *f, const SSHT_COMPLEX(double) *flm, int L, int verbosity)
Definition: ssht_core.c:4115
ssht_core_mw_inverse_sov_sym_ss_pole
void ssht_core_mw_inverse_sov_sym_ss_pole(SSHT_COMPLEX(double) *f, SSHT_COMPLEX(double) *f_np, double *phi_np, SSHT_COMPLEX(double) *f_sp, double *phi_sp, const SSHT_COMPLEX(double) *flm, int L, int spin, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:3209
ssht_core_mw_forward_sov_conv_sym
void ssht_core_mw_forward_sov_conv_sym(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f, int L, int spin, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:810
ssht_core_mw_forward_sov_conv_sym_pole
void ssht_core_mw_forward_sov_conv_sym_pole(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f, SSHT_COMPLEX(double) f_sp, double phi_sp, int L, int spin, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:1702
ssht_core_mw_inverse_sov_sym
void ssht_core_mw_inverse_sov_sym(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm, int L, int spin, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:51
ssht_core_mw_inverse_sov_sym_real
void ssht_core_mw_inverse_sov_sym_real(double *f, const SSHT_COMPLEX(double) *flm, int L, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:322
ssht_core_mw_lb_forward_sov_conv_sym
void ssht_core_mw_lb_forward_sov_conv_sym(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f, int L0, int L, int spin, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:837
ssht_core_mw_lb_inverse_sov_sym_ss
void ssht_core_mw_lb_inverse_sov_sym_ss(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm, int L0, int L, int spin, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:1824
ssht_core_mwdirect_inverse_ss
void ssht_core_mwdirect_inverse_ss(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm, int L, int spin, int verbosity)
Definition: ssht_core.c:2326
ssht_core_mw_inverse_sov_sym_pole
void ssht_core_mw_inverse_sov_sym_pole(SSHT_COMPLEX(double) *f, SSHT_COMPLEX(double) *f_sp, double *phi_sp, const SSHT_COMPLEX(double) *flm, int L, int spin, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:1608
ssht_core_mwdirect_inverse_sov
void ssht_core_mwdirect_inverse_sov(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm, int L, int spin, int verbosity)
Definition: ssht_core.c:689
ssht_core_mw_inverse_sov_sym_ss_real
void ssht_core_mw_inverse_sov_sym_ss_real(double *f, const SSHT_COMPLEX(double) *flm, int L, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:2068
ssht_core_mwdirect_inverse
void ssht_core_mwdirect_inverse(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm, int L, int spin, int verbosity)
Definition: ssht_core.c:590
ssht_core_mw_lb_forward_sov_conv_sym_ss_real
void ssht_core_mw_lb_forward_sov_conv_sym_ss_real(SSHT_COMPLEX(double) *flm, const double *f, int L0, int L, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:2847
ssht_core_mw_lb_inverse_sov_sym_ss_real
void ssht_core_mw_lb_inverse_sov_sym_ss_real(double *f, const SSHT_COMPLEX(double) *flm, int L0, int L, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:2095
ssht_core_mw_forward_sov_conv_sym_real_pole
void ssht_core_mw_forward_sov_conv_sym_real_pole(SSHT_COMPLEX(double) *flm, const double *f, double f_sp, int L, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:1750
ssht_core_mw_inverse_sov_sym_ss
void ssht_core_mw_inverse_sov_sym_ss(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm, int L, int spin, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:1798
ssht_core_gl_inverse_sov_real
void ssht_core_gl_inverse_sov_real(double *f, const SSHT_COMPLEX(double) *flm, int L, int verbosity)
Definition: ssht_core.c:3552
SSHT_COMPLEX
#define SSHT_COMPLEX(TYPE)
Definition: ssht_types.h:52
ssht_core_gl_forward_sov
void ssht_core_gl_forward_sov(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f, int L, int spin, int verbosity)
Definition: ssht_core.c:3685
ssht_core_mw_forward_sov_conv_sym_ss_pole
void ssht_core_mw_forward_sov_conv_sym_ss_pole(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f, SSHT_COMPLEX(double) f_np, double phi_np, SSHT_COMPLEX(double) f_sp, double phi_sp, int L, int spin, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:3316
ssht_core_gl_inverse_sov
void ssht_core_gl_inverse_sov(SSHT_COMPLEX(double) *f, const SSHT_COMPLEX(double) *flm, int L, int spin, int verbosity)
Definition: ssht_core.c:3421
ssht_core_mw_forward_sov_conv_sym_real
void ssht_core_mw_forward_sov_conv_sym_real(SSHT_COMPLEX(double) *flm, const double *f, int L, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:1203
ssht_dl_method_t
ssht_dl_method_t
Definition: ssht_dl.h:21
ssht_core_mw_inverse_sov_sym_ss_real_pole
void ssht_core_mw_inverse_sov_sym_ss_real_pole(double *f, double *f_np, double *f_sp, const SSHT_COMPLEX(double) *flm, int L, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:3261
ssht_core_mw_forward_sov_conv_sym_ss_real_pole
void ssht_core_mw_forward_sov_conv_sym_ss_real_pole(SSHT_COMPLEX(double) *flm, const double *f, double f_np, double f_sp, int L, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:3369
ssht_core_mw_forward_sov_conv_sym_ss
void ssht_core_mw_forward_sov_conv_sym_ss(SSHT_COMPLEX(double) *flm, const SSHT_COMPLEX(double) *f, int L, int spin, ssht_dl_method_t dl_method, int verbosity)
Definition: ssht_core.c:2425