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.

nc_xcor_kernel_radial_peek_kdep

Gets the scale-dependent factor the kernel carries, if any.

Methods inherited from NcXcorKernel (42)

Please see NcXcorKernel for a full list of methods.

Methods inherited from NcmModel (91)

Please see NcmModel for a full list of methods.

Methods inherited from GObject (43)

Please see GObject 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
No description available.

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
No description available.

NumCosmo.XcorKernel:expansion-factor
No description available.

NumCosmo.XcorKernel:integrator
No description available.

NumCosmo.XcorKernel:l-limber
No description available.

NumCosmo.XcorKernel:lmax
No description available.

NumCosmo.XcorKernel:max-border-expansions
No description available.

NumCosmo.XcorKernel:max-iter
No description available.

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
No description available.

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.