36 sharp_alm_info **alm_info)
38 sharp_alm_info *info =
RALLOC(sharp_alm_info,1);
41 info->mval =
RALLOC(
int,mmax+1);
42 info->mvstart =
RALLOC(ptrdiff_t,mmax+1);
43 info->stride = stride;
45 ptrdiff_t tval = 2*lmax+1;
46 for (ptrdiff_t m=0; m<=mmax; ++m)
49 info->mvstart[m] = stride*((m*(tval-m))>>1);
55 sharp_alm_info **alm_info)
57 sharp_alm_info *info =
RALLOC(sharp_alm_info,1);
60 info->mval =
RALLOC(
int,mmax+1);
61 info->mvstart =
RALLOC(ptrdiff_t,mmax+1);
62 info->stride = stride;
64 for (ptrdiff_t m=0; m<=mmax; ++m)
67 info->mvstart[m] = stride*m*(lmax+1);
73 int nm,
const int *ms, sharp_alm_info **alm_info)
77 sharp_alm_info *info =
RALLOC(sharp_alm_info,1);
80 info->mval =
RALLOC(
int,nm);
81 info->mvstart =
RALLOC(ptrdiff_t,nm);
82 info->stride = stride;
85 for (
int im=0; im!=nm; ++im)
87 int m=(ms==NULL)?im:ms[im];
90 info->mvstart[im] = stride * (idx - f * m);
91 idx += f * (lmax + 1 - m);
#define RALLOC(type, num)
void sharp_make_triangular_alm_info(int lmax, int mmax, int stride, sharp_alm_info **alm_info)
void sharp_make_mmajor_real_packed_alm_info(int lmax, int stride, int nm, const int *ms, sharp_alm_info **alm_info)
void sharp_make_rectangular_alm_info(int lmax, int mmax, int stride, sharp_alm_info **alm_info)