![]() |
Blaze
3.6
|
LAPACK SVD functions (gesdd) | |
void | blaze::gesdd (char jobz, int m, int n, float *A, int lda, float *s, float *U, int ldu, float *V, int ldv, float *work, int lwork, int *iwork, int *info) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general single precision column-major matrix. More... | |
void | blaze::gesdd (char jobz, int m, int n, double *A, int lda, double *s, double *U, int ldu, double *V, int ldv, double *work, int lwork, int *iwork, int *info) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general double precision column-major matrix. More... | |
void | blaze::gesdd (char jobz, int m, int n, complex< float > *A, int lda, float *s, complex< float > *U, int ldu, complex< float > *V, int ldv, complex< float > *work, int lwork, float *rwork, int *iwork, int *info) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general single precision complex column-major matrix. More... | |
void | blaze::gesdd (char jobz, int m, int n, complex< double > *A, int lda, double *s, complex< double > *U, int ldu, complex< double > *V, int ldv, complex< double > *work, int lwork, double *rwork, int *iwork, int *info) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general double precision complex column-major matrix. More... | |
template<typename MT , bool SO, typename VT , bool TF> | |
void | blaze::gesdd (DenseMatrix< MT, SO > &A, DenseVector< VT, TF > &s) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
template<typename MT1 , bool SO, typename MT2 , typename VT , bool TF> | |
void | blaze::gesdd (DenseMatrix< MT1, SO > &A, DenseMatrix< MT2, SO > &U, DenseVector< VT, TF > &s, char jobz) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
template<typename MT1 , bool SO, typename MT2 , typename VT , bool TF> | |
void | blaze::gesdd (DenseMatrix< MT1, SO > &A, DenseVector< VT, TF > &s, DenseMatrix< MT2, SO > &V, char jobz) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
template<typename MT1 , bool SO, typename MT2 , typename VT , bool TF, typename MT3 > | |
void | blaze::gesdd (DenseMatrix< MT1, SO > &A, DenseMatrix< MT2, SO > &U, DenseVector< VT, TF > &s, DenseMatrix< MT3, SO > &V, char jobz) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
LAPACK SVD functions (gesvd) | |
void | blaze::gesvd (char jobu, char jobv, int m, int n, float *A, int lda, float *s, float *U, int ldu, float *V, int ldv, float *work, int lwork, int *info) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general single precision column-major matrix. More... | |
void | blaze::gesvd (char jobu, char jobv, int m, int n, double *A, int lda, double *s, double *U, int ldu, double *V, int ldv, double *work, int lwork, int *info) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general double precision column-major matrix. More... | |
void | blaze::gesvd (char jobu, char jobv, int m, int n, complex< float > *A, int lda, float *s, complex< float > *U, int ldu, complex< float > *V, int ldv, complex< float > *work, int lwork, float *rwork, int *info) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general single precision complex column-major matrix. More... | |
void | blaze::gesvd (char jobu, char jobv, int m, int n, complex< double > *A, int lda, double *s, complex< double > *U, int ldu, complex< double > *V, int ldv, complex< double > *work, int lwork, double *rwork, int *info) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general double precision complex column-major matrix. More... | |
template<typename MT , bool SO, typename VT , bool TF> | |
void | blaze::gesvd (DenseMatrix< MT, SO > &A, DenseVector< VT, TF > &s, char jobu, char jobv) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
template<typename MT1 , bool SO, typename MT2 , typename VT , bool TF> | |
void | blaze::gesvd (DenseMatrix< MT1, SO > &A, DenseMatrix< MT2, SO > &U, DenseVector< VT, TF > &s, char jobu, char jobv) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
template<typename MT1 , bool SO, typename VT , bool TF, typename MT2 > | |
void | blaze::gesvd (DenseMatrix< MT1, SO > &A, DenseVector< VT, TF > &s, DenseMatrix< MT2, SO > &V, char jobu, char jobv) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
template<typename MT1 , bool SO, typename MT2 , typename VT , bool TF, typename MT3 > | |
void | blaze::gesvd (DenseMatrix< MT1, SO > &A, DenseMatrix< MT2, SO > &U, DenseVector< VT, TF > &s, DenseMatrix< MT3, SO > &V, char jobu, char jobv) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
LAPACK SVD functions (gesvdx) | |
void | blaze::gesvdx (char jobu, char jobv, char range, int m, int n, float *A, int lda, float vl, float vu, int il, int iu, int *ns, float *s, float *U, int ldu, float *V, int ldv, float *work, int lwork, int *iwork, int *info) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general single precision column-major matrix. More... | |
void | blaze::gesvdx (char jobu, char jobv, char range, int m, int n, double *A, int lda, double vl, double vu, int il, int iu, int *ns, double *s, double *U, int ldu, double *V, int ldv, double *work, int lwork, int *iwork, int *info) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general double precision column-major matrix. More... | |
void | blaze::gesvdx (char jobu, char jobv, char range, int m, int n, complex< float > *A, int lda, float vl, float vu, int il, int iu, int *ns, float *s, complex< float > *U, int ldu, complex< float > *V, int ldv, complex< float > *work, int lwork, float *rwork, int *iwork, int *info) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general single precision complex column-major matrix. More... | |
void | blaze::gesvdx (char jobu, char jobv, char range, int m, int n, complex< double > *A, int lda, double vl, double vu, int il, int iu, int *ns, double *s, complex< double > *U, int ldu, complex< double > *V, int ldv, complex< double > *work, int lwork, double *rwork, int *iwork, int *info) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general double precision complex column-major matrix. More... | |
template<typename MT , bool SO, typename VT , bool TF> | |
size_t | blaze::gesvdx (DenseMatrix< MT, SO > &A, DenseVector< VT, TF > &s) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
template<typename MT , bool SO, typename VT , bool TF, typename ST > | |
size_t | blaze::gesvdx (DenseMatrix< MT, SO > &A, DenseVector< VT, TF > &s, ST low, ST upp) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
template<typename MT1 , bool SO, typename MT2 , typename VT , bool TF> | |
size_t | blaze::gesvdx (DenseMatrix< MT1, SO > &A, DenseMatrix< MT2, SO > &U, DenseVector< VT, TF > &s) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
template<typename MT1 , bool SO, typename MT2 , typename VT , bool TF, typename ST > | |
size_t | blaze::gesvdx (DenseMatrix< MT1, SO > &A, DenseMatrix< MT2, SO > &U, DenseVector< VT, TF > &s, ST low, ST upp) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
template<typename MT1 , bool SO, typename VT , bool TF, typename MT2 > | |
size_t | blaze::gesvdx (DenseMatrix< MT1, SO > &A, DenseVector< VT, TF > &s, DenseMatrix< MT2, SO > &V) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
template<typename MT1 , bool SO, typename VT , bool TF, typename MT2 , typename ST > | |
size_t | blaze::gesvdx (DenseMatrix< MT1, SO > &A, DenseVector< VT, TF > &s, DenseMatrix< MT2, SO > &V, ST low, ST upp) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
template<typename MT1 , bool SO, typename MT2 , typename VT , bool TF, typename MT3 > | |
size_t | blaze::gesvdx (DenseMatrix< MT1, SO > &A, DenseMatrix< MT2, SO > &U, DenseVector< VT, TF > &s, DenseMatrix< MT3, SO > &V) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
template<typename MT1 , bool SO, typename MT2 , typename VT , bool TF, typename MT3 , typename ST > | |
size_t | blaze::gesvdx (DenseMatrix< MT1, SO > &A, DenseMatrix< MT2, SO > &U, DenseVector< VT, TF > &s, DenseMatrix< MT3, SO > &V, ST low, ST upp) |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix. More... | |
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
s | The resulting vector of singular values. |
std::invalid_argument | Vector cannot be resized. |
std::runtime_error | Singular value decomposition failed. |
This function performs the singular value decomposition of a general m-by-n matrix based on the LAPACK gesdd() functions, which use a divide-and-conquer strategy.
The complete decomposition has the form
where S
is a 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 a n-by-n orthogonal matrix. The diagonal elements of S
are the singular values of A, the first min(m,n) columns of U and rows of V are the left and right singular vectors of A.
The resulting min(m,n) real and non-negative singular values are returned in descending order in the vector s, which is resized to the correct size (if possible and necessary).
Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
In all failure cases an exception is thrown.
Examples:
For more information on the gesdd() functions (i.e. sgesdd(), dgesdd(), cgesdd(), and zgesdd()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
U | The resulting matrix of left singular vectors. |
s | The resulting vector of singular values. |
jobz | Specifies the computation of the singular vectors ('O' or 'N' ). |
std::invalid_argument | Invalid input matrix provided. |
std::invalid_argument | Vector cannot be resized. |
std::invalid_argument | Matrix cannot be resized. |
std::invalid_argument | Invalid jobz argument provided. |
std::runtime_error | Singular value decomposition failed. |
This function performs the singular value decomposition of a general m-by-n matrix (m < n) based on the LAPACK gesdd() functions, which uses a divide-and-conquer strategy. Optionally, it computes the left or right singular vectors.
The complete decomposition has the form
where S
is a 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 a n-by-n orthogonal matrix. The diagonal elements of S
are the singular values of A, the first min(m,n) columns of U and rows of V are the left and right singular vectors of A.
The complete decomposition has the form
where S
is a 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 a n-by-n orthogonal matrix. The diagonal elements of S
are the singular values of A, the first min(m,n) columns of U and rows of V are the left and right singular vectors of A.
The resulting min(m,n) real and non-negative singular values are returned in descending order in the vector s, which is resized to the correct size (if possible and necessary).
The parameter jobz specifies the computation of the left and right singular vectors:
'O'
: If m < n, the m left singular vectors are returned in the columns of U and the m right singular vectors are returned in the rows of A; U is either resized (if possible) or expected to be a m-by-m matrix, the dimensions of A are not adapted. Otherwise a std::invalid_argument exception is thrown.'N'
: No left and right signular vectors are computed; U is not referenced.Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
'O'
and m >= n;'O'
nor 'N'
;In all failure cases an exception is thrown.
Examples:
For more information on the gesdd() functions (i.e. sgesdd(), dgesdd(), cgesdd(), and zgesdd()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
s | The resulting vector of singular values. |
V | The resulting matrix of right singular vectors. |
jobz | Specifies the computation of the singular vectors ('O' or 'N' ). |
std::invalid_argument | Invalid input matrix provided. |
std::invalid_argument | Vector cannot be resized. |
std::invalid_argument | Matrix cannot be resized. |
std::invalid_argument | Invalid jobz argument provided. |
std::runtime_error | Singular value decomposition failed. |
This function performs the singular value decomposition of a general m-by-n matrix (m >= n) based on the LAPACK gesdd() functions, which uses a divide-and-conquer strategy. Optionally, it computes the left or right singular vectors.
The complete decomposition has the form
where S
is a 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 a n-by-n orthogonal matrix. The diagonal elements of S
are the singular values of A, the first min(m,n) columns of U and rows of V are the left and right singular vectors of A.
The resulting min(m,n) real and non-negative singular values are returned in descending order in the vector s, which is resized to the correct size (if possible and necessary).
The parameter jobz specifies the computation of the left and right singular vectors:
'O'
: If m >= n, the n left singular vectors are returned in the columns of A and the n right singular vectors are returned in the rows of V; V is either resized (if possible) or expected to be a n-by-n matrix, the dimensions of A are not adapted. Otherwise a std::invalid_argument exception is thrown.'N'
: No left and right signular vectors are computed; V is not referenced.Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
'O'
and m < n;'O'
nor 'N'
;In all failure cases an exception is thrown.
Examples:
For more information on the gesdd() functions (i.e. sgesdd(), dgesdd(), cgesdd(), and zgesdd()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
U | The resulting matrix of left singular vectors. |
s | The resulting vector of singular values. |
V | The resulting matrix of right singular vectors. |
jobz | Specifies the computation of the singular vectors ('A' , 'S' , or 'N' ). |
std::invalid_argument | Vector cannot be resized. |
std::invalid_argument | Matrix cannot be resized. |
std::invalid_argument | Invalid jobz argument provided. |
std::runtime_error | Singular value decomposition failed. |
This function performs the singular value decomposition of a general m-by-n matrix based on the LAPACK gesdd() functions, which uses a divide-and-conquer strategy. Optionally, it computes the left or right singular vectors.
The complete decomposition has the form
where S
is a 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 a n-by-n orthogonal matrix. The diagonal elements of S
are the singular values of A, the first min(m,n) columns of U and rows of V are the left and right singular vectors of A.
The resulting min(m,n) real and non-negative singular values are returned in descending order in the vector s, which is resized to the correct size (if possible and necessary).
The parameter jobz specifies the computation of the left and right singular vectors:
'A'
: All m columns of U and all n rows of V are returned in U and V; U is either resized (if possible) or expected to be a m-by-m matrix and V is either resized (if possible) or expected to be a n-by-n matrix.'S'
: The min(m,n) left singular vectors are returned in the columns of U; U is either resized (if possible) or expected to be a m-by-min(m,n) matrix. The min(m,n) right singular vectors are returned in the rows of V; V is either resized (if possible) or expected to be a min(m,n)-by-n matrix.'N'
: No columns of U or rows of V are computed; both U and V are not referenced.Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
'A'
, 'S'
, nor 'N'
;In all failure cases an exception is thrown.
Examples:
For more information on the gesdd() functions (i.e. sgesdd(), dgesdd(), cgesdd(), and zgesdd()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general single precision column-major matrix.
jobz | Specifies the computation of the singular vectors ('A' , 'S' , 'O' or 'N' ). |
m | The number of rows of the given matrix ![]() |
n | The number of columns of the given matrix ![]() |
A | Pointer to the first element of the single precision column-major matrix. |
lda | The total number of elements between two columns of the matrix A ![]() |
s | Pointer to the first element of the vector for the singular values. |
U | Pointer to the first element of the column-major matrix for the left singular vectors. |
ldu | The total number of elements between two columns of the matrix U ![]() |
V | Pointer to the first element of the column-major matrix for the right singular vectors. |
ldv | The total number of elements between two columns of the matrix V ![]() |
work | Auxiliary array; size >= max(1, lwork). |
lwork | The dimension of the array work; see online reference for details. |
iwork | Auxiliary array; size >= 8*min(m,n). |
info | Return code of the function call. |
This function performs the singular value decomposition of a general m-by-n single precision column-major matrix based on the LAPACK sgesdd() function. Optionally, it computes the left and/or right singular vectors using a divide-and-conquer strategy. The resulting decomposition has the form
where S
is a m-by-n matrix, which is zero except for its min(m,n) diagonal elements, which are stored in s, U is an m-by-m orthogonal matrix, and V is a n-by-n orthogonal matrix. The diagonal elements of S
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 rows of V are the left and right singular vectors of A.
The parameter jobz specifies the computation of the left and right singular vectors:
'A'
: All m columns of U and all n rows of V are returned in U and V; U must be a general m-by-m matrix and V must be a general n-by-n matrix.'S'
: The first min(m,n) columns of U and the first min(m,n) rows of V are returned in U and V; U must be a m-by-min(m,n) matrix and V must be a min(m,n)-by-n matrix.'O'
: If m >= n, the first n columns of U are returned in A and all rows of V are returned in V; matrix U is not referenced. Otherwise all columns of U are returned in U and the first m rows of V are returned in A; matrix V is not referenced.'N'
: No columns of U or rows of V are computed; both U and V are not referenced.The info argument provides feedback on the success of the function call:
For more information on the sgesdd() function, see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general double precision column-major matrix.
jobz | Specifies the computation of the singular vectors ('A' , 'S' , 'O' or 'N' ). |
m | The number of rows of the given matrix ![]() |
n | The number of columns of the given matrix ![]() |
A | Pointer to the first element of the double precision column-major matrix. |
lda | The total number of elements between two columns of the matrix A ![]() |
s | Pointer to the first element of the vector for the singular values. |
U | Pointer to the first element of the column-major matrix for the left singular vectors. |
ldu | The total number of elements between two columns of the matrix U ![]() |
V | Pointer to the first element of the column-major matrix for the right singular vectors. |
ldv | The total number of elements between two columns of the matrix V ![]() |
work | Auxiliary array; size >= max(1, lwork). |
lwork | The dimension of the array work; see online reference for details. |
iwork | Auxiliary array; size >= 8*min(m,n). |
info | Return code of the function call. |
This function performs the singular value decomposition of a general m-by-n double precision column-major matrix based on the LAPACK dgesdd() function. Optionally, it computes the left and/or right singular vectors using a divide-and-conquer strategy. The resulting decomposition has the form
where S
is a m-by-n matrix, which is zero except for its min(m,n) diagonal elements, which are stored in s, U is an m-by-m orthogonal matrix, and V is a n-by-n orthogonal matrix. The diagonal elements of S
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 rows of V are the left and right singular vectors of A.
The parameter jobz specifies the computation of the left and right singular vectors:
'A'
: All m columns of U and all n rows of V are returned in U and V; U must be a general m-by-m matrix and V must be a general n-by-n matrix.'S'
: The first min(m,n) columns of U and the first min(m,n) rows of V are returned in U and V; U must be a m-by-min(m,n) matrix and V must be a min(m,n)-by-n matrix.'O'
: If m >= n, the first n columns of U are returned in A and all rows of V are returned in V; matrix U is not referenced. Otherwise all columns of U are returned in U and the first m rows of V are returned in A; matrix V is not referenced.'N'
: No columns of U or rows of V are computed; both U and V are not referenced.The info argument provides feedback on the success of the function call:
For more information on the dgesdd() function, see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general single precision complex column-major matrix.
jobz | Specifies the computation of the singular vectors ('A' , 'S' , 'O' or 'N' ). |
m | The number of rows of the given matrix ![]() |
n | The number of columns of the given matrix ![]() |
A | Pointer to the first element of the single precision complex column-major matrix. |
lda | The total number of elements between two columns of the matrix A ![]() |
s | Pointer to the first element of the vector for the singular values. |
U | Pointer to the first element of the column-major matrix for the left singular vectors. |
ldu | The total number of elements between two columns of the matrix U ![]() |
V | Pointer to the first element of the column-major matrix for the right singular vectors. |
ldv | The total number of elements between two columns of the matrix V ![]() |
work | Auxiliary array; size >= max(1, lwork). |
lwork | The dimension of the array work; see online reference for details. |
rwork | Auxiliary array; see online reference for details. |
iwork | Auxiliary array; size >= 8*min(m,n). |
info | Return code of the function call. |
This function performs the singular value decomposition of a general m-by-n single precision complex column-major matrix based on the LAPACK cgesdd() function. Optionally, it computes the left and/or right singular vectors using a divide-and-conquer strategy. The resulting decomposition has the form
where S
is a m-by-n matrix, which is zero except for its min(m,n) diagonal elements, which are stored in s, U is an m-by-m orthogonal matrix, and V is a n-by-n orthogonal matrix. The diagonal elements of S
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 rows of V are the left and right singular vectors of A.
The parameter jobz specifies the computation of the left and right singular vectors:
'A'
: All m columns of U and all n rows of V are returned in U and V; U must be a general m-by-m matrix and V must be a general n-by-n matrix.'S'
: The first min(m,n) columns of U and the first min(m,n) rows of V are returned in U and V; U must be a m-by-min(m,n) matrix and V must be a min(m,n)-by-n matrix.'O'
: If m >= n, the first n columns of U are returned in A and all rows of V are returned in V; matrix U is not referenced. Otherwise all columns of U are returned in U and the first m rows of V are returned in A; matrix V is not referenced.'N'
: No columns of U or rows of V are computed; both U and V are not referenced.The info argument provides feedback on the success of the function call:
For more information on the cgesdd() function, see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general double precision complex column-major matrix.
jobz | Specifies the computation of the singular vectors ('A' , 'S' , 'O' or 'N' ). |
m | The number of rows of the given matrix ![]() |
n | The number of columns of the given matrix ![]() |
A | Pointer to the first element of the double precision complex column-major matrix. |
lda | The total number of elements between two columns of the matrix A ![]() |
s | Pointer to the first element of the vector for the singular values. |
U | Pointer to the first element of the column-major matrix for the left singular vectors. |
ldu | The total number of elements between two columns of the matrix U ![]() |
V | Pointer to the first element of the column-major matrix for the right singular vectors. |
ldv | The total number of elements between two columns of the matrix V ![]() |
work | Auxiliary array; size >= max(1, lwork). |
lwork | The dimension of the array work; see online reference for details. |
rwork | Auxiliary array; see online reference for details. |
iwork | Auxiliary array; size >= 8*min(m,n). |
info | Return code of the function call. |
This function performs the singular value decomposition of a general m-by-n double precision complex column-major matrix based on the LAPACK zgesdd() function. Optionally, it computes the left and/or right singular vectors using a divide-and-conquer strategy. The resulting decomposition has the form
where S
is a m-by-n matrix, which is zero except for its min(m,n) diagonal elements, which are stored in s, U is an m-by-m orthogonal matrix, and V is a n-by-n orthogonal matrix. The diagonal elements of S
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 rows of V are the left and right singular vectors of A.
The parameter jobz specifies the computation of the left and right singular vectors:
'A'
: All m columns of U and all n rows of V are returned in U and V; U must be a general m-by-m matrix and V must be a general n-by-n matrix.'S'
: The first min(m,n) columns of U and the first min(m,n) rows of V are returned in U and V; U must be a m-by-min(m,n) matrix and V must be a min(m,n)-by-n matrix.'O'
: If m >= n, the first n columns of U are returned in A and all rows of V are returned in V; matrix U is not referenced. Otherwise all columns of U are returned in U and the first m rows of V are returned in A; matrix V is not referenced.'N'
: No columns of U or rows of V are computed; both U and V are not referenced.The info argument provides feedback on the success of the function call:
For more information on the zgesdd() function, see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
s | The resulting vector of singular values. |
jobu | Specifies the computation of the left singular vectors ('O' or 'N' ). |
jobv | Specifies the computation of the right singular vectors ('O' or 'N' ). |
std::invalid_argument | Vector cannot be resized. |
std::invalid_argument | Invalid jobu argument provided. |
std::invalid_argument | Invalid jobv argument provided. |
std::invalid_argument | Invalid combination of jobu and jobv provided. |
std::runtime_error | Singular value decomposition failed. |
This function performs the singular value decomposition of a general m-by-n matrix based on the LAPACK gesvd() functions. Optionally, it computes the left or right singular vectors.
The complete decomposition has the form
where S
is a 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 a n-by-n orthogonal matrix. The diagonal elements of S
are the singular values of A, the first min(m,n) columns of U and rows of V are the left and right singular vectors of A.
The resulting min(m,n) real and non-negative singular values are returned in descending order in the vector s, which is resized to the correct size (if possible and necessary).
The parameter jobu specifies the computation of the left singular vectors:
'O'
: The first min(m,n) columns of U (the left singular vectors) are returned in A; The dimensions of A are not adapted.'N'
: No columns of U (no left singular vectors) are computed.The parameter jobv specifies the computation of the right singular vectors:
'O'
: The first min(m,n) rows of V (the right singular vectors) are returned in A; The dimensions of A are not adapted.'N'
: No rows of V (no right singular vectors) are computed.Please note that jobu and jobv cannot both be 'O'
.
Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
'O'
nor 'N'
;'O'
nor 'N'
;'O'
;In all failure cases an exception is thrown.
Examples:
For more information on the gesvd() functions (i.e. sgesvd(), dgesvd(), cgesvd(), and zgesvd()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
U | The resulting matrix of left singular vectors. |
s | The resulting vector of singular values. |
jobu | Specifies the computation of the left singular vectors ('A' , 'S' , or 'N' ). |
jobv | Specifies the computation of the right singular vectors ('O' or 'N' ). |
std::invalid_argument | Vector cannot be resized. |
std::invalid_argument | Matrix cannot be resized. |
std::invalid_argument | Invalid jobu argument provided. |
std::invalid_argument | Invalid jobv argument provided. |
std::runtime_error | Singular value decomposition failed. |
This function performs the singular value decomposition of a general m-by-n matrix based on the LAPACK gesvd() functions. Optionally, it computes the left or right singular vectors. The complete decomposition has the form
where S
is a 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 a n-by-n orthogonal matrix. The diagonal elements of S
are the singular values of A, the first min(m,n) columns of U and rows of V are the left and right singular vectors of A.
The resulting min(m,n) real and non-negative singular values are returned in descending order in the vector s, which is resized to the correct size (if possible and necessary).
The parameter jobu specifies the computation of the left singular vectors:
'A'
: All m columns of U are returned in U; U is either resized (if possible) or expected to be a m-by-m matrix.'S'
: The first min(m,n) columns of U (the left singular vectors) are returned in U; U is either resized (if possible) or expected to be a m-by-min(m,n) matrix.'N'
: No columns of U (no left singular vectors) are computed; U is not referenced.The parameter jobv specifies the computation of the right singular vectors:
'O'
: The first min(m,n) rows of V (the right singular vectors) are returned in A; The dimensions of A are not adapted.'N'
: No rows of V (no right singular vectors) are computed.Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
'A'
nor 'S'
nor 'N'
;'O'
nor 'N'
;In all failure cases an exception is thrown.
Examples:
For more information on the gesvd() functions (i.e. sgesvd(), dgesvd(), cgesvd(), and zgesvd()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
s | The resulting vector of singular values. |
V | The resulting matrix of right singular vectors. |
jobu | Specifies the computation of the left singular vectors ('O' or 'N' ). |
jobv | Specifies the computation of the right singular vectors ('A' , 'S' , or 'N' ). |
std::invalid_argument | Vector cannot be resized. |
std::invalid_argument | Matrix cannot be resized. |
std::invalid_argument | Invalid jobu argument provided. |
std::invalid_argument | Invalid jobv argument provided. |
std::runtime_error | Singular value decomposition failed. |
This function performs the singular value decomposition of a general m-by-n matrix based on the LAPACK gesvd() functions. Optionally, it computes the left or right singular vectors. The complete decomposition has the form
where S
is a 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 a n-by-n orthogonal matrix. The diagonal elements of S
are the singular values of A, the first min(m,n) columns of U and rows of V are the left and right singular vectors of A.
The resulting min(m,n) real and non-negative singular values are returned in descending order in the vector s, which is resized to the correct size (if possible and necessary).
The parameter jobu specifies the computation of the left singular vectors:
'O'
: The first min(m,n) columns of U (the left singular vectors) are returned in A; The dimensions of A are not adapted.'N'
: No columns of U (no left singular vectors) are computed.The parameter jobv specifies the computation of the right singular vectors:
'A'
: All m rows of V are returned in V; V is either resized (if possible) or expected to be a n-by-n matrix.'S'
: The first min(m,n) rows of V (the right singular vectors) are returned in V; V is either resized (if possible) or expected to be a min(m,n)-by-n matrix.'N'
: No rows of V (no right singular vectors) are computed; V is not referenced.Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
'O'
nor 'N'
;'A'
nor 'S'
nor 'N'
;In all failure cases an exception is thrown.
Examples:
For more information on the gesvd() functions (i.e. sgesvd(), dgesvd(), cgesvd(), and zgesvd()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
U | The resulting matrix of left singular vectors. |
s | The resulting vector of singular values. |
V | The resulting matrix of right singular vectors. |
jobu | Specifies the computation of the left singular vectors ('A' , 'S' , or 'N' ). |
jobv | Specifies the computation of the right singular vectors ('A' , 'S' , or 'N' ). |
std::invalid_argument | Vector cannot be resized. |
std::invalid_argument | Matrix cannot be resized. |
std::invalid_argument | Invalid jobu argument provided. |
std::invalid_argument | Invalid jobv argument provided. |
std::runtime_error | Singular value decomposition failed. |
This function performs the singular value decomposition of a general m-by-n matrix based on the LAPACK gesvd() functions. Optionally, it computes the left or right singular vectors. The complete decomposition has the form
where S
is a 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 a n-by-n orthogonal matrix. The diagonal elements of S
are the singular values of A, the first min(m,n) columns of U and rows of V are the left and right singular vectors of A.
The resulting min(m,n) real and non-negative singular values are returned in descending order in the vector s, which is resized to the correct size (if possible and necessary).
The parameter jobu specifies the computation of the left singular vectors:
'A'
: All m columns of U are returned in U; U is either resized (if possible) or expected to be a m-by-m matrix.'S'
: The first min(m,n) columns of U (the left singular vectors) are returned in U; U is either resized (if possible) or expected to be a m-by-min(m,n) matrix.'N'
: No columns of U (no left singular vectors) are computed; U is not referenced.The parameter jobv specifies the computation of the right singular vectors:
'A'
: All m rows of V are returned in V; V is either resized (if possible) or expected to be a n-by-n matrix.'S'
: The first min(m,n) rows of V (the right singular vectors) are returned in V; V is either resized (if possible) or expected to be a min(m,n)-by-n matrix.'N'
: No rows of V (no right singular vectors) are computed; V is not referenced.Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
'A'
nor 'S'
nor 'N'
;'A'
nor 'S'
nor 'N'
;In all failure cases an exception is thrown.
Examples:
For more information on the gesvd() functions (i.e. sgesvd(), dgesvd(), cgesvd(), and zgesvd()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general single precision column-major matrix.
jobu | Specifies the computation of the left singular vectors ('A' , 'S' , 'O' or 'N' ). |
jobv | Specifies the computation of the right singular vectors ('A' , 'S' , 'O' or 'N' ). |
m | The number of rows of the given matrix ![]() |
n | The number of columns of the given matrix ![]() |
A | Pointer to the first element of the single precision column-major matrix. |
lda | The total number of elements between two columns of the matrix A ![]() |
s | Pointer to the first element of the vector for the singular values. |
U | Pointer to the first element of the column-major matrix for the left singular vectors. |
ldu | The total number of elements between two columns of the matrix U ![]() |
V | Pointer to the first element of the column-major matrix for the right singular vectors. |
ldv | The total number of elements between two columns of the matrix V ![]() |
work | Auxiliary array; size >= max( 1, lwork ). |
lwork | The dimension of the array work; see online reference for details. |
info | Return code of the function call. |
This function performs the singular value decomposition of a general m-by-n single precision column-major matrix based on the LAPACK sgesvd() function. Optionally, it computes the left and/or right singular vectors. The resulting decomposition has the form
where S
is a m-by-n matrix, which is zero except for its min(m,n) diagonal elements, which are stored in s, U is an m-by-m orthogonal matrix, and V is a n-by-n orthogonal matrix. The diagonal elements of S
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 rows of V are the left and right singular vectors of A.
The parameter jobu specifies the computation of the left singular vectors:
'A'
: All m columns of U are returned in U.'S'
: The first min(m,n) columns of U (the singular vectors) are returned in U.'O'
: The first min(m,n) columns of U (the singular vectors) are returned in A.'N'
: No columns of U (no left singular vectors) are computed.The parameter jobv specifies the computation of the right singular vectors:
'A'
: All m rows of V are returned in V.'S'
: The first min(m,n) rows of V (the singular vectors) are returned in V.'O'
: The first min(m,n) rows of V (the singular vectors) are returned in A.'N'
: No rows of V (no right singular vectors) are computed.The info argument provides feedback on the success of the function call:
For more information on the sgesvd() function, see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general double precision column-major matrix.
jobu | Specifies the computation of the left singular vectors ('A' , 'S' , 'O' or 'N' ). |
jobv | Specifies the computation of the right singular vectors ('A' , 'S' , 'O' or 'N' ). |
m | The number of rows of the given matrix ![]() |
n | The number of columns of the given matrix ![]() |
A | Pointer to the first element of the double precision column-major matrix. |
lda | The total number of elements between two columns of the matrix A ![]() |
s | Pointer to the first element of the vector for the singular values. |
U | Pointer to the first element of the column-major matrix for the left singular vectors. |
ldu | The total number of elements between two columns of the matrix U ![]() |
V | Pointer to the first element of the column-major matrix for the right singular vectors. |
ldv | The total number of elements between two columns of the matrix V ![]() |
work | Auxiliary array; size >= max( 1, lwork ). |
lwork | The dimension of the array work; see online reference for details. |
info | Return code of the function call. |
This function performs the singular value decomposition of a general m-by-n double precision column-major matrix based on the LAPACK dgesvd() function. Optionally, it computes the left and/or right singular vectors. The resulting decomposition has the form
where S
is a m-by-n matrix, which is zero except for its min(m,n) diagonal elements, which are stored in s, U is an m-by-m orthogonal matrix, and V is a n-by-n orthogonal matrix. The diagonal elements of S
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 rows of V are the left and right singular vectors of A.
The parameter jobu specifies the computation of the left singular vectors:
'A'
: All m columns of U are returned in U.'S'
: The first min(m,n) columns of U (the singular vectors) are returned in U.'O'
: The first min(m,n) columns of U (the singular vectors) are returned in A.'N'
: No columns of U (no left singular vectors) are computed.The parameter jobv specifies the computation of the right singular vectors:
'A'
: All m rows of V are returned in V.'S'
: The first min(m,n) rows of V (the singular vectors) are returned in V.'O'
: The first min(m,n) rows of V (the singular vectors) are returned in A.'N'
: No rows of V (no right singular vectors) are computed.The info argument provides feedback on the success of the function call:
For more information on the dgesvd() function, see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general single precision complex column-major matrix.
jobu | Specifies the computation of the left singular vectors ('A' , 'S' , 'O' or 'N' ). |
jobv | Specifies the computation of the right singular vectors ('A' , 'S' , 'O' or 'N' ). |
m | The number of rows of the given matrix ![]() |
n | The number of columns of the given matrix ![]() |
A | Pointer to the first element of the single precision complex column-major matrix. |
lda | The total number of elements between two columns of the matrix A ![]() |
s | Pointer to the first element of the vector for the singular values. |
U | Pointer to the first element of the column-major matrix for the left singular vectors. |
ldu | The total number of elements between two columns of the matrix U ![]() |
V | Pointer to the first element of the column-major matrix for the right singular vectors. |
ldv | The total number of elements between two columns of the matrix V ![]() |
work | Auxiliary array; size >= max( 1, lwork ). |
lwork | The dimension of the array work; see online reference for details. |
rwork | Auxiliary array; size >= 5*min(m,n). |
info | Return code of the function call. |
This function performs the singular value decomposition of a general m-by-n single precision complex column-major matrix based on the LAPACK cgesvd() function. Optionally, it computes the left and/or right singular vectors. The resulting decomposition has the form
where S
is a m-by-n matrix, which is zero except for its min(m,n) diagonal elements, which are stored in s, U is an m-by-m orthogonal matrix, and V is a n-by-n orthogonal matrix. The diagonal elements of S
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 rows of V are the left and right singular vectors of A.
The parameter jobu specifies the computation of the left singular vectors:
'A'
: All m columns of U are returned in U.'S'
: The first min(m,n) columns of U (the singular vectors) are returned in U.'O'
: The first min(m,n) columns of U (the singular vectors) are returned in A.'N'
: No columns of U (no left singular vectors) are computed.The parameter jobv specifies the computation of the right singular vectors:
'A'
: All m rows of V are returned in V.'S'
: The first min(m,n) rows of V (the singular vectors) are returned in V.'O'
: The first min(m,n) rows of V (the singular vectors) are returned in A.'N'
: No rows of V (no right singular vectors) are computed.The info argument provides feedback on the success of the function call:
For more information on the cgesvd() function, see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general double precision complex column-major matrix.
jobu | Specifies the computation of the left singular vectors ('A' , 'S' , 'O' or 'N' ). |
jobv | Specifies the computation of the right singular vectors ('A' , 'S' , 'O' or 'N' ). |
m | The number of rows of the given matrix ![]() |
n | The number of columns of the given matrix ![]() |
A | Pointer to the first element of the double precision complex column-major matrix. |
lda | The total number of elements between two columns of the matrix A ![]() |
s | Pointer to the first element of the vector for the singular values. |
U | Pointer to the first element of the column-major matrix for the left singular vectors. |
ldu | The total number of elements between two columns of the matrix U ![]() |
V | Pointer to the first element of the column-major matrix for the right singular vectors. |
ldv | The total number of elements between two columns of the matrix V ![]() |
work | Auxiliary array; size >= max( 1, lwork ). |
lwork | The dimension of the array work; see online reference for details. |
rwork | Auxiliary array; size >= 5*min(m,n). |
info | Return code of the function call. |
This function performs the singular value decomposition of a general m-by-n double precision complex column-major matrix based on the LAPACK zgesvd() function. Optionally, it computes the left and/or right singular vectors. The resulting decomposition has the form
where S
is a m-by-n matrix, which is zero except for its min(m,n) diagonal elements, which are stored in s, U is an m-by-m orthogonal matrix, and V is a n-by-n orthogonal matrix. The diagonal elements of S
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 rows of V are the left and right singular vectors of A.
The parameter jobu specifies the computation of the left singular vectors:
'A'
: All m columns of U are returned in U.'S'
: The first min(m,n) columns of U (the singular vectors) are returned in U.'O'
: The first min(m,n) columns of U (the singular vectors) are returned in A.'N'
: No columns of U (no left singular vectors) are computed.The parameter jobv specifies the computation of the right singular vectors:
'A'
: All m rows of V are returned in V.'S'
: The first min(m,n) rows of V (the singular vectors) are returned in V.'O'
: The first min(m,n) rows of V (the singular vectors) are returned in A.'N'
: No rows of V (no right singular vectors) are computed.The info argument provides feedback on the success of the function call:
For more information on the zgesvd() function, see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
s | The resulting vector of singular values. |
std::invalid_argument | Vector cannot be resized. |
std::runtime_error | Singular value decomposition failed. |
This function computes all min(m,n) singular values of the given general m-by-n matrix A by means of the LAPACK gesvdx() functions. The resulting real and non-negative singular values are returned in descending order in the vector s, which is resized to the correct size (if possible and necessary).
Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
In all failure cases an exception is thrown.
Examples:
For more information on the gesvdx() functions (i.e. sgesvdx(), dgesvdx(), cgesvdx(), and zgesvdx()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
s | The resulting vector of singular values. |
low | The lower bound of the interval to be searched for singular values. |
upp | The upper bound of the interval to be searched for singular values. |
std::invalid_argument | Vector cannot be resized. |
std::invalid_argument | Invalid value range provided. |
std::invalid_argument | Invalid index range provided. |
std::runtime_error | Singular value decomposition failed. |
This function computes a specified number of singular values of the given general m-by-n matrix A by means of the LAPACK gesvdx() functions. The number of singular values to be computed is specified by the lower bound low and the upper bound upp, which either form an integral or a floating point range.
In case low and upp are of integral type, the function computes all singular values in the index range . The num resulting real and non-negative singular values are stored in descending order in the given vector s, which is either resized (if possible) or expected to be a num-dimensional vector.
In case low and upp are of floating point type, the function computes all singular values in the half-open interval . The resulting real and non-negative singular values are stored in descending order in the given vector s, which is either resized (if possible) or expected to be a min(m,n)-dimensional vector.
Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
In all failure cases an exception is thrown.
Examples:
For more information on the gesvdx() functions (i.e. sgesvdx(), dgesvdx(), cgesvdx(), and zgesvdx()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
U | The resulting matrix of left singular vectors. |
s | The resulting vector of singular values. |
std::invalid_argument | Vector cannot be resized. |
std::invalid_argument | Matrix cannot be resized. |
std::runtime_error | Singular value decomposition failed. |
This function computes all min(m,n) singular values of the given general m-by-n matrix A by means of the LAPACK gesvdx() functions. The resulting real and non-negative singular values are stored in descending order in the given vector s, the resulting left singular vectors are stored in the given matrix U. Both s and U are resized to the correct dimensions (if possible and necessary).
Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
In all failure cases an exception is thrown.
Examples:
For more information on the gesvdx() functions (i.e. sgesvdx(), dgesvdx(), cgesvdx(), and zgesvdx()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
U | The resulting matrix of left singular vectors. |
s | The resulting vector of singular values. |
low | The lower bound of the interval to be searched for singular values. |
upp | The upper bound of the interval to be searched for singular values. |
std::invalid_argument | Vector cannot be resized. |
std::invalid_argument | Matrix cannot be resized. |
std::invalid_argument | Invalid value range provided. |
std::invalid_argument | Invalid index range provided. |
std::runtime_error | Singular value decomposition failed. |
This function computes a specified number of singular values of the given general m-by-n matrix A by means of the LAPACK gesvdx() functions. The number of singular values to be computed is specified by the lower bound low and the upper bound upp, which either form an integral or a floating point range.
In case low and upp are of integral type, the function computes all singular values in the index range . The num resulting real and non-negative singular values are stored in descending order in the given vector s, which is either resized (if possible) or expected to be a num-dimensional vector. The resulting left singular vectors are stored in the given matrix U, which is either resized (if possible) or expected to be a m-by-num matrix.
In case low and upp are of floating point type, the function computes all singular values in the half-open interval . The resulting real and non-negative singular values are stored in descending order in the given vector s, which is either resized (if possible) or expected to be a min(m,n)-dimensional vector. The resulting left singular vectors are stored in the given matrix U, which is either resized (if possible) or expected to be a m-by-min(m,n) matrix.
Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
In all failure cases an exception is thrown.
Examples:
For more information on the gesvdx() functions (i.e. sgesvdx(), dgesvdx(), cgesvdx(), and zgesvdx()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
s | The resulting vector of singular values. |
V | The resulting matrix of right singular vectors. |
std::invalid_argument | Vector cannot be resized. |
std::invalid_argument | Matrix cannot be resized. |
std::runtime_error | Singular value decomposition failed. |
This function computes all min(m,n) singular values of the given general m-by-n matrix A by means of the LAPACK gesvdx() functions. The resulting real and non-negative singular values are stored in descending order in the given vector s. The resulting right singular vectors are stored in the given min(m,n)-by-n matrix V. Both s and V are resized to the correct dimensions (if possible and necessary).
Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
In all failure cases an exception is thrown.
Examples:
For more information on the gesvdx() functions (i.e. sgesvdx(), dgesvdx(), cgesvdx(), and zgesvdx()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general single precision column-major matrix.
jobu | Specifies the computation of the left singular vectors ('V' or 'N' ). |
jobv | Specifies the computation of the right singular vectors ('V' or 'N' ). |
range | Specifies the range of singular values to find ('A' , 'V' , or 'I' ). |
m | The number of rows of the given matrix ![]() |
n | The number of columns of the given matrix ![]() |
A | Pointer to the first element of the single precision column-major matrix. |
lda | The total number of elements between two columns of the matrix A ![]() |
vl | The lower bound of the interval to be searched for singular values (vl < vu). |
vu | The upper bound of the interval to be searched for singular values (vl < vu). |
il | The index of the smallest singular value to be returned (0 <= il <= iu). |
iu | The index of the largest singular value to be returned (0 <= il <= iu). |
ns | The total number of singular values found (0 <= ns <= min(m,n)). |
s | Pointer to the first element of the vector for the singular values. |
U | Pointer to the first element of the column-major matrix for the left singular vectors. |
ldu | The total number of elements between two columns of the matrix U ![]() |
V | Pointer to the first element of the column-major matrix for the right singular vectors. |
ldv | The total number of elements between two columns of the matrix V ![]() |
work | Auxiliary array; size >= max( 1, lwork ). |
lwork | The dimension of the array work; see online reference for details. |
iwork | Auxiliary array; size >= 12*min(m,n). |
info | Return code of the function call. |
This function computes a specified number of singular values of a general m-by-n single precision complex column-major matrix based on the LAPACK sgesvdx() function. Optionally, it computes a specified number of left and right singular vectors. The complete decomposition has the form
where S
is a m-by-n matrix, which is zero except for its min(m,n) diagonal elements, which are stored in s, U is an m-by-m orthogonal matrix, and V is a n-by-n orthogonal matrix. The diagonal elements of S
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 rows of V are the left and right singular vectors of A.
The parameter jobu specifies the computation of the left singular vectors:
'V'
: Either the first min(m, n) columns of U (the left singular vectors) or the number specified by range are computed.'N'
: No columns of U (no left singular vectors) are computed.The parameter jobv specifies the computation of the right singular vectors:
'V'
: Either the first min(m, n) rows of V (the right singular vectors) or the number specified by range are computed.'N'
: No rows of V (no right singular vectors) are computed.The parameter range specifies the amount of singular values/vectors to be found:
'A'
: All singular values will be found.'V'
: All singular values in the half-open interval 'I'
: The il-th through iu-th singular values will be found.The info argument provides feedback on the success of the function call:
For more information on the sgesvdx() function, see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
s | The resulting vector of singular values. |
V | The resulting matrix of right singular vectors. |
low | The lower bound of the interval to be searched for singular values. |
upp | The upper bound of the interval to be searched for singular values. |
std::invalid_argument | Vector cannot be resized. |
std::invalid_argument | Matrix cannot be resized. |
std::invalid_argument | Invalid value range provided. |
std::invalid_argument | Invalid index range provided. |
std::runtime_error | Singular value decomposition failed. |
This function computes a specified number of singular values of the given general m-by-n matrix A by means of the LAPACK gesvdx() functions. The number of singular values to be computed is specified by the lower bound low and the upper bound upp, which either form an integral or a floating point range.
In case low and upp are of integral type, the function computes all singular values in the index range . The num resulting real and non-negative singular values are stored in descending order in the given vector s, which is either resized (if possible) or expected to be a num-dimensional vector. The resulting right singular vectors are stored in the given matrix V, which is either resized (if possible) or expected to be a num-by-n matrix.
In case low and upp are of floating point type, the function computes all singular values in the half-open interval . The resulting real and non-negative singular values are stored in descending order in the given vector s, which is either resized (if possible) or expected to be a min(m,n)-dimensional vector. The resulting right singular vectors are stored in the given matrix V, which is either resized (if possible) or expected to be a min(m,n)-by-n matrix.
Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
In all failure cases an exception is thrown.
Examples:
For more information on the gesvdx() functions (i.e. sgesvdx(), dgesvdx(), cgesvdx(), and zgesvdx()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general double precision column-major matrix.
jobu | Specifies the computation of the left singular vectors ('V' or 'N' ). |
jobv | Specifies the computation of the right singular vectors ('V' or 'N' ). |
range | Specifies the range of singular values to find ('A' , 'V' , or 'I' ). |
m | The number of rows of the given matrix ![]() |
n | The number of columns of the given matrix ![]() |
A | Pointer to the first element of the double precision column-major matrix. |
lda | The total number of elements between two columns of the matrix A ![]() |
vl | The lower bound of the interval to be searched for singular values (vl < vu). |
vu | The upper bound of the interval to be searched for singular values (vl < vu). |
il | The index of the smallest singular value to be returned (0 <= il <= iu). |
iu | The index of the largest singular value to be returned (0 <= il <= iu). |
ns | The total number of singular values found (0 <= ns <= min(m,n)). |
s | Pointer to the first element of the vector for the singular values. |
U | Pointer to the first element of the column-major matrix for the left singular vectors. |
ldu | The total number of elements between two columns of the matrix U ![]() |
V | Pointer to the first element of the column-major matrix for the right singular vectors. |
ldv | The total number of elements between two columns of the matrix V ![]() |
work | Auxiliary array; size >= max( 1, lwork ). |
lwork | The dimension of the array work; see online reference for details. |
iwork | Auxiliary array; size >= 12*min(m,n). |
info | Return code of the function call. |
This function computes a specified number of singular values of a general m-by-n single precision complex column-major matrix based on the LAPACK dgesvdx() function. Optionally, it computes a specified number of left and right singular vectors. The complete decomposition has the form
where S
is a m-by-n matrix, which is zero except for its min(m,n) diagonal elements, which are stored in s, U is an m-by-m orthogonal matrix, and V is a n-by-n orthogonal matrix. The diagonal elements of S
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 rows of V are the left and right singular vectors of A.
The parameter jobu specifies the computation of the left singular vectors:
'V'
: Either the first min(m, n) columns of U (the left singular vectors) or the number specified by range are computed.'N'
: No columns of U (no left singular vectors) are computed.The parameter jobv specifies the computation of the right singular vectors:
'V'
: Either the first min(m, n) rows of V (the right singular vectors) or the number specified by range are computed.'N'
: No rows of V (no right singular vectors) are computed.The parameter range specifies the amount of singular values/vectors to be found:
'A'
: All singular values will be found.'V'
: All singular values in the half-open interval 'I'
: The il-th through iu-th singular values will be found.The info argument provides feedback on the success of the function call:
For more information on the dgesvdx() function, see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
U | The resulting matrix of left singular vectors. |
s | The resulting vector of singular values. |
V | The resulting matrix of right singular vectors. |
std::invalid_argument | Vector cannot be resized. |
std::invalid_argument | Matrix cannot be resized. |
std::runtime_error | Singular value decomposition failed. |
This function computes all min(m,n) singular values of the given general m-by-n matrix A by means of the LAPACK gesvdx() functions. The resulting real and non-negative singular values are stored in descending order in the given vector s, the resulting left singular vectors are stored in the given matrix U, and the resulting right singular vectors are stred in the given matrix V. s, U, and V are resized to the correct dimensions (if possible and necessary).
Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
In all failure cases an exception is thrown.
Examples:
For more information on the gesvdx() functions (i.e. sgesvdx(), dgesvdx(), cgesvdx(), and zgesvdx()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general matrix.
A | The given general matrix. |
U | The resulting matrix of left singular vectors. |
s | The resulting vector of singular values. |
V | The resulting matrix of right singular vectors. |
low | The lower bound of the interval to be searched for singular values. |
upp | The upper bound of the interval to be searched for singular values. |
std::invalid_argument | Vector cannot be resized. |
std::invalid_argument | Matrix cannot be resized. |
std::invalid_argument | Invalid value range provided. |
std::invalid_argument | Invalid index range provided. |
std::runtime_error | Singular value decomposition failed. |
This function computes a specified number of singular values of the given general m-by-n matrix A by means of the LAPACK gesvdx() functions. The number of singular values to be computed is specified by the lower bound low and the upper bound upp, which either form an integral or a floating point range.
In case low and upp form are of integral type, the function computes all singular values in the index range . The num resulting real and non-negative singular values are stored in descending order in the given vector s, which is either resized (if possible) or expected to be a num-dimensional vector. The resulting left singular vectors are stored in the given matrix U, which is either resized (if possible) or expected to be a m-by-num matrix. The resulting right singular vectors are stored in the given matrix V, which is either resized (if possible) or expected to be a num-by-n matrix.
In case low and upp are of floating point type, the function computes all singular values in the half-open interval . The resulting real and non-negative singular values are stored in descending order in the given vector s, which is either resized (if possible) or expected to be a min(m,n)-dimensional vector. The resulting left singular vectors are stored in the given matrix U, which is either resized (if possible) or expected to be a m-by-min(m,n) matrix. The resulting right singular vectors are stored in the given matrix V, which is either resized (if possible) or expected to be a min(m,n)-by-n matrix.
Note that this function can only be used for general, non-adapted matrices with float
, double
, complex<float>
, or complex<double>
element type. The attempt to call the function with any adapted matrix or matrices of any other element type results in a compile time error!
The function fails if ...
In all failure cases an exception is thrown.
Examples:
For more information on the gesvdx() functions (i.e. sgesvdx(), dgesvdx(), cgesvdx(), and zgesvdx()) see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general single precision complex column-major matrix.
jobu | Specifies the computation of the left singular vectors ('V' or 'N' ). |
jobv | Specifies the computation of the right singular vectors ('V' or 'N' ). |
range | Specifies the range of singular values to find ('A' , 'V' , or 'I' ). |
m | The number of rows of the given matrix ![]() |
n | The number of columns of the given matrix ![]() |
A | Pointer to the first element of the single precision column-major matrix. |
lda | The total number of elements between two columns of the matrix A ![]() |
vl | The lower bound of the interval to be searched for singular values (vl < vu). |
vu | The upper bound of the interval to be searched for singular values (vl < vu). |
il | The index of the smallest singular value to be returned (0 <= il <= iu). |
iu | The index of the largest singular value to be returned (0 <= il <= iu). |
ns | The total number of singular values found (0 <= ns <= min(m,n)). |
s | Pointer to the first element of the vector for the singular values. |
U | Pointer to the first element of the column-major matrix for the left singular vectors. |
ldu | The total number of elements between two columns of the matrix U ![]() |
V | Pointer to the first element of the column-major matrix for the right singular vectors. |
ldv | The total number of elements between two columns of the matrix V ![]() |
work | Auxiliary array; size >= max( 1, lwork ). |
lwork | The dimension of the array work; see online reference for details. |
rwork | Auxiliary array; size >= min(m,n) * ( min(m,n)^2 + 15*min(m,n) ). |
iwork | Auxiliary array; size >= 12*min(m,n). |
info | Return code of the function call. |
This function computes a specified number of singular values of a general m-by-n single precision complex column-major matrix based on the LAPACK cgesvdx() function. Optionally, it computes a specified number of left and right singular vectors. The complete decomposition has the form
where S
is a m-by-n matrix, which is zero except for its min(m,n) diagonal elements, which are stored in s, U is an m-by-m orthogonal matrix, and V is a n-by-n orthogonal matrix. The diagonal elements of S
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 rows of V are the left and right singular vectors of A.
The parameter jobu specifies the computation of the left singular vectors:
'V'
: Either the first min(m, n) columns of U (the left singular vectors) or the number specified by range are computed.'N'
: No columns of U (no left singular vectors) are computed.The parameter jobv specifies the computation of the right singular vectors:
'V'
: Either the first min(m, n) rows of V (the right singular vectors) or the number specified by range are computed.'N'
: No rows of V (no right singular vectors) are computed.The parameter range specifies the amount of singular values/vectors to be found:
'A'
: All singular values will be found.'V'
: All singular values in the half-open interval 'I'
: The il-th through iu-th singular values will be found.The info argument provides feedback on the success of the function call:
For more information on the cgesvdx() function, see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/
|
inline |
LAPACK kernel for the singular value decomposition (SVD) of the given dense general double precision complex column-major matrix.
jobu | Specifies the computation of the left singular vectors ('V' or 'N' ). |
jobv | Specifies the computation of the right singular vectors ('V' or 'N' ). |
range | Specifies the range of singular values to find ('A' , 'V' , or 'I' ). |
m | The number of rows of the given matrix ![]() |
n | The number of columns of the given matrix ![]() |
A | Pointer to the first element of the double precision column-major matrix. |
lda | The total number of elements between two columns of the matrix A ![]() |
vl | The lower bound of the interval to be searched for singular values (vl < vu). |
vu | The upper bound of the interval to be searched for singular values (vl < vu). |
il | The index of the smallest singular value to be returned (0 <= il <= iu). |
iu | The index of the largest singular value to be returned (0 <= il <= iu). |
ns | The total number of singular values found (0 <= ns <= min(m,n)). |
s | Pointer to the first element of the vector for the singular values. |
U | Pointer to the first element of the column-major matrix for the left singular vectors. |
ldu | The total number of elements between two columns of the matrix U ![]() |
V | Pointer to the first element of the column-major matrix for the right singular vectors. |
ldv | The total number of elements between two columns of the matrix V ![]() |
work | Auxiliary array; size >= max( 1, lwork ). |
lwork | The dimension of the array work; see online reference for details. |
rwork | Auxiliary array; size >= min(m,n) * ( min(m,n)^2 + 15*min(m,n) ). |
iwork | Auxiliary array; size >= 12*min(m,n). |
info | Return code of the function call. |
This function computes a specified number of singular values of a general m-by-n single precision complex column-major matrix based on the LAPACK zgesvdx() function. Optionally, it computes a specified number of left and right singular vectors. The complete decomposition has the form
where S
is a m-by-n matrix, which is zero except for its min(m,n) diagonal elements, which are stored in s, U is an m-by-m orthogonal matrix, and V is a n-by-n orthogonal matrix. The diagonal elements of S
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 rows of V are the left and right singular vectors of A.
The parameter jobu specifies the computation of the left singular vectors:
'V'
: Either the first min(m, n) columns of U (the left singular vectors) or the number specified by range are computed.'N'
: No columns of U (no left singular vectors) are computed.The parameter jobv specifies the computation of the right singular vectors:
'V'
: Either the first min(m, n) rows of V (the right singular vectors) or the number specified by range are computed.'N'
: No rows of V (no right singular vectors) are computed.The parameter range specifies the amount of singular values/vectors to be found:
'A'
: All singular values will be found.'V'
: All singular values in the half-open interval 'I'
: The il-th through iu-th singular values will be found.The info argument provides feedback on the success of the function call:
For more information on the zgesvdx() function, see the LAPACK online documentation browser:
http://www.netlib.org/lapack/explore-html/