|
fortran-lapack
|
SVD drivers: QR iteration and the rank-revealing preconditioned variant. More...
Functions/Subroutines | |
| subroutine, public | la_sgesvd (jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info) |
| SGESVD: computes the singular value decomposition (SVD) of a real M-by-N matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * transpose(V) where SIGMA is an M-by-N matrix which is zero except for its min(m,n) diagonal elements, U is an M-by-M orthogonal matrix, and V is an N-by-N orthogonal matrix. The diagonal elements of SIGMA are the singular values of A; they are real and non-negative, and are returned in descending order. The first min(m,n) columns of U and V are the left and right singular vectors of A. Note that the routine returns V**T, not V. | |
| subroutine, public | la_dgesvd (jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info) |
| DGESVD: computes the singular value decomposition (SVD) of a real M-by-N matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * transpose(V) where SIGMA is an M-by-N matrix which is zero except for its min(m,n) diagonal elements, U is an M-by-M orthogonal matrix, and V is an N-by-N orthogonal matrix. The diagonal elements of SIGMA are the singular values of A; they are real and non-negative, and are returned in descending order. The first min(m,n) columns of U and V are the left and right singular vectors of A. Note that the routine returns V**T, not V. | |
| subroutine, public | la_qgesvd (jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info) |
| QGESVD: computes the singular value decomposition (SVD) of a real M-by-N matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * transpose(V) where SIGMA is an M-by-N matrix which is zero except for its min(m,n) diagonal elements, U is an M-by-M orthogonal matrix, and V is an N-by-N orthogonal matrix. The diagonal elements of SIGMA are the singular values of A; they are real and non-negative, and are returned in descending order. The first min(m,n) columns of U and V are the left and right singular vectors of A. Note that the routine returns V**T, not V. | |
| subroutine, public | la_sgesvdq (joba, jobp, jobr, jobu, jobv, m, n, a, lda, s, u, ldu, v, ldv, numrank, iwork, liwork, work, lwork, rwork, lrwork, info) |
| SGESVDQ: computes the singular value decomposition (SVD) of a real M-by-N matrix A, where M >= N. The SVD of A is written as [++] [xx] [x0] [xx] A = U * SIGMA * V^*, [++] = [xx] * [ox] * [xx] [++] [xx] where SIGMA is an N-by-N diagonal matrix, U is an M-by-N orthonormal matrix, and V is an N-by-N orthogonal matrix. The diagonal elements of SIGMA are the singular values of A. The columns of U and V are the left and the right singular vectors of A, respectively. | |
| subroutine, public | la_dgesvdq (joba, jobp, jobr, jobu, jobv, m, n, a, lda, s, u, ldu, v, ldv, numrank, iwork, liwork, work, lwork, rwork, lrwork, info) |
| DGESVDQ: computes the singular value decomposition (SVD) of a real M-by-N matrix A, where M >= N. The SVD of A is written as [++] [xx] [x0] [xx] A = U * SIGMA * V^*, [++] = [xx] * [ox] * [xx] [++] [xx] where SIGMA is an N-by-N diagonal matrix, U is an M-by-N orthonormal matrix, and V is an N-by-N orthogonal matrix. The diagonal elements of SIGMA are the singular values of A. The columns of U and V are the left and the right singular vectors of A, respectively. | |
| subroutine, public | la_qgesvdq (joba, jobp, jobr, jobu, jobv, m, n, a, lda, s, u, ldu, v, ldv, numrank, iwork, liwork, work, lwork, rwork, lrwork, info) |
| QGESVDQ: computes the singular value decomposition (SVD) of a real M-by-N matrix A, where M >= N. The SVD of A is written as [++] [xx] [x0] [xx] A = U * SIGMA * V^*, [++] = [xx] * [ox] * [xx] [++] [xx] where SIGMA is an N-by-N diagonal matrix, U is an M-by-N orthonormal matrix, and V is an N-by-N orthogonal matrix. The diagonal elements of SIGMA are the singular values of A. The columns of U and V are the left and the right singular vectors of A, respectively. | |
| subroutine, public | la_cgesvd (jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info) |
| CGESVD: computes the singular value decomposition (SVD) of a complex M-by-N matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * conjugate-transpose(V) where SIGMA is an M-by-N matrix which is zero except for its min(m,n) diagonal elements, U is an M-by-M unitary matrix, and V is an N-by-N unitary matrix. The diagonal elements of SIGMA are the singular values of A; they are real and non-negative, and are returned in descending order. The first min(m,n) columns of U and V are the left and right singular vectors of A. Note that the routine returns V**H, not V. | |
| subroutine, public | la_zgesvd (jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info) |
| ZGESVD: computes the singular value decomposition (SVD) of a complex M-by-N matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * conjugate-transpose(V) where SIGMA is an M-by-N matrix which is zero except for its min(m,n) diagonal elements, U is an M-by-M unitary matrix, and V is an N-by-N unitary matrix. The diagonal elements of SIGMA are the singular values of A; they are real and non-negative, and are returned in descending order. The first min(m,n) columns of U and V are the left and right singular vectors of A. Note that the routine returns V**H, not V. | |
| subroutine, public | la_wgesvd (jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info) |
| WGESVD: computes the singular value decomposition (SVD) of a complex M-by-N matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * conjugate-transpose(V) where SIGMA is an M-by-N matrix which is zero except for its min(m,n) diagonal elements, U is an M-by-M unitary matrix, and V is an N-by-N unitary matrix. The diagonal elements of SIGMA are the singular values of A; they are real and non-negative, and are returned in descending order. The first min(m,n) columns of U and V are the left and right singular vectors of A. Note that the routine returns V**H, not V. | |
| subroutine, public | la_cgesvdq (joba, jobp, jobr, jobu, jobv, m, n, a, lda, s, u, ldu, v, ldv, numrank, iwork, liwork, cwork, lcwork, rwork, lrwork, info) |
| CGESVDQ: computes the singular value decomposition (SVD) of a complex M-by-N matrix A, where M >= N. The SVD of A is written as [++] [xx] [x0] [xx] A = U * SIGMA * V^*, [++] = [xx] * [ox] * [xx] [++] [xx] where SIGMA is an N-by-N diagonal matrix, U is an M-by-N orthonormal matrix, and V is an N-by-N unitary matrix. The diagonal elements of SIGMA are the singular values of A. The columns of U and V are the left and the right singular vectors of A, respectively. | |
| subroutine, public | la_zgesvdq (joba, jobp, jobr, jobu, jobv, m, n, a, lda, s, u, ldu, v, ldv, numrank, iwork, liwork, cwork, lcwork, rwork, lrwork, info) |
| ZCGESVDQ computes the singular value decomposition (SVD) of a complex M-by-N matrix A, where M >= N. The SVD of A is written as [++] [xx] [x0] [xx] A = U * SIGMA * V^*, [++] = [xx] * [ox] * [xx] [++] [xx] where SIGMA is an N-by-N diagonal matrix, U is an M-by-N orthonormal matrix, and V is an N-by-N unitary matrix. The diagonal elements of SIGMA are the singular values of A. The columns of U and V are the left and the right singular vectors of A, respectively. | |
| subroutine, public | la_wgesvdq (joba, jobp, jobr, jobu, jobv, m, n, a, lda, s, u, ldu, v, ldv, numrank, iwork, liwork, cwork, lcwork, rwork, lrwork, info) |
| ZCGESVDQ computes the singular value decomposition (SVD) of a complex M-by-N matrix A, where M >= N. The SVD of A is written as [++] [xx] [x0] [xx] A = U * SIGMA * V^*, [++] = [xx] * [ox] * [xx] [++] [xx] where SIGMA is an N-by-N diagonal matrix, U is an M-by-N orthonormal matrix, and V is an N-by-N unitary matrix. The diagonal elements of SIGMA are the singular values of A. The columns of U and V are the left and the right singular vectors of A, respectively. | |
SVD drivers: QR iteration and the rank-revealing preconditioned variant.
| subroutine, public la_lapack_eigv_svd_drivers::la_cgesvd | ( | character, intent(in) | jobu, |
| character, intent(in) | jobvt, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| complex(sp), dimension(lda,*), intent(inout) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| real(sp), dimension(*), intent(out) | s, | ||
| complex(sp), dimension(ldu,*), intent(out) | u, | ||
| integer(ilp), intent(in) | ldu, | ||
| complex(sp), dimension(ldvt,*), intent(out) | vt, | ||
| integer(ilp), intent(in) | ldvt, | ||
| complex(sp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| real(sp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(out) | info ) |
CGESVD: computes the singular value decomposition (SVD) of a complex M-by-N matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * conjugate-transpose(V) where SIGMA is an M-by-N matrix which is zero except for its min(m,n) diagonal elements, U is an M-by-M unitary matrix, and V is an N-by-N unitary matrix. The diagonal elements of SIGMA are the singular values of A; they are real and non-negative, and are returned in descending order. The first min(m,n) columns of U and V are the left and right singular vectors of A. Note that the routine returns V**H, not V.

| subroutine, public la_lapack_eigv_svd_drivers::la_cgesvdq | ( | character, intent(in) | joba, |
| character, intent(in) | jobp, | ||
| character, intent(in) | jobr, | ||
| character, intent(in) | jobu, | ||
| character, intent(in) | jobv, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| complex(sp), dimension(lda,*), intent(inout) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| real(sp), dimension(*), intent(out) | s, | ||
| complex(sp), dimension(ldu,*), intent(out) | u, | ||
| integer(ilp), intent(in) | ldu, | ||
| complex(sp), dimension(ldv,*), intent(out) | v, | ||
| integer(ilp), intent(in) | ldv, | ||
| integer(ilp), intent(out) | numrank, | ||
| integer(ilp), dimension(*), intent(out) | iwork, | ||
| integer(ilp), intent(in) | liwork, | ||
| complex(sp), dimension(*), intent(out) | cwork, | ||
| integer(ilp), intent(inout) | lcwork, | ||
| real(sp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(in) | lrwork, | ||
| integer(ilp), intent(out) | info ) |
CGESVDQ: computes the singular value decomposition (SVD) of a complex M-by-N matrix A, where M >= N. The SVD of A is written as [++] [xx] [x0] [xx] A = U * SIGMA * V^*, [++] = [xx] * [ox] * [xx] [++] [xx] where SIGMA is an N-by-N diagonal matrix, U is an M-by-N orthonormal matrix, and V is an N-by-N unitary matrix. The diagonal elements of SIGMA are the singular values of A. The columns of U and V are the left and the right singular vectors of A, respectively.

| subroutine, public la_lapack_eigv_svd_drivers::la_dgesvd | ( | character, intent(in) | jobu, |
| character, intent(in) | jobvt, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| real(dp), dimension(lda,*), intent(inout) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| real(dp), dimension(*), intent(out) | s, | ||
| real(dp), dimension(ldu,*), intent(out) | u, | ||
| integer(ilp), intent(in) | ldu, | ||
| real(dp), dimension(ldvt,*), intent(out) | vt, | ||
| integer(ilp), intent(in) | ldvt, | ||
| real(dp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), intent(out) | info ) |
DGESVD: computes the singular value decomposition (SVD) of a real M-by-N matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * transpose(V) where SIGMA is an M-by-N matrix which is zero except for its min(m,n) diagonal elements, U is an M-by-M orthogonal matrix, and V is an N-by-N orthogonal matrix. The diagonal elements of SIGMA are the singular values of A; they are real and non-negative, and are returned in descending order. The first min(m,n) columns of U and V are the left and right singular vectors of A. Note that the routine returns V**T, not V.

| subroutine, public la_lapack_eigv_svd_drivers::la_dgesvdq | ( | character, intent(in) | joba, |
| character, intent(in) | jobp, | ||
| character, intent(in) | jobr, | ||
| character, intent(in) | jobu, | ||
| character, intent(in) | jobv, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| real(dp), dimension(lda,*), intent(inout) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| real(dp), dimension(*), intent(out) | s, | ||
| real(dp), dimension(ldu,*), intent(out) | u, | ||
| integer(ilp), intent(in) | ldu, | ||
| real(dp), dimension(ldv,*), intent(out) | v, | ||
| integer(ilp), intent(in) | ldv, | ||
| integer(ilp), intent(out) | numrank, | ||
| integer(ilp), dimension(*), intent(out) | iwork, | ||
| integer(ilp), intent(in) | liwork, | ||
| real(dp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(inout) | lwork, | ||
| real(dp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(in) | lrwork, | ||
| integer(ilp), intent(out) | info ) |
DGESVDQ: computes the singular value decomposition (SVD) of a real M-by-N matrix A, where M >= N. The SVD of A is written as [++] [xx] [x0] [xx] A = U * SIGMA * V^*, [++] = [xx] * [ox] * [xx] [++] [xx] where SIGMA is an N-by-N diagonal matrix, U is an M-by-N orthonormal matrix, and V is an N-by-N orthogonal matrix. The diagonal elements of SIGMA are the singular values of A. The columns of U and V are the left and the right singular vectors of A, respectively.

| subroutine, public la_lapack_eigv_svd_drivers::la_qgesvd | ( | character, intent(in) | jobu, |
| character, intent(in) | jobvt, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| real(qp), dimension(lda,*), intent(inout) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| real(qp), dimension(*), intent(out) | s, | ||
| real(qp), dimension(ldu,*), intent(out) | u, | ||
| integer(ilp), intent(in) | ldu, | ||
| real(qp), dimension(ldvt,*), intent(out) | vt, | ||
| integer(ilp), intent(in) | ldvt, | ||
| real(qp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), intent(out) | info ) |
QGESVD: computes the singular value decomposition (SVD) of a real M-by-N matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * transpose(V) where SIGMA is an M-by-N matrix which is zero except for its min(m,n) diagonal elements, U is an M-by-M orthogonal matrix, and V is an N-by-N orthogonal matrix. The diagonal elements of SIGMA are the singular values of A; they are real and non-negative, and are returned in descending order. The first min(m,n) columns of U and V are the left and right singular vectors of A. Note that the routine returns V**T, not V.

| subroutine, public la_lapack_eigv_svd_drivers::la_qgesvdq | ( | character, intent(in) | joba, |
| character, intent(in) | jobp, | ||
| character, intent(in) | jobr, | ||
| character, intent(in) | jobu, | ||
| character, intent(in) | jobv, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| real(qp), dimension(lda,*), intent(inout) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| real(qp), dimension(*), intent(out) | s, | ||
| real(qp), dimension(ldu,*), intent(out) | u, | ||
| integer(ilp), intent(in) | ldu, | ||
| real(qp), dimension(ldv,*), intent(out) | v, | ||
| integer(ilp), intent(in) | ldv, | ||
| integer(ilp), intent(out) | numrank, | ||
| integer(ilp), dimension(*), intent(out) | iwork, | ||
| integer(ilp), intent(in) | liwork, | ||
| real(qp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(inout) | lwork, | ||
| real(qp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(in) | lrwork, | ||
| integer(ilp), intent(out) | info ) |
QGESVDQ: computes the singular value decomposition (SVD) of a real M-by-N matrix A, where M >= N. The SVD of A is written as [++] [xx] [x0] [xx] A = U * SIGMA * V^*, [++] = [xx] * [ox] * [xx] [++] [xx] where SIGMA is an N-by-N diagonal matrix, U is an M-by-N orthonormal matrix, and V is an N-by-N orthogonal matrix. The diagonal elements of SIGMA are the singular values of A. The columns of U and V are the left and the right singular vectors of A, respectively.

| subroutine, public la_lapack_eigv_svd_drivers::la_sgesvd | ( | character, intent(in) | jobu, |
| character, intent(in) | jobvt, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| real(sp), dimension(lda,*), intent(inout) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| real(sp), dimension(*), intent(out) | s, | ||
| real(sp), dimension(ldu,*), intent(out) | u, | ||
| integer(ilp), intent(in) | ldu, | ||
| real(sp), dimension(ldvt,*), intent(out) | vt, | ||
| integer(ilp), intent(in) | ldvt, | ||
| real(sp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), intent(out) | info ) |
SGESVD: computes the singular value decomposition (SVD) of a real M-by-N matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * transpose(V) where SIGMA is an M-by-N matrix which is zero except for its min(m,n) diagonal elements, U is an M-by-M orthogonal matrix, and V is an N-by-N orthogonal matrix. The diagonal elements of SIGMA are the singular values of A; they are real and non-negative, and are returned in descending order. The first min(m,n) columns of U and V are the left and right singular vectors of A. Note that the routine returns V**T, not V.

| subroutine, public la_lapack_eigv_svd_drivers::la_sgesvdq | ( | character, intent(in) | joba, |
| character, intent(in) | jobp, | ||
| character, intent(in) | jobr, | ||
| character, intent(in) | jobu, | ||
| character, intent(in) | jobv, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| real(sp), dimension(lda,*), intent(inout) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| real(sp), dimension(*), intent(out) | s, | ||
| real(sp), dimension(ldu,*), intent(out) | u, | ||
| integer(ilp), intent(in) | ldu, | ||
| real(sp), dimension(ldv,*), intent(out) | v, | ||
| integer(ilp), intent(in) | ldv, | ||
| integer(ilp), intent(out) | numrank, | ||
| integer(ilp), dimension(*), intent(out) | iwork, | ||
| integer(ilp), intent(in) | liwork, | ||
| real(sp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(inout) | lwork, | ||
| real(sp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(in) | lrwork, | ||
| integer(ilp), intent(out) | info ) |
SGESVDQ: computes the singular value decomposition (SVD) of a real M-by-N matrix A, where M >= N. The SVD of A is written as [++] [xx] [x0] [xx] A = U * SIGMA * V^*, [++] = [xx] * [ox] * [xx] [++] [xx] where SIGMA is an N-by-N diagonal matrix, U is an M-by-N orthonormal matrix, and V is an N-by-N orthogonal matrix. The diagonal elements of SIGMA are the singular values of A. The columns of U and V are the left and the right singular vectors of A, respectively.

| subroutine, public la_lapack_eigv_svd_drivers::la_wgesvd | ( | character, intent(in) | jobu, |
| character, intent(in) | jobvt, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| complex(qp), dimension(lda,*), intent(inout) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| real(qp), dimension(*), intent(out) | s, | ||
| complex(qp), dimension(ldu,*), intent(out) | u, | ||
| integer(ilp), intent(in) | ldu, | ||
| complex(qp), dimension(ldvt,*), intent(out) | vt, | ||
| integer(ilp), intent(in) | ldvt, | ||
| complex(qp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| real(qp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(out) | info ) |
WGESVD: computes the singular value decomposition (SVD) of a complex M-by-N matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * conjugate-transpose(V) where SIGMA is an M-by-N matrix which is zero except for its min(m,n) diagonal elements, U is an M-by-M unitary matrix, and V is an N-by-N unitary matrix. The diagonal elements of SIGMA are the singular values of A; they are real and non-negative, and are returned in descending order. The first min(m,n) columns of U and V are the left and right singular vectors of A. Note that the routine returns V**H, not V.

| subroutine, public la_lapack_eigv_svd_drivers::la_wgesvdq | ( | character, intent(in) | joba, |
| character, intent(in) | jobp, | ||
| character, intent(in) | jobr, | ||
| character, intent(in) | jobu, | ||
| character, intent(in) | jobv, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| complex(qp), dimension(lda,*), intent(inout) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| real(qp), dimension(*), intent(out) | s, | ||
| complex(qp), dimension(ldu,*), intent(out) | u, | ||
| integer(ilp), intent(in) | ldu, | ||
| complex(qp), dimension(ldv,*), intent(out) | v, | ||
| integer(ilp), intent(in) | ldv, | ||
| integer(ilp), intent(out) | numrank, | ||
| integer(ilp), dimension(*), intent(out) | iwork, | ||
| integer(ilp), intent(in) | liwork, | ||
| complex(qp), dimension(*), intent(out) | cwork, | ||
| integer(ilp), intent(inout) | lcwork, | ||
| real(qp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(in) | lrwork, | ||
| integer(ilp), intent(out) | info ) |
ZCGESVDQ computes the singular value decomposition (SVD) of a complex M-by-N matrix A, where M >= N. The SVD of A is written as [++] [xx] [x0] [xx] A = U * SIGMA * V^*, [++] = [xx] * [ox] * [xx] [++] [xx] where SIGMA is an N-by-N diagonal matrix, U is an M-by-N orthonormal matrix, and V is an N-by-N unitary matrix. The diagonal elements of SIGMA are the singular values of A. The columns of U and V are the left and the right singular vectors of A, respectively.

| subroutine, public la_lapack_eigv_svd_drivers::la_zgesvd | ( | character, intent(in) | jobu, |
| character, intent(in) | jobvt, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| complex(dp), dimension(lda,*), intent(inout) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| real(dp), dimension(*), intent(out) | s, | ||
| complex(dp), dimension(ldu,*), intent(out) | u, | ||
| integer(ilp), intent(in) | ldu, | ||
| complex(dp), dimension(ldvt,*), intent(out) | vt, | ||
| integer(ilp), intent(in) | ldvt, | ||
| complex(dp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| real(dp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(out) | info ) |
ZGESVD: computes the singular value decomposition (SVD) of a complex M-by-N matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * conjugate-transpose(V) where SIGMA is an M-by-N matrix which is zero except for its min(m,n) diagonal elements, U is an M-by-M unitary matrix, and V is an N-by-N unitary matrix. The diagonal elements of SIGMA are the singular values of A; they are real and non-negative, and are returned in descending order. The first min(m,n) columns of U and V are the left and right singular vectors of A. Note that the routine returns V**H, not V.

| subroutine, public la_lapack_eigv_svd_drivers::la_zgesvdq | ( | character, intent(in) | joba, |
| character, intent(in) | jobp, | ||
| character, intent(in) | jobr, | ||
| character, intent(in) | jobu, | ||
| character, intent(in) | jobv, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| complex(dp), dimension(lda,*), intent(inout) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| real(dp), dimension(*), intent(out) | s, | ||
| complex(dp), dimension(ldu,*), intent(out) | u, | ||
| integer(ilp), intent(in) | ldu, | ||
| complex(dp), dimension(ldv,*), intent(out) | v, | ||
| integer(ilp), intent(in) | ldv, | ||
| integer(ilp), intent(out) | numrank, | ||
| integer(ilp), dimension(*), intent(out) | iwork, | ||
| integer(ilp), intent(in) | liwork, | ||
| complex(dp), dimension(*), intent(out) | cwork, | ||
| integer(ilp), intent(inout) | lcwork, | ||
| real(dp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(in) | lrwork, | ||
| integer(ilp), intent(out) | info ) |
ZCGESVDQ computes the singular value decomposition (SVD) of a complex M-by-N matrix A, where M >= N. The SVD of A is written as [++] [xx] [x0] [xx] A = U * SIGMA * V^*, [++] = [xx] * [ox] * [xx] [++] [xx] where SIGMA is an N-by-N diagonal matrix, U is an M-by-N orthonormal matrix, and V is an N-by-N unitary matrix. The diagonal elements of SIGMA are the singular values of A. The columns of U and V are the left and the right singular vectors of A, respectively.
