autoarray.inversion.regularization.Constant#

class Constant[source]#

Bases: AbstractRegularization

Regularization which uses the neighbors of the mesh (e.g. shared Delaunay vertexes) and a single value to smooth an inversion’s solution.

For this regularization scheme, there is only 1 regularization coefficient that is applied to all neighboring pixels / parameters. This means that the matrix B only needs to regularize pixels / parameters in one direction (e.g. pixel 0 regularizes pixel 1, but NOT visa versa). For example:

B = [-1, 1] [0->1]

[0, -1] 1 does not regularization with 0

A small numerical value of 1.0e-8 is added to all elements in constant regularization matrix, to ensure that it is positive definite.

A full description of regularization and this matrix can be found in the parent AbstractRegularization class.

JAX & gradient support (2026-07 gradient sweep): on meshes with an analytic neighbor structure (the rectangular family) this scheme is JAX-differentiable and FD-certified. On the Delaunay mesh family (Delaunay, DelaunayNN, KNearestNeighbor, KNNBarycentric) the neighbors come from a direct scipy.spatial.Delaunay call on the traced source-plane mesh grid, so it raises TracerArrayConversionError under jax.jit / jax.grad — use a split-family scheme (e.g. ConstantSplit) there instead.

Parameters:

coefficient (float) – The regularization coefficient which controls the degree of smooth of the inversion reconstruction.

Methods

log_det_regularization_matrix_term_from

Returns log det H of this scheme's regularization matrix computed from a factorization the scheme itself knows about, or None when no such shortcut exists (the default).

regularization_matrix_from

Returns the regularization matrix with shape [pixels, pixels].

regularization_term_from

Returns this scheme's contribution to the regularization term s^T H s computed from a factorization the scheme itself knows about, or None when no such shortcut exists (the default).

regularization_weights_from

Returns the regularization weights of this regularization scheme.

Attributes

is_split_regularization

Whether this scheme is a "split" regularization variant, which regularizes using a split-cross calculation of the mesh's mappings rather than the mappings themselves.

regularization_weights_from(linear_obj, xp=<module 'numpy' from '/home/docs/checkouts/readthedocs.org/user_builds/pyautogalaxy/envs/latest/lib/python3.12/site-packages/numpy/__init__.py'>)[source]#

Returns the regularization weights of this regularization scheme.

The regularization weights define the level of regularization applied to each parameter in the linear object (e.g. the pixels in a Mapper).

For standard regularization (e.g. Constant) are weights are equal, however for adaptive schemes (e.g. Adapt) they vary to adapt to the data being reconstructed.

Parameters:

linear_obj (LinearObj) – The linear object (e.g. a Mapper) which uses these weights when performing regularization.

Return type:

The regularization weights.

regularization_matrix_from(linear_obj, xp=<module 'numpy' from '/home/docs/checkouts/readthedocs.org/user_builds/pyautogalaxy/envs/latest/lib/python3.12/site-packages/numpy/__init__.py'>)[source]#

Returns the regularization matrix with shape [pixels, pixels].

Parameters:

linear_obj (LinearObj) – The linear object (e.g. a Mapper) which uses this matrix to perform regularization.

Return type:

The regularization matrix.