quantax.optimizer.pinvh_solve#

quantax.optimizer.pinvh_solve(rtol: float | None = None, atol: float = 0.0) Callable[[...], Array]#

Solver for a Hermitian linear equation \(H x = b\) via the pseudo-inverse of \(H\) obtained from its eigendecomposition. Unlike the other solvers, the input is the Hermitian matrix \(H\) itself rather than the rectangular \(A\), so this is used to solve the \(S \dot\theta = F\) equation in TimeEvol.

Parameters:
  • rtol – The relative tolerance for the pseudo-inverse. Eigenvalues smaller than rtol * max|eigenvalue| + atol are smoothly truncated. Default to \(10^{-12}\) for double precision and \(10^{-6}\) for single precision.

  • atol – The absolute tolerance for the pseudo-inverse, default to 0.

Returns:

A solver function with two arguments H and b and one output x as the solution of \(H x = b\).