ott.solvers.linear.lineax_implicit.solve_lineax(lin, b, lin_t=None, symmetric=False, nonsym_solver=None, ridge_identity=0.0, ridge_kernel=0.0, **kwargs)[source]#

Wrapper around lineax solvers.

  • lin (Callable) – Linear operator

  • b (Array) – vector. Returned x is such that lin(x)=b

  • lin_t (Optional[Callable]) – Linear operator, corresponding to transpose of lin.

  • symmetric (bool) – whether lin is symmetric.

  • nonsym_solver (Optional[AbstractLinearSolver]) – solver used when handling non-symmetric cases. Note that CG is used by default in the symmetric case.

  • ridge_kernel (float) – promotes zero-sum solutions. Only use if tau_a = tau_b = 1.0

  • ridge_identity (float) – handles rank deficient transport matrices (this happens typically when rows/cols in cost/kernel matrices are collinear, or, equivalently when two points from either measure are close).

  • kwargs (Any) – arguments passed to AbstractLinearSolver linear solver.

Return type: