This interface overloads the svd interface from stdlib_linalg to
compute the the singular value decomposition of a Toeplitz matrix
.
call svd(A, s, u, vt)
A : Matrix of Toeplitz type.
It is an intent(in) argument.
s : Rank-1 array real array returning the singular values of
A. It is an intent(out) argument.
u (optional) : Rank-2 array of the same kind as A returning
the left singular vectors of A as columns. Its
size should be [n, n].
It is an intent(out) argument.
vt (optional) : Rank-2 array of the same kind as A returning
the right singular vectors of A as rows. Its
size should be [n, n]. It is an intent(out)
argument.
Note
No analytic expression exist for the singular value of a general
Toeplitz matrix. Under the hood, the matrix A is converted to
its dense representation and the function svdvals from
stdlib_linalg is used.
Compute the singular value decomposition of a Toeplitz matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(Toeplitz), | intent(in) | :: | A |
Input matrix. |
||
| real(kind=dp), | intent(out) | :: | s(:) |
Singular values in descending order. |
||
| real(kind=dp), | intent(out), | optional | :: | u(:,:) |
Left singular vectors as columns. |
|
| real(kind=dp), | intent(out), | optional | :: | vt(:,:) |
Right singular vectors as rows. |