1#ifndef LENSING_MODULE_H
2#define LENSING_MODULE_H
8#include "base_module.h"
11class LensingModule :
public BaseModule {
13 LensingModule(InputModulePtr input_module, SpectraModulePtr spectra_module);
15 std::map<std::string, std::vector<double>> cl_output(
int lmax)
const;
16 std::map<std::string, std::vector<double>> cl_output_computed()
const;
17 void lensing_cl_at_l(
int l,
double* cl_lensed)
const;
24 void lensing_indices();
25 std::map<std::string, std::vector<double>> cl_output_at_l_values(
26 const std::vector<int>& l_values)
const;
27 void lensing_lensed_cl_tt(
double* ksi,
double** d00,
double* w8,
int nmu);
28 void lensing_lensed_cl_te(
double* ksiX,
double** d20,
double* w8,
int nmu);
29 void lensing_lensed_cl_ee_bb(
30 double* ksip,
double* ksim,
double** d22,
double** d2m2,
double* w8,
int nmu);
31 void lensing_addback_cl_tt(
double* cl_tt);
32 void lensing_addback_cl_te(
double* cl_te);
33 void lensing_addback_cl_ee_bb(
double* cl_ee,
double* cl_bb);
34 int lensing_X000(
double* mu,
int num_mu,
int lmax,
double* sigma2,
double** X000);
35 int lensing_Xp000(
double* mu,
int num_mu,
int lmax,
double* sigma2,
double** Xp000);
36 int lensing_X220(
double* mu,
int num_mu,
int lmax,
double* sigma2,
double** X220);
37 int lensing_X022(
double* mu,
int num_mu,
int lmax,
double* sigma2,
double** X022);
38 int lensing_Xp022(
double* mu,
int num_mu,
int lmax,
double* sigma2,
double** Xp022);
39 int lensing_X121(
double* mu,
int num_mu,
int lmax,
double* sigma2,
double** X121);
40 int lensing_X132(
double* mu,
int num_mu,
int lmax,
double* sigma2,
double** X132);
41 int lensing_X242(
double* mu,
int num_mu,
int lmax,
double* sigma2,
double** X242);
42 void lensing_d00(
double* mu,
int num_mu,
int lmax,
double** d00);
43 void lensing_d11(
double* mu,
int num_mu,
int lmax,
double** d11);
44 void lensing_d1m1(
double* mu,
int num_mu,
int lmax,
double** d1m1);
45 void lensing_d2m2(
double* mu,
int num_mu,
int lmax,
double** d2m2);
46 void lensing_d22(
double* mu,
int num_mu,
int lmax,
double** d22);
47 void lensing_d20(
double* mu,
int num_mu,
int lmax,
double** d20);
48 void lensing_d31(
double* mu,
int num_mu,
int lmax,
double** d3m1);
49 void lensing_d3m1(
double* mu,
int num_mu,
int lmax,
double** d3m1);
50 void lensing_d3m3(
double* mu,
int num_mu,
int lmax,
double** d3m3);
51 void lensing_d40(
double* mu,
int num_mu,
int lmax,
double** d40);
52 void lensing_d4m2(
double* mu,
int num_mu,
int lmax,
double** d4m2);
53 void lensing_d4m4(
double* mu,
int num_mu,
int lmax,
double** d4m4);
93 std::vector<int> l_max_lt_;
96 std::vector<double> l_;
97 std::vector<double> cl_lens_;
101 std::vector<double> ddcl_lens_;
104 SpectraModulePtr spectra_module_;