Covariance Estimation#

class jaxls.CovarianceEstimator[source]#

Abstract base class for covariance estimation.

Covariance estimators compute blocks of the covariance matrix (J^T J)^{-1}, representing uncertainty in the tangent space of estimated variables.

See AnalyzedLeastSquaresProblem.make_covariance_estimator() for constructing covariance estimators.

abstract covariance(var0: Var[Any], var1: Var[Any] | None = None) Array[source]#

Compute covariance block between two variables.

Parameters:
  • var0 (Var[Any]) – First variable (determines rows of the covariance block).

  • var1 (Var[Any] | None) – Second variable (determines columns). If None, returns the marginal covariance Cov(var0, var0).

Returns:

Covariance block of shape (var0.tangent_dim, var1.tangent_dim).

Return type:

Array

class jaxls.LinearSolverCovarianceEstimatorConfig[source]#

Configuration for covariance estimation using linear solves.

This estimator computes covariance blocks by solving (J^T J) x = e_i for each tangent dimension. It is flexible and GPU-friendly (with CG), but requires linear solves for each covariance() call.

linear_solver: Literal['conjugate_gradient', 'dense_cholesky'] | ConjugateGradientConfig = 'conjugate_gradient'#

Linear solver for computing covariance columns.

  • “conjugate_gradient”: Iterative solver, GPU-friendly, uses block-Jacobi preconditioner. Converges quickly when variables are weakly correlated.

  • “dense_cholesky”: Direct solver, caches Cholesky factor for efficient repeated solves. Only suitable for small-medium problems.

  • ConjugateGradientConfig: Custom CG configuration. Note that Eisenstat-Walker tolerance parameters are ignored; only tolerance_min is used.