Class

NumCosmoXcorSolver

Description [src]

final class NumCosmo.XcorSolver : GObject.Object
{
  /* No available fields */
}

Batched register/request/solve interface for NcXcorKernel angular power spectra.

This is the “companion object” from dev-notes/xcor_ultralevin_batching_plan.md sec. 5: it lets a caller declare every kernel and every desired auto/cross Cl block up front (nc_xcor_solver_register_kernel() / nc_xcor_solver_request_cl()), so a future nc_xcor_solver_solve() can pick an $\ell$-block tiling and build each distinct kernel’s k-space closure exactly once per block, shared across every request that needs it in that block — instead of rebuilding it once per pair, as NcXcor‘s single-pair nc_xcor_compute() does today.

This phase (registration) does no computation at all: it only records which kernels and which (kernel pair, $\ell$-range) blocks are wanted. nc_xcor_solver_register_kernel() is idempotent by pointer identity — registering the same NcXcorKernel instance twice returns the same id.

NcXcor itself stays untouched and close to stateless per-call; this object exists precisely so bolting registration/request state onto NcXcor doesn’t change its contract for existing callers of nc_xcor_compute().

Ancestors

Constructors

nc_xcor_solver_new

Creates a new, empty NcXcorSolver.

Functions

nc_xcor_solver_clear

If solver is not NULL, decrements its reference count, freeing it if the count reaches 0, and sets solver to NULL.

Instance methods

nc_xcor_solver_clear_requests

Removes all requests, keeping registered kernels intact. Useful to reuse the same kernel registration across several rounds of requests.

nc_xcor_solver_free

Decrements the reference count of solver, freeing it if the count reaches 0.

nc_xcor_solver_get_block

Retrieves the $\ell$-range of a block planned by nc_xcor_solver_plan_blocks(), in ascending order and non-overlapping.

nc_xcor_solver_get_n_blocks
No description available.

nc_xcor_solver_get_n_kernels
No description available.

nc_xcor_solver_get_n_requests
No description available.

nc_xcor_solver_get_request

Retrieves the details of a previously-made request, in registration order.

nc_xcor_solver_get_result
No description available.

nc_xcor_solver_peek_block_integrator
No description available.

nc_xcor_solver_peek_kernel
No description available.

nc_xcor_solver_plan_blocks

Tiles the union of all requested $\ell$-ranges into contiguous blocks, each covering at most default_block_size multipoles, further capped by

NC_XCOR_KERNEL_MAX_ELL_BLOCK. A block also never straddles a registered

kernel’s l_limber threshold, since a kernel evaluated in Limber mode below l_limber and non-Limber mode above it needs the switch to fall on a block boundary.

nc_xcor_solver_ref

Increments the reference count of solver.

nc_xcor_solver_register_kernel

Registers xclk with solver, returning an id to use in nc_xcor_solver_request_cl(). Idempotent by pointer identity: registering the same xclk instance again returns the same id without adding a second entry.

nc_xcor_solver_request_cl

Declares one desired output block: the auto- or cross-Cl of the kernels identified by kernel_id_1 and kernel_id_2, over $\ell$ in [lmin, lmax]. Call once per entry in the data vector / covariance block ultimately needed. Registration-only: no computation happens here.

nc_xcor_solver_set_integrator

Sets the integrator solver copies once per ell-block. Every block gets its own copy of sbi, pinned to that block’s multipole range, so all registered kernels share one integrator per block instead of each carrying its own.

nc_xcor_solver_solve

Computes every requested Cl block. Requires nc_xcor_solver_plan_blocks() to have been called first. Replaces any results from a previous nc_xcor_solver_solve() call.

Methods inherited from GObject (43)

Please see GObject for a full list of methods.

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 NumCosmoXcorSolverClass {
  GObjectClass parent_class;
  
}

No description available.

Class members
parent_class: GObjectClass

No description available.