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=(input2Tinput2)1input

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

output=(input2input2T)1input

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  ]]