8 #include "svnversion.h" 18 #define _VERSION_ "v2.6.0" 27 #define _ERRORMSGSIZE_ 2048 28 typedef char ErrorMsg[_ERRORMSGSIZE_]; 30 #define _FILENAMESIZE_ 256 31 typedef char FileName[_FILENAMESIZE_]; 33 #define _PI_ 3.1415926535897932384626433832795e0 35 #define _PIHALF_ 1.57079632679489661923132169164e0 37 #define _TWOPI_ 6.283185307179586476925286766559e0 39 #define _SQRT2_ 1.41421356237309504880168872421e0 41 #define _SQRT6_ 2.4494897427831780981972840747059e0 43 #define _SQRT_PI_ 1.77245385090551602729816748334e0 45 #define _MAX_IT_ 10000 47 #define _QUADRATURE_MAX_ 250 49 #define _QUADRATURE_MAX_BG_ 800 55 #define _OUTPUTPRECISION_ 12 57 #define _COLUMNWIDTH_ 24 59 #define _MAXTITLESTRINGLENGTH_ 8000 61 #define _DELIMITER_ "\t" 66 #define __CLASSDIR__ "." 69 #define MIN(a,b) (((a)<(b)) ? (a) : (b) ) 70 #define MAX(a,b) (((a)<(b)) ? (b) : (a) ) 71 #define SIGN(a) (((a)>0) ? 1. : -1. ) 72 #define NRSIGN(a,b) ((b) >= 0.0 ? fabs(a) : -fabs(a)) 73 #define index_symmetric_matrix(i1,i2,N) (((i1)<=(i2)) ? (i2+N*i1-(i1*(i1+1))/2) : (i1+N*i2-(i2*(i2+1))/2)) 76 void class_protect_sprintf(
char* dest,
char* tpl,...);
77 void class_protect_fprintf(FILE* dest,
char* tpl,...);
78 void* class_protect_memcpy(
void* dest,
void* from,
size_t sz);
80 int get_number_of_titles(
char * titlestring);
82 #define class_build_error_string(dest,tmpl,...) { \ 84 class_protect_sprintf(FMsg,tmpl,__VA_ARGS__); \ 85 class_protect_sprintf(dest,"%s(L:%d) :%s",__func__,__LINE__,FMsg); \ 91 #define class_call_message(err_out,extra,err_mess) \ 92 class_build_error_string(err_out,"error in %s;\n=>%s",extra,err_mess); 95 #define class_call_except(function, error_message_from_function, error_message_output,list_of_commands) { \ 96 if (function == _FAILURE_) { \ 97 class_call_message(error_message_output,#function,error_message_from_function); \ 104 #define class_call_try(function, error_message_from_function, error_message_output,list_of_commands) { \ 105 if (function == _FAILURE_) { \ 106 class_call_message(error_message_output,#function,error_message_from_function); \ 112 #define class_call(function, error_message_from_function, error_message_output) \ 113 class_call_except(function, error_message_from_function,error_message_output,) 116 #define class_call_parallel(function, error_message_from_function, error_message_output) { \ 117 if (abort == _FALSE_) { \ 118 if (function == _FAILURE_) { \ 119 class_call_message(error_message_output,#function,error_message_from_function); \ 129 #define class_alloc_message(err_out,extra,sz) \ 130 class_build_error_string(err_out,"could not allocate %s with size %d",extra,sz); 133 #define class_alloc(pointer, size, error_message_output) { \ 134 pointer=malloc(size); \ 135 if (pointer == NULL) { \ 138 class_alloc_message(error_message_output,#pointer, size_int); \ 144 #define class_alloc_parallel(pointer, size, error_message_output) { \ 146 if (abort == _FALSE_) { \ 147 pointer=malloc(size); \ 148 if (pointer == NULL) { \ 151 class_alloc_message(error_message_output,#pointer, size_int); \ 158 #define class_calloc(pointer, init,size, error_message_output) { \ 159 pointer=calloc(init,size); \ 160 if (pointer == NULL) { \ 163 class_alloc_message(error_message_output,#pointer, size_int); \ 169 #define class_realloc(pointer, newname, size, error_message_output) { \ 170 pointer=realloc(newname,size); \ 171 if (pointer == NULL) { \ 174 class_alloc_message(error_message_output,#pointer, size_int); \ 181 #define class_test_message(err_out,extra,args...) { \ 182 ErrorMsg Optional_arguments; \ 183 class_protect_sprintf(Optional_arguments,args); \ 184 class_build_error_string(err_out,"condition (%s) is true; %s",extra,Optional_arguments); \ 190 #define class_test_except(condition, error_message_output,list_of_commands, args...) { \ 192 class_test_message(error_message_output,#condition, args); \ 198 #define class_test(condition, error_message_output, args...) { \ 200 class_test_message(error_message_output,#condition, args); \ 205 #define class_test_parallel(condition, error_message_output, args...) { \ 206 if (abort == _FALSE_) { \ 208 class_test_message(error_message_output,#condition, args); \ 217 #define class_stop(error_message_output,args...) { \ 218 ErrorMsg Optional_arguments; \ 219 class_protect_sprintf(Optional_arguments,args); \ 220 class_build_error_string(error_message_output,"error; %s",Optional_arguments); \ 226 #define class_open(pointer, filename, mode, error_output) { \ 227 pointer=fopen(filename,mode); \ 228 if (pointer == NULL) { \ 229 class_build_error_string(error_output,"could not open %s with name %s and mode %s",#pointer,filename,#mode); \ 235 #define class_define_index(index, \ 238 number_of_indices) { \ 240 index = running_index; \ 241 running_index += number_of_indices; \ 246 #define class_fprintf_double(file, \ 249 if (condition == _TRUE_) \ 250 fprintf(file,"%*.*e ",_COLUMNWIDTH_,_OUTPUTPRECISION_,output); \ 253 #define class_fprintf_double_or_default(file, \ 257 if (condition == _TRUE_) \ 258 fprintf(file,"%*.*e ",_COLUMNWIDTH_,_OUTPUTPRECISION_,output); \ 260 fprintf(file,"%*.*e ",_COLUMNWIDTH_,_OUTPUTPRECISION_,defaultvalue); \ 263 #define class_fprintf_int(file, \ 266 if (condition == _TRUE_) \ 267 fprintf(file,"%*d%*s ", \ 268 MAX(0,_COLUMNWIDTH_-_OUTPUTPRECISION_-5), \ 269 output, _OUTPUTPRECISION_+5," "); \ 272 #define class_fprintf_columntitle(file, \ 276 if (condition == _TRUE_) \ 277 fprintf(file,"%*s%2d:%-*s ", \ 278 MAX(0,MIN(_COLUMNWIDTH_-_OUTPUTPRECISION_-6-3,_COLUMNWIDTH_-((int) strlen(title))-3)), \ 279 "",colnum++,_OUTPUTPRECISION_+6,title); \ 282 #define class_store_columntitle(titlestring, \ 285 if (condition == _TRUE_){ \ 286 strcat(titlestring,title); \ 287 strcat(titlestring,_DELIMITER_); \ 292 #define class_store_double(storage, \ 296 if (condition == _TRUE_) \ 297 storage[dataindex++] = value; \ 300 #define class_store_double_or_default(storage, \ 305 if (condition == _TRUE_) \ 306 storage[dataindex++] = value; \ 308 storage[dataindex++] = defaultvalue; \ 478 FileName hyrec_Alpha_inf_file;
479 FileName hyrec_R_inf_file;
480 FileName hyrec_two_photon_tables_file;
double k_step_sub
Definition: common.h:505
double reionization_sampling
Definition: common.h:485
double start_large_k_at_tau_h_over_tau_k
Definition: common.h:520
double start_small_k_at_tau_c_over_tau_h
Definition: common.h:518
double recfast_x_H0_trigger2
Definition: common.h:473
double tol_gauss_legendre
Definition: common.h:783
double radiation_streaming_trigger_tau_c_over_tau
Definition: common.h:597
double transfer_neglect_delta_k_V_t2
Definition: common.h:706
double ncdm_fluid_trigger_tau_over_tau_k
Definition: common.h:613
double transfer_neglect_delta_k_S_t2
Definition: common.h:703
double tol_tau_approx
Definition: common.h:576
double perturb_sampling_stepsize
Definition: common.h:564
double recfast_wGauss2
Definition: common.h:455
int l_max_g
Definition: common.h:544
double hyper_sampling_flat
Definition: common.h:658
double hyper_x_tol
Definition: common.h:663
double recfast_delta_z_He_1
Definition: common.h:460
double tol_thermo_integration
Definition: common.h:438
double neglect_CMB_sources_below_visibility
Definition: common.h:619
double halofit_min_k_max
Definition: common.h:764
double recfast_x_He0_trigger_delta
Definition: common.h:470
double primordial_inflation_attractor_precision_initial
Definition: common.h:636
enum evolver_type evolver
Definition: common.h:499
double tol_perturb_integration
Definition: common.h:569
double recfast_AGauss1
Definition: common.h:450
double recfast_x_H0_trigger_delta
Definition: common.h:474
double q_logstep_spline
Definition: common.h:673
int delta_l_max
Definition: common.h:782
int thermo_rate_smoothing_radius
Definition: common.h:491
double transfer_neglect_delta_k_S_t0
Definition: common.h:701
double gw_ini
Definition: common.h:554
int radiation_streaming_approximation
Definition: common.h:581
double tol_ncdm_initial_w
Definition: common.h:412
double halofit_min_k_nonlinear
Definition: common.h:754
double primordial_inflation_bg_stepsize
Definition: common.h:633
double recfast_x_H0_trigger
Definition: common.h:472
double hyper_nu_sampling_step
Definition: common.h:661
double recfast_delta_z_He_3
Definition: common.h:466
double l_switch_limber_for_nc_local_over_z
Definition: common.h:719
int recfast_Nz0
Definition: common.h:437
double hyper_x_min
Definition: common.h:657
int l_max_dr
Definition: common.h:546
double recfast_H_frac
Definition: common.h:476
double transfer_neglect_delta_k_S_t1
Definition: common.h:702
pk_def
Definition: common.h:327
double recfast_z_initial
Definition: common.h:433
int primordial_inflation_phi_ini_maxit
Definition: common.h:631
double tol_background_integration
Definition: common.h:366
double transfer_neglect_delta_k_V_b
Definition: common.h:708
double hyper_sampling_curved_low_nu
Definition: common.h:659
int recfast_Hswitch
Definition: common.h:447
double recfast_z_He_1
Definition: common.h:459
int ur_fluid_approximation
Definition: common.h:599
int l_max_ncdm
Definition: common.h:548
double k_per_decade_primordial
Definition: common.h:627
double recfast_delta_z_He_2
Definition: common.h:463
double k_per_decade_for_pk
Definition: common.h:510
double perturb_integration_stepsize
Definition: common.h:559
double start_sources_at_tau_c_over_tau_h
Definition: common.h:540
double primordial_inflation_attractor_precision_pivot
Definition: common.h:635
double primordial_inflation_aH_ini_target
Definition: common.h:639
double k_per_decade_for_bao
Definition: common.h:512
double tight_coupling_trigger_tau_c_over_tau_k
Definition: common.h:538
double tol_ncdm
Definition: common.h:400
double l_logstep
Definition: common.h:654
evolver_type
Definition: common.h:316
double transfer_neglect_delta_k_V_e
Definition: common.h:707
double reionization_start_factor
Definition: common.h:487
double recfast_fudge_H
Definition: common.h:448
double primordial_inflation_ratio_max
Definition: common.h:630
double tight_coupling_trigger_tau_c_over_tau_h
Definition: common.h:530
double primordial_inflation_end_dphi
Definition: common.h:640
double k_bao_center
Definition: common.h:514
double recfast_zGauss2
Definition: common.h:453
int num_mu_minus_lmax
Definition: common.h:781
double halofit_sigma_precision
Definition: common.h:758
double safe_phi_scf
Definition: common.h:417
double a_ini_over_a_today_default
Definition: common.h:355
double transfer_neglect_delta_k_T_e
Definition: common.h:710
double back_integration_stepsize
Definition: common.h:361
double recfast_wGauss1
Definition: common.h:454
double recfast_z_He_3
Definition: common.h:465
int accurate_lensing
Definition: common.h:780
double q_logstep_open
Definition: common.h:678
double q_numstep_transition
Definition: common.h:696
int tight_coupling_approximation
Definition: common.h:542
double recfast_z_He_2
Definition: common.h:462
double q_linstep
Definition: common.h:668
double k_min_tau0
Definition: common.h:501
double primordial_inflation_extra_efolds
Definition: common.h:644
double l_switch_limber
Definition: common.h:716
double reionization_optical_depth_tol
Definition: common.h:486
double selection_tophat_edge
Definition: common.h:737
double selection_sampling
Definition: common.h:728
double l_switch_limber_for_nc_los_over_z
Definition: common.h:722
double transfer_neglect_delta_k_V_t1
Definition: common.h:705
double tol_ncdm_newtonian
Definition: common.h:386
double k_step_super_reduction
Definition: common.h:508
ErrorMsg error_message
Definition: common.h:798
double primordial_inflation_small_epsilon
Definition: common.h:642
double tol_initial_Omega_r
Definition: common.h:373
double primordial_inflation_pt_stepsize
Definition: common.h:632
double hyper_flat_approximation_nu
Definition: common.h:664
double recfast_AGauss2
Definition: common.h:451
double k_bao_width
Definition: common.h:516
double primordial_inflation_small_epsilon_tol
Definition: common.h:643
double transfer_neglect_delta_k_S_e
Definition: common.h:704
file_format
Definition: common.h:337
double primordial_inflation_ratio_min
Definition: common.h:629
double primordial_inflation_tol_curvature
Definition: common.h:638
double transfer_neglect_late_source
Definition: common.h:713
double transfer_neglect_delta_k_T_t2
Definition: common.h:709
double tol_M_ncdm
Definition: common.h:379
double curvature_ini
Definition: common.h:552
double radiation_streaming_trigger_tau_over_tau_k
Definition: common.h:589
double k_step_transition
Definition: common.h:507
int l_max_g_ten
Definition: common.h:549
double recfast_x_He0_trigger
Definition: common.h:468
double transfer_neglect_delta_k_T_b
Definition: common.h:711
double tol_ncdm_bg
Definition: common.h:406
int ncdm_fluid_approximation
Definition: common.h:607
double recfast_fudge_He
Definition: common.h:443
double ur_fluid_trigger_tau_over_tau_k
Definition: common.h:605
int l_max_ur
Definition: common.h:547
double smallest_allowed_variation
Definition: common.h:790
double k_step_super
Definition: common.h:506
double selection_sampling_bessel_los
Definition: common.h:734
double tol_ncdm_synchronous
Definition: common.h:393
double hyper_sampling_curved_high_nu
Definition: common.h:660
double q_logstep_trapzd
Definition: common.h:685
int l_linstep
Definition: common.h:652
double primordial_inflation_end_logstep
Definition: common.h:641
double selection_sampling_bessel
Definition: common.h:731
double hyper_phi_min_abs
Definition: common.h:662
double entropy_ini
Definition: common.h:553
double halofit_dz
Definition: common.h:747
double k_max_tau0_over_l_max
Definition: common.h:503
int l_max_pol_g
Definition: common.h:545
double halofit_k_per_decade
Definition: common.h:769
int primordial_inflation_attractor_maxit
Definition: common.h:637
int l_max_pol_g_ten
Definition: common.h:550
double selection_cut_at_sigma
Definition: common.h:725
double recfast_zGauss1
Definition: common.h:452
double recfast_delta_fudge_H
Definition: common.h:449
double primordial_inflation_tol_integration
Definition: common.h:634
double reionization_z_start_max
Definition: common.h:484
double recfast_x_He0_trigger2
Definition: common.h:469
int recfast_Heswitch
Definition: common.h:442