mindspore.ops.geqrf

mindspore.ops.geqrf(input)[source]

Decomposes a matrix into the product of an orthogonal matrix Q and an upper triangular matrix R. The process is called QR decomposition: \(A = QR\).

Both Q and R matrices are stored in the same output tensor y. The elements of R are stored on and above the diagonal, whereas elementary reflectors (or Householder vectors) implicitly defining matrix Q are stored below the diagonal.

This function returns two tensors (y, tau).

Warning

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

Parameters

input (Tensor) – Tensor of shape \((*, m, n)\), input must be a matrix greater than or equal to 2D, with dtype of float32, float64, complex64, complex128.

Returns

  • y (Tensor) - Tensor of shape \((*, m, n)\), has the same dtype as the input.

  • tau (Tensor) - Tensor of shape \((*, p)\) and \(p = min(m, n)\), has the same dtype as the input.

Raises
  • TypeError – If input is not a Tensor.

  • TypeError – If the dtype of input is not float32, float64, complex64 or complex128.

  • ValueError – If dimension of input is less than 2.

Supported Platforms:

Ascend GPU CPU

Examples

>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> input = Tensor(np.array([[-2.0, -1.0], [1.0, 2.0]]).astype(np.float32))
>>> y, tau = ops.geqrf(input)
>>> print(y)
[[ 2.236068   1.7888544]
[-0.236068   1.3416407]]
>>> print(tau)
[1.8944271 0.       ]