liblaf.peach.linalg.base
¶
Base protocols and result containers for linear solvers.
Classes:
-
BaseProblem–Marker protocol for linear-system problems.
-
LinearSolver–Base class for linear solvers.
-
Problem–Protocol for a linear system
A x = b. -
Result–Result code returned by linear solvers.
-
Solution–Linear-solver output bundle.
-
State–Protocol for solver states that expose solution parameters.
-
Stats–Protocol for solver-specific summary statistics.
BaseProblem
¶
Bases: Protocol
flowchart TD
liblaf.peach.linalg.base.BaseProblem[BaseProblem]
click liblaf.peach.linalg.base.BaseProblem href "" "liblaf.peach.linalg.base.BaseProblem"
Marker protocol for linear-system problems.
LinearSolver
¶
Base class for linear solvers.
Methods:
-
compute–Run one complete solve from an initialized state.
-
init–Create solver state from an initial parameter vector.
-
postprocess–Wrap final state and result metadata in a solution object.
-
solve–Initialize, compute, and postprocess a linear solve.
compute
¶
compute(problem: BaseProblem, state: S) -> Result
init
¶
init(problem: BaseProblem, params: Vector) -> S
postprocess
¶
postprocess(
problem: BaseProblem, state: S, result: Result
) -> Solution[S, T]
Wrap final state and result metadata in a solution object.
Source code in src/liblaf/peach/linalg/base/_solver.py
solve
¶
solve(
problem: BaseProblem, params: Vector
) -> Solution[S, T]
Initialize, compute, and postprocess a linear solve.
Source code in src/liblaf/peach/linalg/base/_solver.py
Problem
¶
Bases: Protocol
flowchart TD
liblaf.peach.linalg.base.Problem[Problem]
click liblaf.peach.linalg.base.Problem href "" "liblaf.peach.linalg.base.Problem"
Protocol for a linear system A x = b.
Methods:
-
matvec–Apply the system matrix to
x. -
precondition–Apply an optional left preconditioner to
x. -
rmatvec–Apply the transpose or adjoint system matrix to
x. -
rprecondition–Apply an optional transpose or adjoint preconditioner to
x.
Attributes:
-
b(Vector) –Right-hand-side vector.
Result
¶
Bases: StrEnum
flowchart TD
liblaf.peach.linalg.base.Result[Result]
click liblaf.peach.linalg.base.Result href "" "liblaf.peach.linalg.base.Result"
Result code returned by linear solvers.
Attributes:
-
BREAKDOWN– -
MAX_STEPS_REACHED– -
PRIMARY_SUCCESS– -
SECONDARY_SUCCESS– -
SUCCESS– -
UNKNOWN_ERROR– -
success(bool) –Whether the result represents an accepted solution.