svd Interface

public interface svd

This interface overloads the svd interface from stdlib_linalg to compute the the singular value decomposition of a Bidiagonal matrix .

Syntax

   call svd(A, s [, u] [, vt])

Arguments

  • A : Matrix of Bidiagonal 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.


Subroutines

private module subroutine svd_rdp(A, s, u, vt)

Compute the singular value decomposition of a Bidiagonal matrix.

Arguments

Type IntentOptional Attributes Name
type(Bidiagonal), 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.