jax.lax.linalg.triangular_solve

jax.lax.linalg.triangular_solve#

jax.lax.linalg.triangular_solve(a, b, *, left_side=False, lower=False, transpose_a=False, conjugate_a=False, unit_diagonal=False)[source]#

Triangular solve.

Solves either the matrix equation

\[\mathit{op}(A) . X = B\]

if left_side is True or

\[X . \mathit{op}(A) = B\]

if left_side is False.

A must be a lower or upper triangular square matrix, and where \(\mathit{op}(A)\) may either transpose \(A\) if transpose_a is True and/or take its complex conjugate if conjugate_a is True.

Parameters:
  • a (Union[Array, ndarray, bool_, number, bool, int, float, complex]) – A batch of matrices with shape [..., m, m].

  • b (Union[Array, ndarray, bool_, number, bool, int, float, complex]) – A batch of matrices with shape [..., m, n] if left_side is True or shape [..., n, m] otherwise.

  • left_side (bool) – describes which of the two matrix equations to solve; see above.

  • lower (bool) – describes which triangle of a should be used. The other triangle is ignored.

  • transpose_a (bool) – if True, the value of a is transposed.

  • conjugate_a (bool) – if True, the complex conjugate of a is used in the solve. Has no effect if a is real.

  • unit_diagonal (bool) – if True, the diagonal of a is assumed to be unit (all 1s) and not accessed.

Return type:

Array

Returns:

A batch of matrices the same shape and dtype as b.