CorrFuncFlatSky(State)
Do flat sky approx partially non-perturbative lensing, lensing_method = 2
CAMBdata :: State
CorrFuncFullSky(State, CL, CLout, CPP, lmin, lmax)
Full Gauss-Legendre implementation matching camb.correlations.lensed_cls,
with the same high-L template extension used by the standard Fortran code.
Uses the non-perturbative isotropic term with 2nd order expansion in C_{gl,2},
with no interpolation or sub-sampling in theta or l (unlike CorrFuncFullSkyApodized).
CAMBdata target :: State
TCLdata :: CL
TCLdata :: CLout
real(dl) :: CPP(0:State%CP%Max_l) [L(L+1)]^2 C_L_phi_phi/2pi
integer intent(in) :: lmin
integer intent(in) :: lmax
CorrFuncFullSkyApodized(State, CL, CLout, CPP, lmin, lmax)
Accurate curved sky correlation function method
Uses non-perturbative isotropic term with 2nd order expansion in C_{gl,2}
Neglects C_{gl}(theta) terms (very good approx)
CAMBdata target :: State
TCLdata :: CL
TCLdata :: CLout
real(dl) :: CPP(0:State%CP%Max_l) [L(L+1)]^2 C_L_phi_phi/2pi
integer intent(in) :: lmin
integer intent(in) :: lmax
CorrFuncFullSkyWithSpectrum(State, CLout, CPP, full_range)
CAMBdata target :: State
TCLdata :: CLout
real(dl) intent(in) :: CPP(0:State%CP%Max_l)
logical intent(in) :: full_range
GetBessels(MaxArg)
real(dl) intent(in) :: MaxArg
GetCachedGaussLegendre(npoints, xvals, weights)
Note the module-level cache means this is not safe for concurrent use from
different threads/States (the returned pointers are invalidated by a call
with a different npoints)
integer intent(in) :: npoints
real(dl) pointer :: xvals(:)
real(dl) pointer :: weights(:)
GetFlatSkyCGrads(State, lmax, CGrads)
CAMBdata :: State
integer intent(in) :: lmax
real(dl) :: CGrads(ncorr, 0:lmax)
GetFlatSkyCGradsWithSpectrum(State, CPP, lmax, CGrads)
Do flat skyapprox calculation of gradient spectra C^(T\grad T) etc.
See Appendix C of https://arxiv.org/abs/1101.2234
CAMBdata :: State
real(dl) intent(in) :: CPP(0:State%CP%Max_l)
integer intent(in) :: lmax
real(dl) :: CGrads(ncorr, 0:lmax)
InitLensedClArrays(State, CLout, lmin)
Set CLout%lmax_lensed from the l sampling and allocate the lensed output array
CAMBdata target :: State
TCLdata :: CLout
integer intent(in) :: lmin
lens_Cls(State)
CAMBdata :: State
LensClsWithDefaultSpectrum(State, full_range)
CAMBdata :: State
logical intent(in) :: full_range
lensClsWithSpectrum(State, CPP, lensedCls, lmax_lensed)
Get lensed CL using CPP as the lensing spectrum
CPP is [L(L+1)]^2C_phi_phi/2/pi
CAMBdata :: State
real(dl) intent(in) :: CPP(0:State%CP%Max_l)
real(dl) :: lensedCls(4, 0:State%CP%Max_l)
integer :: lmax_lensed
PrepareLensedCLSpectra(State, CL, lmin, lmax, ee_taper, CPP, Cphil3, CTT, CEE, CTE)
Weighted unlensed spectra and lensing potential entering the correlation function
integrands, extended above CP%Max_l using the (rescaled) high-L template.
Sets global error (via AmplitudeError) if the lensing spectrum is unrealistically large.
CAMBdata target :: State
TCLdata intent(in) :: CL
integer intent(in) :: lmin
integer intent(in) :: lmax
logical intent(in) :: ee_taper
real(dl) intent(in) :: CPP(0:State%CP%Max_l) [L(L+1)]^2 C_L_phi_phi/2pi
real(dl) intent(out) :: Cphil3(lmin:lmax)
real(dl) intent(out) :: CTT(lmin:lmax)
real(dl) intent(out) :: CEE(lmin:lmax)
real(dl) intent(out) :: CTE(lmin:lmax)
SetLensingPotentialSpectrum(State, CPP)
CAMBdata intent(in) :: State
real(dl) intent(out) :: CPP(0:State%CP%Max_l)