|
LevelS SHT library
3.50
|
Enumerations | |
| enum | sharp_jobtype { SHARP_YtW =0, SHARP_MAP2ALM =SHARP_YtW, SHARP_Y =1, SHARP_ALM2MAP =SHARP_Y, SHARP_Yt =2, SHARP_WY =3, SHARP_ALM2MAP_DERIV1 =4 } |
| enum | sharp_jobflags { SHARP_DP = 1<<4, SHARP_ADD = 1<<5 } |
Functions | |
| void | sharp_execute (sharp_jobtype type, int spin, void *alm, void *map, const sharp_geom_info *geom_info, const sharp_alm_info *alm_info, int ntrans, int flags, double *time, unsigned long long *opcnt) |
| enum sharp_jobtype |
Enumeration of SHARP job types.
| Enumerator | |
|---|---|
| SHARP_YtW | analysis |
| SHARP_MAP2ALM | analysis |
| SHARP_Y | synthesis |
| SHARP_ALM2MAP | synthesis |
| SHARP_Yt | adjoint synthesis |
| SHARP_WY | adjoint analysis |
| SHARP_ALM2MAP_DERIV1 | synthesis of first derivatives |
Definition at line 180 of file sharp_lowlevel.h.
| enum sharp_jobflags |
Job flags
| Enumerator | |
|---|---|
| SHARP_DP | map and a_lm are in double precision |
| SHARP_ADD | results are added to the output arrays, instead of overwriting them |
Definition at line 190 of file sharp_lowlevel.h.
| void sharp_execute | ( | sharp_jobtype | type, |
| int | spin, | ||
| void * | alm, | ||
| void * | map, | ||
| const sharp_geom_info * | geom_info, | ||
| const sharp_alm_info * | alm_info, | ||
| int | ntrans, | ||
| int | flags, | ||
| double * | time, | ||
| unsigned long long * | opcnt | ||
| ) |
Performs a libsharp SHT job. The interface deliberately does not use the C99 "complex" data type, in order to be callable from C89 and C++.
| type | the type of SHT |
| spin | the spin of the quantities to be transformed |
| alm | contains pointers to the a_lm coefficients. If spin==0, alm[0] points to the a_lm of the first SHT, alm[1] to those of the second etc. If spin>0, alm[0] and alm[1] point to the a_lm of the first SHT, alm[2] and alm[3] to those of the second, etc. The exact data type of alm depends on whether the SHARP_DP flag is set. |
| map | contains pointers to the maps. If spin==0, map[0] points to the map of the first SHT, map[1] to that of the second etc. If spin>0, or type is SHARP_ALM2MAP_DERIV1, map[0] and map[1] point to the maps of the first SHT, map[2] and map[3] to those of the second, etc. The exact data type of map depends on whether the SHARP_DP flag is set. |
| geom_info | A sharp_geom_info object compatible with the provided map arrays. |
| alm_info | A sharp_alm_info object compatible with the provided alm arrays. All m values from 0 to some mmax<=lmax must be present exactly once. |
| ntrans | the number of simultaneous SHTs |
| flags | See sharp_jobflags. In particular, if SHARP_DP is set, then alm is expected to have the type "complex double **" and map is expected to have the type "double **"; otherwise, the expected types are "complex float **" and "float **", respectively. |
| time | If not NULL, the wall clock time required for this SHT (in seconds) will be written here. |
| opcnt | If not NULL, a conservative estimate of the total floating point operation count for this SHT will be written here. |