7 #include "hyperspherical.h" 13 #define _index_tt_in_range_(index,num,flag) (flag == _TRUE_) && (index_tt >= index) && (index_tt < index+num) 236 typedef enum {SCALAR_TEMPERATURE_0,
237 SCALAR_TEMPERATURE_1,
238 SCALAR_TEMPERATURE_2,
239 SCALAR_POLARISATION_E,
240 VECTOR_TEMPERATURE_1,
241 VECTOR_TEMPERATURE_2,
242 VECTOR_POLARISATION_E,
243 VECTOR_POLARISATION_B,
244 TENSOR_TEMPERATURE_2,
245 TENSOR_POLARISATION_E,
246 TENSOR_POLARISATION_B,
249 enum Hermite_Interpolation_Order {HERMITE3, HERMITE4, HERMITE6};
267 double * ptransfer_local
292 int transfer_perturbation_copy_sources_and_nl_corrections(
299 int transfer_perturbation_source_spline(
303 double *** sources_spline
306 int transfer_perturbation_sources_free(
313 int transfer_perturbation_sources_spline_free(
316 double *** sources_spline
334 int transfer_get_q_list_v1(
355 int transfer_free_source_correspondence(
360 int transfer_source_tau_size_max(
392 double *** sources_spline,
396 int transfer_radial_coordinates(
411 double * source_spline,
412 double * interpolated_sources
420 double * interpolated_sources,
426 double * tau0_minus_tau,
443 double * dln_dNdz_dz);
451 double * tau0_minus_tau,
461 double * tau0_minus_tau,
470 double * tau0_minus_tau,
474 double * interpolated_sources,
493 double * tau0_minus_tau,
515 int transfer_use_limber(
554 double * tau0_minus_tau,
557 double tau0_minus_tau_limber,
568 double * tau0_minus_tau,
574 int transfer_can_be_neglected(
587 int transfer_late_source_can_be_neglected(
596 int transfer_select_radial_function(
604 int transfer_radial_function(
612 double * radial_function,
616 int transfer_init_HIS_from_bessel(
618 HyperInterpStruct *pHIS
621 int transfer_global_selection_read(
625 int transfer_workspace_init(
629 int perturb_tau_size,
633 double tau0_minus_tau_cut,
634 HyperInterpStruct * pBIS
637 int transfer_workspace_free(
642 int transfer_update_HIS(
650 int transfer_get_lmax(
int (*get_xmin_generic)(
int sgnK,
int tau_size
Definition: transfer.h:194
Definition: background.h:25
double selection_magnification_bias[_SELECTION_NUM_MAX_]
Definition: transfer.h:56
int index_tt_e
Definition: transfer.h:94
int transfer_compute_for_each_l(struct transfer_workspace *ptw, struct precision *ppr, struct perturbs *ppt, struct transfers *ptr, int index_q, int index_md, int index_ic, int index_tt, int index_l, double l, double q_max_bessel, radial_function_type radial_type)
Definition: transfer.c:3435
int transfer_lensing_sampling(struct precision *ppr, struct background *pba, struct perturbs *ppt, struct transfers *ptr, int bin, double tau0, double *tau0_minus_tau, int tau_size)
Definition: transfer.c:3111
short has_cls
Definition: transfer.h:81
HyperInterpStruct HIS
Definition: transfer.h:180
int transfer_get_l_list(struct precision *ppr, struct perturbs *ppt, struct transfers *ptr)
Definition: transfer.c:786
int transfer_selection_times(struct precision *ppr, struct background *pba, struct perturbs *ppt, struct transfers *ptr, int bin, double *tau_min, double *tau_mean, double *tau_max)
Definition: transfer.c:3235
FileName nz_evo_file_name
Definition: transfer.h:68
int tau_size_max
Definition: transfer.h:195
int index_tt_nc_lens
Definition: transfer.h:103
int transfer_free(struct transfers *ptr)
Definition: transfer.c:418
int transfer_functions_at_q(struct transfers *ptr, int index_md, int index_ic, int index_tt, int index_l, double q, double *transfer_function)
Definition: transfer.c:61
FileName nz_file_name
Definition: transfer.h:60
Definition: perturbations.h:95
double * chi
Definition: transfer.h:207
int transfer_sources(struct precision *ppr, struct background *pba, struct perturbs *ppt, struct transfers *ptr, double *interpolated_sources, double tau_rec, int index_q, int index_md, int index_tt, double *sources, double *tau0_minus_tau, double *w_trapz, int *tau_size_out)
Definition: transfer.c:2058
int transfer_get_source_correspondence(struct perturbs *ppt, struct transfers *ptr, int **tp_of_tt)
Definition: transfer.c:1293
double * nz_evo_z
Definition: transfer.h:70
Definition: thermodynamics.h:58
int transfer_interpolate_sources(struct perturbs *ppt, struct transfers *ptr, int index_q, int index_md, int index_ic, int index_type, double *pert_source, double *pert_source_spline, double *interpolated_sources)
Definition: transfer.c:1974
int transfer_integrate(struct perturbs *ppt, struct transfers *ptr, struct transfer_workspace *ptw, int index_q, int index_md, int index_tt, double l, int index_l, double k, radial_function_type radial_type, double *trsf)
Definition: transfer.c:3621
double selection_bias[_SELECTION_NUM_MAX_]
Definition: transfer.h:55
double * nz_nz
Definition: transfer.h:63
int index_tt_nc_g5
Definition: transfer.h:108
double ** transfer
Definition: transfer.h:150
int index_tt_nc_g3
Definition: transfer.h:106
int index_tt_density
Definition: transfer.h:97
int nz_size
Definition: transfer.h:61
int * l_size
Definition: transfer.h:120
short has_nz_analytic
Definition: transfer.h:59
double * tau0_minus_tau
Definition: transfer.h:205
int index_q_flat_approximation
Definition: transfer.h:142
int index_tt_lcmb
Definition: transfer.h:96
double * w_trapz
Definition: transfer.h:206
int * l
Definition: transfer.h:124
int l_size
Definition: transfer.h:186
int transfer_dNdz_analytic(struct transfers *ptr, double z, double *dNdz, double *dln_dNdz_dz)
Definition: transfer.c:3000
double tau0_minus_tau_cut
Definition: transfer.h:225
int index_tt_nc_g1
Definition: transfer.h:104
double * nz_evo_dlog_nz
Definition: transfer.h:72
HyperInterpStruct * pBIS
Definition: transfer.h:184
short has_nz_evo_analytic
Definition: transfer.h:67
#define _SELECTION_NUM_MAX_
Definition: perturbations.h:68
ErrorMsg error_message
Definition: transfer.h:162
int transfer_compute_for_each_q(struct precision *ppr, struct background *pba, struct perturbs *ppt, struct transfers *ptr, int **tp_of_tt, int index_q, int tau_size_max, double tau_rec, double ***pert_sources, double ***pert_sources_spline, struct transfer_workspace *ptw)
Definition: transfer.c:1659
double * cotKgen
Definition: transfer.h:212
short initialise_HIS_cache
Definition: transfer.h:158
int transfer_get_k_list(struct perturbs *ppt, struct transfers *ptr, double K)
Definition: transfer.c:1216
int index_tt_t2
Definition: transfer.h:93
int transfer_limber(struct transfers *ptr, struct transfer_workspace *ptw, int index_md, int index_q, double l, double q, radial_function_type radial_type, double *trsf)
Definition: transfer.c:3802
int index_tt_t0
Definition: transfer.h:91
int transfer_limber_interpolate(struct transfers *ptr, double *tau0_minus_tau, double *sources, int tau_size, double tau0_minus_tau_limber, double *S)
Definition: transfer.c:3959
double lcmb_pivot
Definition: transfer.h:52
double K
Definition: transfer.h:220
double lcmb_tilt
Definition: transfer.h:49
int index_tt_rsd
Definition: transfer.h:100
int transfer_selection_function(struct precision *ppr, struct perturbs *ppt, struct transfers *ptr, int bin, double z, double *selection)
Definition: transfer.c:2855
int transfer_indices_of_transfers(struct precision *ppr, struct perturbs *ppt, struct transfers *ptr, double q_period, double K, int sgnK)
Definition: transfer.c:475
int transfer_selection_sampling(struct precision *ppr, struct background *pba, struct perturbs *ppt, struct transfers *ptr, int bin, double *tau0_minus_tau, int tau_size)
Definition: transfer.c:3043
radial_function_type
Definition: transfer.h:236
Definition: transfer.h:38
double ** k
Definition: transfer.h:140
short has_nz_file
Definition: transfer.h:58
double * interpolated_sources
Definition: transfer.h:196
size_t q_size
Definition: transfer.h:136
int transfer_selection_compute(struct precision *ppr, struct background *pba, struct perturbs *ppt, struct transfers *ptr, double *selection, double *tau0_minus_tau, double *w_trapz, int tau_size, double *pvecback, double tau0, int bin)
Definition: transfer.c:3315
int index_tt_lensing
Definition: transfer.h:98
int HIS_allocated
Definition: transfer.h:182
int index_tt_d0
Definition: transfer.h:101
int nz_evo_size
Definition: transfer.h:69
short transfer_verbose
Definition: transfer.h:160
double * cscKgen
Definition: transfer.h:211
double angular_rescaling
Definition: transfer.h:128
double lcmb_rescale
Definition: transfer.h:46
int ** l_size_tt
Definition: transfer.h:118
int transfer_source_resample(struct precision *ppr, struct background *pba, struct perturbs *ppt, struct transfers *ptr, int bin, double *tau0_minus_tau, int tau_size, int index_md, double tau0, double *interpolated_sources, double *sources)
Definition: transfer.c:3168
int index_tt_d1
Definition: transfer.h:102
int index_tt_nc_g2
Definition: transfer.h:105
int index_tt_nc_g4
Definition: transfer.h:107
short has_nz_evo_file
Definition: transfer.h:66
short neglect_late_source
Definition: transfer.h:226
int md_size
Definition: transfer.h:89
int transfer_limber2(int tau_size, struct transfers *ptr, int index_md, int index_k, double l, double k, double *tau0_minus_tau, double *sources, radial_function_type radial_type, double *trsf)
Definition: transfer.c:4046
int sgnK
Definition: transfer.h:221
int transfer_get_q_list(struct precision *ppr, struct perturbs *ppt, struct transfers *ptr, double q_period, double K, int sgnK)
Definition: transfer.c:985
int l_size_max
Definition: transfer.h:122
int transfer_init(struct precision *ppr, struct background *pba, struct thermo *pth, struct perturbs *ppt, struct nonlinear *pnl, struct transfers *ptr)
Definition: transfer.c:115
double * sources
Definition: transfer.h:200
int transfer_source_tau_size(struct precision *ppr, struct background *pba, struct perturbs *ppt, struct transfers *ptr, double tau_rec, double tau0, int index_md, int index_tt, int *tau_size)
Definition: transfer.c:1475
Definition: transfer.h:174
double * nz_evo_dd_dlog_nz
Definition: transfer.h:73
int * tt_size
Definition: transfer.h:110
double * nz_ddnz
Definition: transfer.h:64
double * nz_evo_nz
Definition: transfer.h:71
double * nz_z
Definition: transfer.h:62
int index_tt_t1
Definition: transfer.h:92
int index_tt_b
Definition: transfer.h:95
Definition: nonlinear.h:20
double * q
Definition: transfer.h:138