15 double chi=((
Fpar *)params)->chi;
16 double chia=csm_radial_comoving_distance(((
Fpar *)params)->cpar,a);
23 double h=csm_hubble(((
Fpar *)params)->cpar,a);
34 static double a_of_chi(
double chi,Csm_params *cpar,
double *a_old,gsl_root_fdfsolver *s)
41 double a_previous,a_current=*a_old;
49 gsl_root_fdfsolver_set(s,&FDF,a_current);
54 status=gsl_root_fdfsolver_iterate(s);
56 a_current=gsl_root_fdfsolver_root(s);
57 status=gsl_root_test_delta(a_current,a_previous,1E-6,0);
58 }
while(status==GSL_CONTINUE);
81 return h*pz*0.5*(2-5*
sz);
83 return h*pz*0.5*(2-5*
sz)*(chip-chi)/chip;
88 double result,eresult;
91 gsl_integration_workspace *
w=gsl_integration_workspace_alloc(1000);
98 gsl_integration_qag(&F,chi,par->
chi_horizon,0,1E-4,1000,GSL_INTEG_GAUSS41,w,&result,&eresult);
99 gsl_integration_workspace_free(w);
114 return h*pz*(chip-chi)/chip;
119 double result,eresult;
122 gsl_integration_workspace *
w=gsl_integration_workspace_alloc(1000);
129 gsl_integration_qag(&F,chi,par->
chi_horizon,0,1E-4,1000,GSL_INTEG_GAUSS41,w,&result,&eresult);
130 gsl_integration_workspace_free(w);
144 fprintf(fo,
"[0]z [1]chi [2]zb [3]a [4]h [5]gf [6]fg ");
147 fprintf(fo,
"[%d]w0_1 [%d]w0_2 ",icol+1,icol+2);
150 fprintf(fo,
"[%d]wM_1 [%d]wM_2 ",icol+1,icol+2);
155 fprintf(fo,
"[%d]wL_1 [%d]wL_2 ",icol+1,icol+2);
159 for(ii=0;ii<NZ_BG;ii++) {
160 double z=zmax*(ii+0.5)/NZ_BG;
161 double chi=csm_radial_comoving_distance(par->
cpar,1./(1+z));
162 fprintf(fo,
"%lE %lE ",z,chi);
190 double *
x,*a,*y,dchi;
192 par->
cpar=csm_params_new();
195 csm_unset_gsl_eh(par->
cpar);
201 hub=csm_hubble(par->
cpar,1.);
215 printf(
"Setting up background splines\n");
217 const gsl_root_fdfsolver_type *
T=gsl_root_fdfsolver_newton;
218 gsl_root_fdfsolver *s=gsl_root_fdfsolver_alloc(T);
222 gsl_root_fdfsolver_free(s);
232 y[ii]=csm_hubble(par->
cpar,a[ii]);
236 double g0=csm_growth_factor(par->
cpar,1.0);
238 y[ii]=csm_growth_factor(par->
cpar,a[ii])/g0;
243 y[ii]=csm_f_growth(par->
cpar,a[ii]);
245 free(x); free(a); free(y);
309 for(ibin=0;ibin<2;ibin++) {
310 printf(
"Reading window function %s\n",par->
fname_window[ibin]);
316 for(ii=0;ii<n;ii++) {
317 stat=fscanf(fi,
"%lE %lE",&(x[ii]),&(y[ii]));
326 gsl_integration_workspace *
w=gsl_integration_workspace_alloc(1000);
328 F.params=par->
wind_0[ibin];
329 gsl_integration_qag(&F,x[0],x[n-1],0,1E-4,1000,GSL_INTEG_GAUSS41,w,&norm,&enorm);
330 gsl_integration_workspace_free(w);
341 printf(
"Reading bias function %s\n",par->
fname_bias);
347 for(ii=0;ii<n;ii++) {
348 stat=fscanf(fi,
"%lE %lE",&(x[ii]),&(y[ii]));
358 printf(
"Reading s-bias function %s\n",par->
fname_sbias);
364 for(ii=0;ii<n;ii++) {
365 stat=fscanf(fi,
"%lE %lE",&(x[ii]),&(y[ii]));
373 printf(
"Computing lensing magnification window function\n");
375 for(ibin=0;ibin<2;ibin++) {
378 double chimax=csm_radial_comoving_distance(par->
cpar,1./(1+zmax));
379 n=(int)(chimax/par->
dchi)+1;
386 #pragma omp parallel default(none) shared(n,x,y,par,dchi_here,ibin) 408 printf(
"Computing lensing window function\n");
410 for(ibin=0;ibin<2;ibin++) {
413 double chimax=csm_radial_comoving_distance(par->
cpar,1./(1+zmax));
414 n=(int)(chimax/par->
dchi)+1;
421 #pragma omp parallel default(none) shared(n,x,y,par,dchi_here,ibin)
static double integrand_wl(double chip, void *params)
int read_parameter_file(char *fname, RunParams *par)
void dam_report_error(int level, char *fmt,...)
static double a_of_chi(double chi, Csm_params *cpar, double *a_old, gsl_root_fdfsolver *s)
static double window_lensing(double chi, RunParams *par, int i_window)
SplPar * spline_init(int n, double *x, double *y, double y0, double yf)
FILE * dam_fopen(const char *path, const char *mode)
static double speval_bis(double x, void *params)
static void fdfzero(double a, void *params, double *f, double *df)
static double fzero(double a, void *params)
RunParams * param_new(void)
static CCL_BEGIN_DECLS double x[111][8]
static double window_magnification(double chi, RunParams *par, int i_window)
double spline_eval(double x, SplPar *spl)
void * dam_malloc(size_t size)
void spline_free(SplPar *spl)
static double dfzero(double a, void *params)
static double integrand_wm(double chip, void *params)
RunParams * init_params(char *fname_ini)
static double w[2][28][111]
int dam_linecount(FILE *f)