gesvdq#

Functions

void sgesvdq(
    const char*          joba,
    const char*          jobp,
    const char*          jobr,
    const char*          jobu,
    const char*          jobv,
    const INT            m,
    const INT            n,
          f32*  restrict A,
    const INT            lda,
          f32*  restrict S,
          f32*  restrict U,
    const INT            ldu,
          f32*  restrict V,
    const INT            ldv,
          INT*           numrank,
          INT*  restrict iwork,
    const INT            liwork,
          f32*  restrict work,
    const INT            lwork,
          f32*  restrict rwork,
    const INT            lrwork,
          INT*           info
);
void sgesvdq(const char *joba, const char *jobp, const char *jobr, const char *jobu, const char *jobv, const INT m, const INT n, f32 *restrict A, const INT lda, f32 *restrict S, f32 *restrict U, const INT ldu, f32 *restrict V, const INT ldv, INT *numrank, INT *restrict iwork, const INT liwork, f32 *restrict work, const INT lwork, f32 *restrict rwork, const INT lrwork, INT *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

         A = U * SIGMA * V**T
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.

Functions

void dgesvdq(
    const char*          joba,
    const char*          jobp,
    const char*          jobr,
    const char*          jobu,
    const char*          jobv,
    const INT            m,
    const INT            n,
          f64*  restrict A,
    const INT            lda,
          f64*  restrict S,
          f64*  restrict U,
    const INT            ldu,
          f64*  restrict V,
    const INT            ldv,
          INT*           numrank,
          INT*  restrict iwork,
    const INT            liwork,
          f64*  restrict work,
    const INT            lwork,
          f64*  restrict rwork,
    const INT            lrwork,
          INT*           info
);
void dgesvdq(const char *joba, const char *jobp, const char *jobr, const char *jobu, const char *jobv, const INT m, const INT n, f64 *restrict A, const INT lda, f64 *restrict S, f64 *restrict U, const INT ldu, f64 *restrict V, const INT ldv, INT *numrank, INT *restrict iwork, const INT liwork, f64 *restrict work, const INT lwork, f64 *restrict rwork, const INT lrwork, INT *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

         A = U * SIGMA * V**T
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.

Functions

void cgesvdq(
    const char*          joba,
    const char*          jobp,
    const char*          jobr,
    const char*          jobu,
    const char*          jobv,
    const INT            m,
    const INT            n,
          c64*  restrict A,
    const INT            lda,
          f32*  restrict S,
          c64*  restrict U,
    const INT            ldu,
          c64*  restrict V,
    const INT            ldv,
          INT*           numrank,
          INT*  restrict iwork,
    const INT            liwork,
          c64*  restrict cwork,
    const INT            lcwork,
          f32*  restrict rwork,
    const INT            lrwork,
          INT*           info
);
void cgesvdq(const char *joba, const char *jobp, const char *jobr, const char *jobu, const char *jobv, const INT m, const INT n, c64 *restrict A, const INT lda, f32 *restrict S, c64 *restrict U, const INT ldu, c64 *restrict V, const INT ldv, INT *numrank, INT *restrict iwork, const INT liwork, c64 *restrict cwork, const INT lcwork, f32 *restrict rwork, const INT lrwork, INT *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

         A = U * SIGMA * V^*
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.

Functions

void zgesvdq(
    const char*          joba,
    const char*          jobp,
    const char*          jobr,
    const char*          jobu,
    const char*          jobv,
    const INT            m,
    const INT            n,
          c128* restrict A,
    const INT            lda,
          f64*  restrict S,
          c128* restrict U,
    const INT            ldu,
          c128* restrict V,
    const INT            ldv,
          INT*           numrank,
          INT*  restrict iwork,
    const INT            liwork,
          c128* restrict cwork,
    const INT            lcwork,
          f64*  restrict rwork,
    const INT            lrwork,
          INT*           info
);
void zgesvdq(const char *joba, const char *jobp, const char *jobr, const char *jobu, const char *jobv, const INT m, const INT n, c128 *restrict A, const INT lda, f64 *restrict S, c128 *restrict U, const INT ldu, c128 *restrict V, const INT ldv, INT *numrank, INT *restrict iwork, const INT liwork, c128 *restrict cwork, const INT lcwork, f64 *restrict rwork, const INT lrwork, INT *info)#

ZGESVDQ computes the singular value decomposition (SVD) of a complex M-by-N matrix A, where M >= N.

The SVD of A is written as

         A = U * SIGMA * V^*
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.