Class

NumCosmoXcorKernelComponent

Description [src]

abstract class NumCosmo.XcorKernelComponent : GObject.Object
{
  /* No available fields */
}

Abstract base class for cross-correlation kernel components.

Subclasses must implement:

  • eval_kernel: evaluates K(k, chi) for the component
  • eval_prefactor: evaluates any k and $\ell$-dependent prefactor

Optionally, subclasses can implement:

  • get_limits: returns valid integration ranges for chi and k

The class analyzes KL(k, x/k) with the Limber approximation.

Edges belong in get_limits, never inside eval_kernel

get_limits declares where the component lives, and the radial integral is confined to the $[\chi_\mathrm{min}, \chi_\mathrm{max}]$ it reports. eval_kernel is therefore only ever called inside that range and must not test against it: a component with a sharp edge returns its interior value unconditionally and lets the limits carry the edge. NcXcorKernelClusterTophat is the clearest case, an indicator function whose eval_kernel returns 1.

This places the edge on a panel boundary rather than inside one. A step written into eval_kernel would be integrated across, and the Chebyshev fit of the radial integrand cannot resolve a discontinuity in its interior: it refines until it reaches max-order and aborts. A component that is only piecewise smooth within its support has the same problem at each interior kink. Split it into one component per smooth piece, so that every break is a limit.

A sharp edge remains more expensive even when declared correctly. It gives $W_\ell(k)$ a $1/k$ tail rather than an exponential one, so more of k-space stays above the closure’s absolute floor: on the same comoving shell and tolerances, a cluster top-hat needs 541 k-space knots over 0.061-4800 against a Gaussian’s 161 over 0.064-480. Each knot is one radial solve.

Ancestors

Functions

nc_xcor_kernel_component_clear

Decreases the reference count of comp by one and sets comp to NULL.

Instance methods

nc_xcor_kernel_component_eval_KL_max

Evaluates the maximum value of KL(k, x/k) at the given x value from kernel analysis using the Limber approximation $K_L = \sqrt{\pi/(2x)}\,K(x/k, k)/k$. This is the value of KL at k = k_max(x).

nc_xcor_kernel_component_eval_k_epsilon

Evaluates k_epsilon at the given x value from kernel analysis, where k_epsilon is the value of k (beyond k_max) where KL(k, x/k) drops to epsilon times KL_max.

nc_xcor_kernel_component_eval_k_max

Evaluates k_max at the given x value from kernel analysis, where k_max is the value of k that maximizes KL(k, x/k) for this x.

nc_xcor_kernel_component_eval_kernel

Evaluates the kernel function K(k, chi) for this component.

nc_xcor_kernel_component_eval_prefactor

Evaluates the prefactor that may depend on k and ell.

nc_xcor_kernel_component_free

Decreases the reference count of comp by one. If the reference count reaches zero, the object is freed.

nc_xcor_kernel_component_get_bessel_deriv

Gets the derivative order of the spherical Bessel weight.

nc_xcor_kernel_component_get_epsilon

Gets the epsilon value used in kernel analysis.

nc_xcor_kernel_component_get_limits

Gets the valid integration ranges for this component.

nc_xcor_kernel_component_get_max_iter

Gets the maximum number of iterations for GSL solvers.

nc_xcor_kernel_component_get_ny

Gets the number of x points used in kernel analysis.

nc_xcor_kernel_component_get_tol

Gets the tolerance for GSL solvers.

nc_xcor_kernel_component_prepare

Prepares the kernel component by analyzing its behavior over the valid ranges. This method calls get_limits to obtain the integration ranges, then studies KL(k, x/k) using the Limber approximation to compute k_max(x), KL_max(x), and k_epsilon(x) using GSL Brent minimizer and root finder with warm starts.

nc_xcor_kernel_component_ref

Increases the reference count of comp by one.

nc_xcor_kernel_component_set_bessel_deriv

Sets the derivative order $d$ of the spherical Bessel weight: the component contributes to the kernel through $\int K(\chi, k)\, j_\ell^{(d)}(k\chi)\, \mathrm{d}\chi$.

nc_xcor_kernel_component_set_epsilon

Sets the epsilon value used in kernel analysis to determine where KL(k, x/k) drops to epsilon * KL_max.

nc_xcor_kernel_component_set_max_iter

Sets the maximum number of iterations for GSL minimizer and root finder.

nc_xcor_kernel_component_set_ny

Sets the number of x points to use in kernel analysis.

nc_xcor_kernel_component_set_tol

Sets the tolerance for GSL minimizer and root finder.

Methods inherited from GObject (43)

Please see GObject for a full list of methods.

Properties

NumCosmo.XcorKernelComponent:bessel-deriv

Derivative order of the spherical Bessel weight in the component’s radial integral: the component contributes with $j_\ell^{(d)}(k\chi)$ instead of $j_\ell(k\chi)$. Order 2 is the redshift-space-distortion weight.

NumCosmo.XcorKernelComponent:epsilon

The epsilon value for kernel analysis, determining where KL(k, x/k) drops to epsilon * KL_max.

NumCosmo.XcorKernelComponent:max-iter

Maximum iterations for GSL solvers.

NumCosmo.XcorKernelComponent:ny

Number of x points for kernel analysis.

NumCosmo.XcorKernelComponent:tol

Tolerance for GSL solvers.

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 NumCosmoXcorKernelComponentClass {
  /* no available fields */
}

No description available.

Virtual methods

NumCosmo.XcorKernelComponentClass.eval_kernel

Evaluates the kernel function K(k, chi) for this component.

NumCosmo.XcorKernelComponentClass.eval_prefactor

Evaluates the prefactor that may depend on k and ell.

NumCosmo.XcorKernelComponentClass.get_limits

Gets the valid integration ranges for this component.