Coverage for src/cvxcla/operators/__init__.py: 100%
3 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-11 09:58 +0000
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-11 09:58 +0000
1"""Operator layer for the Critical Line Algorithm.
3The turning-point loop reaches its Hessian (the covariance ``Sigma``, or the Gram
4matrix ``X.T @ X`` for a LASSO / LARS path) through the cvx-linalg
5:class:`~cvx.linalg.SymmetricOperator` protocol: matrix-vector and sub-block
6products, a free-block solve, and a reciprocal-condition check. This package no
7longer defines its own operator classes -- the backends (dense, matrix-free Gram,
8diagonal-plus-low-rank Woodbury, and a maintained-inverse dense variant) live in
9:mod:`cvx.linalg`. What remains here is thin:
11- :data:`QuadraticForm` / :data:`CovarianceOperator`: aliases of
12 :class:`cvx.linalg.SymmetricOperator`, the loop's backend contract.
13- builders (:mod:`cvxcla.operators.builders`) that assemble the right cvx-linalg
14 operator from CLA / LASSO inputs, kept under the familiar ``*Covariance`` names.
15- :func:`bordered_solve` and :func:`cross`, the parametric-path helpers built on
16 the operator protocol.
17"""
19from ._core import CovarianceOperator, QuadraticForm, bordered_solve, cross
20from .builders import (
21 DenseCovariance,
22 FactorCovariance,
23 GramCovariance,
24 IncrementalDenseCovariance,
25 dense_covariance,
26 factor_covariance,
27 gram_covariance,
28 incremental_dense_covariance,
29)
31__all__ = [
32 "CovarianceOperator",
33 "DenseCovariance",
34 "FactorCovariance",
35 "GramCovariance",
36 "IncrementalDenseCovariance",
37 "QuadraticForm",
38 "bordered_solve",
39 "cross",
40 "dense_covariance",
41 "factor_covariance",
42 "gram_covariance",
43 "incremental_dense_covariance",
44]