Class
NumCosmoXcorKernelRadial
Description [src]
abstract class NumCosmo.XcorKernelRadial : NumCosmo.XcorKernel
{
/* No available fields */
}
Base class for kernels whose radial window is defined as a function of comoving distance.
Every other NcXcorKernel builds its window from splined physical input, so
its $C_\ell$ has no independently known value. A subclass of this one is
defined by a formula, so it is exactly evaluable outside NumCosmo and can
serve both as a test case with a known answer and as the shared input of a
cross-code benchmark.
The window is a function of comoving distance in Mpc, normalized to unit integral over its support, \begin{equation} \int_{\chi_\mathrm{min}}^{\chi_\mathrm{max}} W(\chi)\,\mathrm{d}\chi = 1 , \end{equation}
and the kernel entering the radial integral is \begin{equation} K(\chi,k) = W(\chi)\sqrt{P(k, z=0)} . \end{equation}
The power spectrum is evaluated at $z = 0$, so all redshift dependence, including growth, is carried by $W$. This is the convention of the N5K challenge and of CCL’s tracer kernels, and it keeps $z(\chi)$, itself a spline, out of the exact path.
Distances are in Mpc rather than the library’s internal $R_H$, so the resulting $C_\ell$ is directly comparable to a code working in Mpc with no cosmology-dependent conversion factor.
A subclass declares its components: the maximal intervals on which the
window is supported. Each becomes one NcXcorKernelComponent, integrated
over exactly that interval and summed with the others, so no boundary is
ever interior to an integration domain.
The split is by support, not by feature. A window with several bumps that overlap into one continuous stretch is a single component, because it is smooth throughout and cutting it would create edges rather than declare them. Bumps whose supports are disjoint are separate components.
A component must vanish outside the interval it reports. The truncation is part of the definition rather than an implementation detail, since a comparison against an external code is only meaningful if both truncate identically.
Instance methods
nc_xcor_kernel_radial_eval_W
Evaluates the whole radial window, the sum of its components, normalized to unit integral over its support and zero outside it.
nc_xcor_kernel_radial_eval_W_comp
Evaluates component comp of the radial window at chi, zero outside the
interval that nc_xcor_kernel_radial_get_comp_support() reports for it. The
components sum to a window of unit integral.
nc_xcor_kernel_radial_eval_kernel_factor
Evaluates a multiplicative factor of $(\chi, k)$ applied to component comp
on top of $W(\chi)\sqrt{P(k,0)}$. It must not depend on $\ell$: one closure
serves a whole block of multipoles, so anything $\ell$-dependent belongs in
nc_xcor_kernel_radial_eval_prefactor() instead.
nc_xcor_kernel_radial_eval_prefactor
Evaluates a multiplicative factor that depends only on $\ell$, applied to
component comp. Shear contributes $\sqrt{(\ell+2)(\ell+1)\ell(\ell-1)}$ here.
nc_xcor_kernel_radial_get_comp_bessel_deriv
Gets the derivative order of the spherical Bessel weight of component comp:
0 for $j_\ell$, 2 for the $j_\ell”$ of a redshift-space distortion term.
It is set on the NcXcorKernelComponent at construction.
nc_xcor_kernel_radial_get_comp_support
Gets the interval outside which component comp vanishes. It is exactly the
interval that component is integrated over, so the boundary is exact by
construction rather than something the quadrature has to locate.
nc_xcor_kernel_radial_get_n_comps
Gets the number of components the window is split into: its maximal intervals of support. Each is integrated separately over exactly its own interval, so that a boundary is never interior to an integration domain.
nc_xcor_kernel_radial_get_support
Gets the hull of the components’ intervals, outside which the whole window vanishes. Components may be disjoint, so the hull can contain gaps where the window is zero; it is what fixes the kernel’s redshift range, not what anything is integrated over.
Methods inherited from NcXcorKernel (42)
Please see NcXcorKernel for a full list of methods.
Properties
NumCosmo.XcorKernelRadial:bessel-deriv
Derivative order of the spherical Bessel weight every component of this kernel carries: 0 for $j_\ell$, 1 for $j_\ell’$, 2 for the $j_\ell”$ of a redshift-space distortion term. The derivative is with respect to the argument $x = k\chi$.
NumCosmo.XcorKernelRadial:scale-dependence
Optional NcXcorKernelRadialKDep multiplying the radial integrand, or
NULL for none. Any shape may carry any scale dependence, so the two are
varied independently rather than baked into separate kernel classes.
Properties inherited from NcXcorKernel (14)
NumCosmo.XcorKernel:adaptive-boundary-tries
NumCosmo.XcorKernel:adaptive-epsilon
Convergence threshold for the adaptive $k$-range determination: sampling stops
extending outwards once $\Vert W\Vert$ falls below this fraction of its running
maximum, for NcXcorKernel:adaptive-boundary-tries consecutive steps.
NumCosmo.XcorKernel:dist
NumCosmo.XcorKernel:expansion-factor
NumCosmo.XcorKernel:integrator
NumCosmo.XcorKernel:l-limber
NumCosmo.XcorKernel:lmax
NumCosmo.XcorKernel:max-border-expansions
NumCosmo.XcorKernel:max-iter
NumCosmo.XcorKernel:panel-order-cap
Highest Chebyshev order tried on one panel before it is bisected, as $N = 2^\mathrm{cap} + 1$ coefficients.
NumCosmo.XcorKernel:peak-epsilon
Peak-relative floor of the adaptive refinement of the $W_i(k)$ closure. An
interval is accepted once its estimated interpolation error falls below
peak-epsilon $\times \max\vert F\vert$, the maximum taken over the smallest
of the block’s peaks so that a sub-dominant multipole is not held to a
tolerance relative to its neighbours.
NumCosmo.XcorKernel:powspec
NumCosmo.XcorKernel:reltol
Relative tolerance for the adaptive refinement of the $W_i(k)$ spline.
NumCosmo.XcorKernel:track-fit-residual
Whether the closure records the residual its fit achieved on each interval
it is a single polynomial on — a knot interval of a spline closure, a
panel of a Chebyshev one. That record is what nc_xcor_compute_full() turns
into an error estimate. On by default: without it the estimate has only
NcXcorKernel:reltol and NcXcorKernel:peak-epsilon to work from — the
tolerances the fit was asked for, which it beats by 12 to 3100 times
depending on the kernel, so the resulting bound tracks the pair’s
cancellation rather than its accuracy.
Properties inherited from NcmModel (9)
NumCosmoMath.Model:implementation
The implementation flags of the model class, see ncm_model_check_impl_flag().
NumCosmoMath.Model:name
The name of the model class.
NumCosmoMath.Model:nick
The nickname of the model class.
NumCosmoMath.Model:params-types
The NcmParamType of each parameter.
NumCosmoMath.Model:reparam
The reparametrization, see ncm_model_set_reparam().
NumCosmoMath.Model:scalar-params-len
The number of scalar parameters.
NumCosmoMath.Model:sparam-array
The parameter descriptions that differ from the class ones, NcmSParam keyed by
parameter index. Each one is placed by its parameter name: a description of a
parameter declared with ncm_model_class_add_removed_param() is skipped, and one of
any other unknown parameter aborts.
NumCosmoMath.Model:submodel-array
The submodels, attached at construction.
NumCosmoMath.Model:vector-params-len
The number of vector parameters (not their lengths).
Signals
Signals inherited from GObject (1)
GObject::notify
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.
Class structure
struct NumCosmoXcorKernelRadialClass {
guint (* get_n_comps) (
NcXcorKernelRadial* xcka
);
gdouble (* eval_W_comp) (
NcXcorKernelRadial* xcka,
guint comp,
gdouble chi
);
void (* get_comp_support) (
NcXcorKernelRadial* xcka,
guint comp,
gdouble* chi_min,
gdouble* chi_max
);
gdouble (* eval_kernel_factor) (
NcXcorKernelRadial* xcka,
guint comp,
NcHICosmo* cosmo,
gdouble chi,
gdouble k
);
gdouble (* eval_prefactor) (
NcXcorKernelRadial* xcka,
guint comp,
NcHICosmo* cosmo,
gint l
);
guint (* get_comp_bessel_deriv) (
NcXcorKernelRadial* xcka,
guint comp
);
}
No description available.
Class members
get_n_comps: guint (* get_n_comps) ( NcXcorKernelRadial* xcka )No description available.
eval_W_comp: gdouble (* eval_W_comp) ( NcXcorKernelRadial* xcka, guint comp, gdouble chi )No description available.
get_comp_support: void (* get_comp_support) ( NcXcorKernelRadial* xcka, guint comp, gdouble* chi_min, gdouble* chi_max )No description available.
eval_kernel_factor: gdouble (* eval_kernel_factor) ( NcXcorKernelRadial* xcka, guint comp, NcHICosmo* cosmo, gdouble chi, gdouble k )No description available.
eval_prefactor: gdouble (* eval_prefactor) ( NcXcorKernelRadial* xcka, guint comp, NcHICosmo* cosmo, gint l )No description available.
get_comp_bessel_deriv: guint (* get_comp_bessel_deriv) ( NcXcorKernelRadial* xcka, guint comp )No description available.
Virtual methods
NumCosmo.XcorKernelRadialClass.eval_W_comp
Evaluates component comp of the radial window at chi, zero outside the
interval that nc_xcor_kernel_radial_get_comp_support() reports for it. The
components sum to a window of unit integral.
NumCosmo.XcorKernelRadialClass.eval_kernel_factor
Evaluates a multiplicative factor of $(\chi, k)$ applied to component comp
on top of $W(\chi)\sqrt{P(k,0)}$. It must not depend on $\ell$: one closure
serves a whole block of multipoles, so anything $\ell$-dependent belongs in
nc_xcor_kernel_radial_eval_prefactor() instead.
NumCosmo.XcorKernelRadialClass.eval_prefactor
Evaluates a multiplicative factor that depends only on $\ell$, applied to
component comp. Shear contributes $\sqrt{(\ell+2)(\ell+1)\ell(\ell-1)}$ here.
NumCosmo.XcorKernelRadialClass.get_comp_bessel_deriv
Gets the derivative order of the spherical Bessel weight of component comp:
0 for $j_\ell$, 2 for the $j_\ell”$ of a redshift-space distortion term.
It is set on the NcXcorKernelComponent at construction.
NumCosmo.XcorKernelRadialClass.get_comp_support
Gets the interval outside which component comp vanishes. It is exactly the
interval that component is integrated over, so the boundary is exact by
construction rather than something the quadrature has to locate.
NumCosmo.XcorKernelRadialClass.get_n_comps
Gets the number of components the window is split into: its maximal intervals of support. Each is integrated separately over exactly its own interval, so that a boundary is never interior to an integration domain.