mindspore.ops.cholesky_solve

mindspore.ops.cholesky_solve(input, input2, upper=False)[source]

Computes the solution of a set of linear equations with a positive definite matrix, according to its Cholesky decomposition factor input2 .

If upper is set to True and input2 is upper triangular, the output tensor is that:

\[output = (input2^{T} * input2)^{{-1}}input\]

If upper is set to False and input2 is lower triangular, the output is that:

\[output = (input2 * input2^{T})^{{-1}}input\]

Warning

This is an experimental API that is subject to change or deletion.

Parameters
  • input (Tensor) – Tensor of shape \((*, N, M)\), indicating 2D or 3D matrices, with float32 or float64 data type.

  • input2 (Tensor) – Tensor of shape \((*, N, N)\), indicating 2D or 3D square matrices composed of upper or lower triangular Cholesky factor, with float32 or float64 data type. input and input2 must have the same type.

  • upper (bool, optional) – A flag indicates whether to treat the Cholesky factor as an upper or a lower triangular matrix. Default: False, treating the Cholesky factor as a lower triangular matrix.

Returns

Tensor, has the same shape and data type as input.

Raises
  • TypeError – If upper is not a bool.

  • TypeError – If dtype of input and input2 is not float64 or float32.

  • TypeError – If input is not a Tensor.

  • TypeError – If input2 is not a Tensor.

  • ValueError – If input and input2 have different batch size.

  • ValueError – If input and input2 have different row numbers.

  • ValueError – If input is not 2D or 3D matrices.

  • ValueError – If input2 is not 2D or 3D square matrices.

Supported Platforms:

Ascend GPU CPU

Examples

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> input1 = Tensor(np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]]), mindspore.float32)
>>> input2 = Tensor(np.array([[2, 0, 0], [4, 1, 0], [-1, 1, 2]]), mindspore.float32)
>>> out = ops.cholesky_solve(input1, input2, upper=False)
>>> print(out)
[[ 5.8125 -2.625   0.625 ]
 [-2.625   1.25   -0.25  ]
 [ 0.625  -0.25    0.25  ]]