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 NcGalaxyShapePop‘s 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 onNcGalaxyWLObsEllipConv.NcGalaxyShapePop‘s 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.NcGalaxyShapePopGausscomposes $\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
NcGalaxyShapePopBeta‘s $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.
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
Methods inherited from NcGalaxyShapeFactor (27)
Please see NcGalaxyShapeFactor 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.