Method

NumCosmoXcorKernelget_eval_vectorized_full

Declaration [src]

NcXcorKernelIntegrand*
nc_xcor_kernel_get_eval_vectorized_full (
  NcXcorKernel* xclk,
  NcHICosmo* cosmo,
  gint lmin,
  gint lmax,
  NcmSBesselIntegrator* sbi,
  NcXcorKernelClosure closure_type
)

Description [src]

Same as nc_xcor_kernel_get_eval_vectorized(), but integrates with sbi instead of the kernel’s integrator property.

A NcmSBesselIntegratorLevin holds reusable state tied to one multipole range, so a caller computing several ell blocks does better keeping one integrator per block and passing it in here than letting every kernel carry its own. Passing the integrator rather than storing it also keeps xclk free of per-call state, so one kernel can be evaluated for several blocks at once as long as each gets its own sbi.

sbi is unused below the kernel’s l-limber threshold, where no spherical Bessel integral is performed.

Parameters

cosmo

Type: NcHICosmo

A NcHICosmo.

The data is owned by the caller of the method.
lmin

Type: gint

Minimum multipole.

lmax

Type: gint

Maximum multipole.

sbi

Type: NcmSBesselIntegrator

The NcmSBesselIntegrator to use, or NULL for xclk‘s own.

The argument can be NULL.
The data is owned by the caller of the method.
closure_type

Type: NcXcorKernelClosure

How to represent the sampled window, see NcXcor:closure-type.

Return value

Type: NcXcorKernelIntegrand

The kernel integrand over [lmin, lmax].

The caller of the method takes ownership of the returned data, and is responsible for freeing it.