Class

NumCosmoGalaxyShapeFactorSeriesLensed

Description [src]

final class NumCosmo.GalaxyShapeFactorSeriesLensed : NumCosmo.GalaxyShapeFactor
{
  /* No available fields */
}

Lensed-frame series evaluation of the intrinsic-ellipticity marginal, both ellipticity conventions, arbitrary truncation order, any population model implementing NcGalaxyShapePops eval_p_rho2_g_series vfunc (currently NcGalaxyShapePopGauss, NcGalaxyShapePopGaussLocal and NcGalaxyShapePopBeta).

Changes to the LENSED frame (same substitution NcGalaxyShapeFactorQuad uses) and Taylor-expands the population term in $g$, keeping the noise kernel exact:

marginal(eps_obs) = Int d^2chi_L [P_pop(f_{-g}(chi_L)) |Jac(f_{-g})(chi_L)|] * N_2(eps_obs - chi_L; sigma_noise^2)

The bracketed term $F_g(\chi_L)$ is Taylor-expanded in $g$ at fixed $\chi_L$; its coefficients scale with $1/\sigma_\mathrm{pop}^2$, and $\sigma_\mathrm{pop}$ is a population/prior parameter this project hard-constrains away from being pathologically small (see docs/theory/wl_shape_factor_history.md for why this matters relative to expanding the noise kernel instead).

This class is a thin orchestrator over two collaborators, each owning its own closed-form derivation and doing its own construction-time allocation:

  • NcWLEllipticitySeriesTrace / NcWLEllipticitySeriesTraceDet (nc_wl_ellipticity_series.h) supply $\chi_I(\chi_L,g)$’s Jacobian series and $|\chi_I(\chi_L,g)|^2$’s series (population-independent, pure shear-map output), one object per ellipticity convention, chosen once per workspace based on NcGalaxyWLObsEllipConv.
  • NcGalaxyShapePops eval_p_rho2_g_series vfunc composes $P_\mathrm{pop}(\chi_I(\chi_L,g))$’s own $g$-Taylor series from that $|\chi_I|^2$ series — e.g. NcGalaxyShapePopGauss composes $\exp(-|\chi_I|^2/2\sigma_\mathrm{pop}^2)$ via the standard exp-of-power-series recursion, with the $g^0$ term ($\chi_I(g=0)=\chi_L\neq0$) factored out as a scalar prefactor first.

$F_g(\chi_L)$ itself is just $P_\mathrm{pop}(\chi_I(\chi_L,g))$’s series convolved with the Jacobian series (ncm_laurent_series_tps_conv()).

$\theta$-integral done EXACTLY via Jacobi-Anger (ncm_laurent_series_jacobi_anger_reduce()); $\rho$-integral a fixed, windowed Gauss-Legendre quadrature (see

NC_GALAXY_SHAPE_FACTOR_SERIES_LENSED_WINDOW_NSIGMA). Caching is

two-layered, per galaxy: the Jacobi-Anger reduction’s own $\phi$-independent harmonic sums $H$ (the expensive part: Bessel functions and Laurent-series algebra over the whole $\rho$ quadrature) are keyed to $(R,\sigma_\mathrm{noise},\text{pop_hash})$ — deliberately NOT to $\phi$, which is the argument of $g=(1+m)g_\mathrm{true}+c_1+ic_2$ and so drifts with $g$ whenever the galaxy’s additive bias is nonzero. $J[0..\mathrm{order}]$, the actual Horner-method polynomial coefficients, is instead recomputed from $H$ on every call via a cheap trig-polynomial evaluation (_finalize_J()), tracking $\phi$’s drift at negligible cost.

A population that does not implement eval_p_rho2_g_series errors clearly the first time this class actually needs it (base class default), rather than at prepare() time.

The $g$-Taylor series’ own radius of convergence is set by eval_p’s nearest non-analytic point in $x=|\chi_I|^2$: entire for the Gaussian family (NcGalaxyShapePopGauss, NcGalaxyShapePopGaussLocal), so any $g$ this project’s own small-shear regime allows works; but NcGalaxyShapePopBetas $P(x)\propto x^{\alpha-1}(1-x)^{\beta-1}$ has a branch point at $x=0$ (if $\alpha<1$) and/or $x=1$ (if $\beta<1$), so the series can diverge at even modest $g$ once the $\rho$ quadrature comes close enough to that point — confirmed by raising trunc_order making such cases worse, the standard signature of evaluating a Taylor series outside its own disk of convergence, rather than better as truncation error alone would predict. $\alpha,\beta>1$ (an interior-peaked, everywhere-smooth density) has no such restriction.

See A Small-Shear Series Marginalization for the Shape Likelihood and dev-notes/wl_shape_series_marginalization_derivation.py sections 9-11 for the full derivation and symbolic/numeric verification this class mirrors.

Constructors

nc_galaxy_shape_factor_series_lensed_new

Creates a new NcGalaxyShapeFactorSeriesLensed.

Functions

nc_galaxy_shape_factor_series_lensed_clear

Decreases the reference count of gsfsl by one, and sets the pointer gsfsl to NULL.

Instance methods

nc_galaxy_shape_factor_series_lensed_free

Decreases the reference count of gsfsl by one.

nc_galaxy_shape_factor_series_lensed_ref

Increases the reference count of gsfsl by one.

Methods inherited from NcGalaxyShapeFactor (27)

Please see NcGalaxyShapeFactor for a full list of methods.

Methods inherited from GObject (43)

Please see GObject for a full list of methods.

Properties

NumCosmo.GalaxyShapeFactorSeriesLensed:n-nodes

Number of fixed Gauss-Legendre nodes used for the per-galaxy radial ($\rho$) integral. Default 60.

NumCosmo.GalaxyShapeFactorSeriesLensed:trunc-order

Truncation order $N$ of the $g$-power series (both conventions’ closed forms generate any order equally easily). Default 4.

Properties inherited from NcGalaxyShapeFactor (1)
NumCosmo.GalaxyShapeFactor:ellip-conv

Weak lensing observables ellipticity convention NcGalaxyWLObsEllipConv.

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 NumCosmoGalaxyShapeFactorSeriesLensedClass {
  NcGalaxyShapeFactorClass parent_class;
  
}

No description available.

Class members
parent_class: NcGalaxyShapeFactorClass

No description available.