mindspore.scipy.linalg.cholesky

mindspore.scipy.linalg.cholesky(a, lower=False, overwrite_a=False, check_finite=True)[source]

Compute the cholesky decomposition of a matrix.

Returns the cholesky decomposition of a Hermitian positive-definite matrix A. Base on the value of lower, perform the following decomposition:

  • when lower is True: \(A = L L^*\)

  • when lower is False: \(A = U^* U\)

\(L^*\) is a conjugate transpose matrix of L. \(U^*\) is a conjugate transpose matrix of U.

Note

  • cholesky is not supported on Windows platform yet.

  • Only float32, float64, int32, int64 are supported Tensor dtypes.

  • If Tensor with dtype int32 or int64 is passed, it will be cast to mstype.float64.

Parameters
  • a (Tensor) – square Matrix of \((M, M)\) to be decomposed.

  • lower (bool, optional) – Whether to compute the upper- or lower-triangular cholesky factorization. Default: False .

  • overwrite_a (bool, optional) – Whether to overwrite data in a (may improve performance). Default: False . in mindspore, this arg does not work right now.

  • check_finite (bool, optional) – Whether to check that the input matrix contains only finite numbers. Disabling may give a performance gain, but may result in problems (crashes, non-termination) if the inputs do contain infinities or NaNs. Default: True . in mindspore, this arg does not work right now.

Returns

Tensor, upper- or lower-triangular cholesky factor of a.

Raises

ValueError – If input a tensor is not a square matrix or it's dims not equal to 2D.

Supported Platforms:

GPU CPU

Examples

>>> import numpy as onp
>>> from mindspore import Tensor
>>> from mindspore.scipy.linalg import cholesky
>>> a = Tensor(onp.array([[1, 2],[2, 5]]).astype(onp.float32))
>>> L = cholesky(a, lower=True)
>>> print(L)
[[1. 0.]
 [2. 1.]]