muSOLVER API 参考
目录
- File musolverDn.h
- File musolverMg.h
- File musolverRf.h
- File musolverSp.h
- File musolver.h
- File musolver_common.h
File musolverDn.h
Location: musolverDn.h
musolverDn.h provides dense Lapack functionality for musa_toolkit platform.
Includes
Included by
Function musolverDnSorgqr
musolverStatus_t MUSOLVERAPI musolverDnSorgqr(musolverDnHandle_t handle, int m, int n, int k, float *A, int lda, float *tau, float *work, int lwork, int *info)
ORGQR generates an m-by-n Matrix Q with orthonormal columns.
(This is the blocked version of the algorithm).
The matrix Q is defined as the first n columns of the product of k Householder reflectors of order m
formula {"type":"element","name":"formula","attributes":{"id":"6"},"children":[{"type":"text","text":"\\[\n Q = H_1H_2\\cdots H_k\n \\]"}]}
The Householder matrices formula {"type":"element","name":"formula","attributes":{"id":"7"},"children":[{"type":"text","text":"$H_i$"}]} are never stored, they are computed from its corresponding Householder vectors formula {"type":"element","name":"formula","attributes":{"id":"8"},"children":[{"type":"text","text":"$v_i$"}]} and scalars formula {"type":"element","name":"formula","attributes":{"id":"9"},"children":[{"type":"text","text":"$\\text{ipiv}[i]$"}]}, as returned by GEQRF.
Parameters:
- handle: musolverDnHandle_t .
- m: int. m >= 0.
The number of rows of the matrix Q. - n: int. 0 <= n <= m.
The number of columns of the matrix Q. - k: int. 0 <= k <= n.
The number of Householder reflectors. - A: pointer to type. Array on the GPU of dimension lda*n.
On entry, the matrix A as returned by GEQRF, with the Householder vectors in the first k columns. On exit, the computed matrix Q. - lda: int. lda >= m.
Specifies the leading dimension of A. - ipiv: pointer to type. Array on the GPU of dimension at least k.
The Householder scalars as returned by GEQRF.
Parameters:
- musolverDnHandle_t handle
- int m
- int n
- int k
- float * A
- int lda
- float * tau
- float * work
- int lwork
- int * info
Return type: musolverStatus_t MUSOLVERAPI
Function musolverDnDorgqr
musolverStatus_t MUSOLVERAPI musolverDnDorgqr(musolverDnHandle_t handle, int m, int n, int k, double *A, int lda, double *tau, double *work, int lwork, int *info)
Parameters:
- musolverDnHandle_t handle
- int m
- int n
- int k
- double * A
- int lda
- double * tau
- double * work
- int lwork
- int * info
Return type: musolverStatus_t MUSOLVERAPI
Function musolverDnCungqr
musolverStatus_t MUSOLVERAPI musolverDnCungqr(musolverDnHandle_t handle, int m, int n, int k, muComplex *A, int lda, muComplex *tau, muComplex *work, int lwork, int *info)
UNGQR generates an m-by-n complex Matrix Q with orthonormal columns.
(This is the blocked version of the algorithm).
The matrix Q is defined as the first n columns of the product of k Householder reflectors of order m
formula {"type":"element","name":"formula","attributes":{"id":"6"},"children":[{"type":"text","text":"\\[\n Q = H_1H_2\\cdots H_k\n \\]"}]}
Householder matrices formula {"type":"element","name":"formula","attributes":{"id":"7"},"children":[{"type":"text","text":"$H_i$"}]} are never stored, they are computed from its corresponding Householder vectors formula {"type":"element","name":"formula","attributes":{"id":"8"},"children":[{"type":"text","text":"$v_i$"}]} and scalars formula {"type":"element","name":"formula","attributes":{"id":"9"},"children":[{"type":"text","text":"$\\text{ipiv}[i]$"}]}, as returned by GEQRF.
Parameters:
- handle: musolverDnHandle_t .
- m: int. m >= 0.
The number of rows of the matrix Q. - n: int. 0 <= n <= m.
The number of columns of the matrix Q. - k: int. 0 <= k <= n.
The number of Householder reflectors. - A: pointer to type. Array on the GPU of dimension lda*n.
On entry, the matrix A as returned by GEQRF, with the Householder vectors in the first k columns. On exit, the computed matrix Q. - lda: int. lda >= m.
Specifies the leading dimension of A. - ipiv: pointer to type. Array on the GPU of dimension at least k.
The Householder scalars as returned by GEQRF.
Parameters:
- musolverDnHandle_t handle
- int m
- int n
- int k
- muComplex * A
- int lda
- muComplex * tau
- muComplex * work
- int lwork
- int * info
Return type: musolverStatus_t MUSOLVERAPI
Function musolverDnZungqr
musolverStatus_t MUSOLVERAPI musolverDnZungqr(musolverDnHandle_t handle, int m, int n, int k, muDoubleComplex *A, int lda, muDoubleComplex *tau, muDoubleComplex *work, int lwork, int *info)
Parameters:
- musolverDnHandle_t handle
- int m
- int n
- int k
- muDoubleComplex * A
- int lda
- muDoubleComplex * tau
- muDoubleComplex * work
- int lwork
- int * info
Return type: musolverStatus_t MUSOLVERAPI
Function musolverDnSorgqr_bufferSize
musolverStatus_t MUSOLVERAPI musolverDnSorgqr_bufferSize(musolverDnHandle_t handle, int m, int n, int k, const float *A, int lda, const float *tau, int *lwork)
get buffer size to generate orthogonal matrix Q.
{@
This function computes the required workspace size for ORGQR operation.
Parameters:
- handle: musolverDnHandle_t.
- m: int. The number of rows of the matrix A.
- n: int. The number of columns of the matrix A.
- A: pointer to type. Array on the GPU containing the matrix A.
- lda: int. The leading dimension of A.
- lwork: pointer to int. Returns the required workspace size.
Parameters:
- musolverDnHandle_t handle
- int m
- int n
- int k
- const float * A
- int lda
- const float * tau
- int * lwork
Return type: musolverStatus_t MUSOLVERAPI
Function musolverDnDorgqr_bufferSize
musolverStatus_t MUSOLVERAPI musolverDnDorgqr_bufferSize(musolverDnHandle_t handle, int m, int n, int k, const double *A, int lda, const double *tau, int *lwork)
get buffer size to generate orthogonal matrix Q.
{@
This function computes the required workspace size for ORGQR operation.
Parameters:
- handle: musolverDnHandle_t.
- m: int. The number of rows of the matrix A.
- n: int. The number of columns of the matrix A.
- A: pointer to type. Array on the GPU containing the matrix A.
- lda: int. The leading dimension of A.
- lwork: pointer to int. Returns the required workspace size.
Parameters:
- musolverDnHandle_t handle
- int m
- int n
- int k
- const double * A
- int lda
- const double * tau
- int * lwork
Return type: musolverStatus_t MUSOLVERAPI
Function musolverDnCungqr_bufferSize
musolverStatus_t MUSOLVERAPI musolverDnCungqr_bufferSize(musolverDnHandle_t handle, int m, int n, int k, const muComplex *A, int lda, const muComplex *tau, int *lwork)
get buffer size to generate unitary matrix Q.
{@
This function computes the required workspace size for UNGQR operation.
Parameters:
- handle: musolverDnHandle_t.
- m: int. The number of rows of the matrix A.
- n: int. The number of columns of the matrix A.
- A: pointer to type. Array on the GPU containing the matrix A.
- lda: int. The leading dimension of A.
- lwork: pointer to int. Returns the required workspace size.
Parameters:
- musolverDnHandle_t handle
- int m
- int n
- int k
- const muComplex * A
- int lda
- const muComplex * tau
- int * lwork
Return type: musolverStatus_t MUSOLVERAPI
Function musolverDnZungqr_bufferSize
musolverStatus_t MUSOLVERAPI musolverDnZungqr_bufferSize(musolverDnHandle_t handle, int m, int n, int k, const muDoubleComplex *A, int lda, const muDoubleComplex *tau, int *lwork)
get buffer size to generate unitary matrix Q.
{@
This function computes the required workspace size for UNGQR operation.
Parameters:
- handle: musolverDnHandle_t.
- m: int. The number of rows of the matrix A.
- n: int. The number of columns of the matrix A.
- A: pointer to type. Array on the GPU containing the matrix A.
- lda: int. The leading dimension of A.
- lwork: pointer to int. Returns the required workspace size.
Parameters:
- musolverDnHandle_t handle
- int m
- int n
- int k
- const muDoubleComplex * A
- int lda
- const muDoubleComplex * tau
- int * lwork
Return type: musolverStatus_t MUSOLVERAPI
Function musolverDnSorgbr
musolverStatus_t MUSOLVERAPI musolverDnSorgbr(musolverDnHandle_t handle, const mublasStorev storev, const int m, const int n, const int k, float *A, const int lda, float *ipiv)
ORGBR generates an m-by-n Matrix Q with orthonormal rows or columns.
If storev is column-wise, then the matrix Q has orthonormal columns. If m >= k, Q is defined as the first n columns of the product of k Householder reflectors of order m
formula {"type":"element","name":"formula","attributes":{"id":"6"},"children":[{"type":"text","text":"\\[\n Q = H_1H_2\\cdots H_k\n \\]"}]}
If m < k, Q is defined as the product of Householder reflectors of order m
formula {"type":"element","name":"formula","attributes":{"id":"10"},"children":[{"type":"text","text":"\\[\n Q = H_1H_2\\cdots H_{m-1}\n \\]"}]}
On the other hand, if storev is row-wise, then the matrix Q has orthonormal rows. If n > k, Q is defined as the first m rows of the product of k Householder reflectors of order n
formula {"type":"element","name":"formula","attributes":{"id":"11"},"children":[{"type":"text","text":"\\[\n Q = H_kH_{k-1}\\cdots H_1\n \\]"}]}
If n <= k, Q is defined as the product of Householder reflectors of order n
formula {"type":"element","name":"formula","attributes":{"id":"12"},"children":[{"type":"text","text":"\\[\n Q = H_{n-1}H_{n-2}\\cdots H_1\n \\]"}]}
The Householder matrices formula {"type":"element","name":"formula","attributes":{"id":"7"},"children":[{"type":"text","text":"$H_i$"}]} are never stored, they are computed from its corresponding Householder vectors formula {"type":"element","name":"formula","attributes":{"id":"8"},"children":[{"type":"text","text":"$v_i$"}]} and scalars formula {"type":"element","name":"formula","attributes":{"id":"9"},"children":[{"type":"text","text":"$\\text{ipiv}[i]$"}]}, as returned by GEBRD in its arguments A and tauq or taup.
Parameters:
- handle: musolverDnHandle_t .
- storev: mublasStorev.
Specifies whether to work column-wise or row-wise. - m: int. m >= 0.
The number of rows of the matrix Q. If row-wise, then min(n,k) <= m <= n. - n: int. n >= 0.
The number of columns of the matrix Q. If column-wise, then min(m,k) <= n <= m. - k: int. k >= 0.
The number of columns (if storev is column-wise) or rows (if row-wise) of the original matrix reduced by GEBRD. - A: pointer to type. Array on the GPU of dimension lda*n.
On entry, the Householder vectors as returned by GEBRD. On exit, the computed matrix Q. - lda: int. lda >= m.
Specifies the leading dimension of A. - ipiv: pointer to type. Array on the GPU of dimension min(m,k) if column-wise, or min(n,k) if row-wise.
The Householder scalars as returned by GEBRD.
Parameters:
- musolverDnHandle_t handle
- const mublasStorev storev
- const int m
- const int n
- const int k
- float * A
- const int lda
- float * ipiv
Return type: musolverStatus_t MUSOLVERAPI
Function musolverDnDorgbr
musolverStatus_t MUSOLVERAPI musolverDnDorgbr(musolverDnHandle_t handle, const mublasStorev storev, const int m, const int n, const int k, double *A, const int lda, double *ipiv)
Parameters:
- musolverDnHandle_t handle
- const mublasStorev storev
- const int m
- const int n
- const int k
- double * A
- const int lda
- double * ipiv
Return type: musolverStatus_t MUSOLVERAPI
Function musolverDnCungbr
musolverStatus_t MUSOLVERAPI musolverDnCungbr(musolverDnHandle_t handle, const mublasStorev storev, const int m, const int n, const int k, muComplex *A, const int lda, muComplex *ipiv)
UNGBR generates an m-by-n complex Matrix Q with orthonormal rows or columns.
If storev is column-wise, then the matrix Q has orthonormal columns. If m >= k, Q is defined as the first n columns of the product of k Householder reflectors of order m
formula {"type":"element","name":"formula","attributes":{"id":"6"},"children":[{"type":"text","text":"\\[\n Q = H_1H_2\\cdots H_k\n \\]"}]}
If m < k, Q is defined as the product of Householder reflectors of order m
formula {"type":"element","name":"formula","attributes":{"id":"10"},"children":[{"type":"text","text":"\\[\n Q = H_1H_2\\cdots H_{m-1}\n \\]"}]}
On the other hand, if storev is row-wise, then the matrix Q has orthonormal rows. If n > k, Q is defined as the first m rows of the product of k Householder reflectors of order n
formula {"type":"element","name":"formula","attributes":{"id":"11"},"children":[{"type":"text","text":"\\[\n Q = H_kH_{k-1}\\cdots H_1\n \\]"}]}
If n <= k, Q is defined as the product of Householder reflectors of order n
formula {"type":"element","name":"formula","attributes":{"id":"12"},"children":[{"type":"text","text":"\\[\n Q = H_{n-1}H_{n-2}\\cdots H_1\n \\]"}]}
The Householder matrices formula {"type":"element","name":"formula","attributes":{"id":"7"},"children":[{"type":"text","text":"$H_i$"}]} are never stored, they are computed from its corresponding Householder vectors formula {"type":"element","name":"formula","attributes":{"id":"8"},"children":[{"type":"text","text":"$v_i$"}]} and scalars formula {"type":"element","name":"formula","attributes":{"id":"9"},"children":[{"type":"text","text":"$\\text{ipiv}[i]$"}]}, as returned by GEBRD in its arguments A and tauq or taup.
Parameters:
- handle: musolverDnHandle_t .
- storev: mublasStorev.
Specifies whether to work column-wise or row-wise. - m: int. m >= 0.
The number of rows of the matrix Q. If row-wise, then min(n,k) <= m <= n. - n: int. n >= 0.
The number of columns of the matrix Q. If column-wise, then min(m,k) <= n <= m. - k: int. k >= 0.
The number of columns (if storev is column-wise) or rows (if row-wise) of the original matrix reduced by GEBRD. - A: pointer to type. Array on the GPU of dimension lda*n.
On entry, the Householder vectors as returned by GEBRD. On exit, the computed matrix Q. - lda: int. lda >= m.
Specifies the leading dimension of A. - ipiv: pointer to type. Array on the GPU of dimension min(m,k) if column-wise, or min(n,k) if row-wise.
The Householder scalars as returned by GEBRD.
Parameters:
- musolverDnHandle_t handle
- const mublasStorev storev
- const int m
- const int n
- const int k
- muComplex * A
- const int lda
- muComplex * ipiv
Return type: musolverStatus_t MUSOLVERAPI
Function musolverDnZungbr
musolverStatus_t MUSOLVERAPI musolverDnZungbr(musolverDnHandle_t handle, const mublasStorev storev, const int m, const int n, const int k, muDoubleComplex *A, const int lda, muDoubleComplex *ipiv)
Parameters:
- musolverDnHandle_t handle
- const mublasStorev storev
- const int m
- const int n
- const int k
- muDoubleComplex * A
- const int lda
- muDoubleComplex * ipiv
Return type: musolverStatus_t MUSOLVERAPI
Function musolverDnSorgtr
musolverStatus_t MUSOLVERAPI musolverDnSorgtr(musolverDnHandle_t handle, const mublasFillMode_t uplo, const int n, float *A, const int lda, float *ipiv)
ORGTR generates an n-by-n orthogonal Matrix Q.
Q is defined as the product of n-1 Householder reflectors of order n. If uplo indicates upper, then Q has the form
formula {"type":"element","name":"formula","attributes":{"id":"12"},"children":[{"type":"text","text":"\\[\n Q = H_{n-1}H_{n-2}\\cdots H_1\n \\]"}]}
On the other hand, if uplo indicates lower, then Q has the form
formula {"type":"element","name":"formula","attributes":{"id":"13"},"children":[{"type":"text","text":"\\[\n Q = H_1H_2\\cdots H_{n-1}\n \\]"}]}
The Householder matrices formula {"type":"element","name":"formula","attributes":{"id":"7"},"children":[{"type":"text","text":"$H_i$"}]} are never stored, they are computed from its corresponding Householder vectors formula {"type":"element","name":"formula","attributes":{"id":"8"},"children":[{"type":"text","text":"$v_i$"}]} and scalars formula {"type":"element","name":"formula","attributes":{"id":"9"},"children":[{"type":"text","text":"$\\text{ipiv}[i]$"}]}, as returned by SYTRD in its arguments A and tau.
Parameters:
- handle: musolverDnHandle_t .
- uplo: mublasFillMode_t .
Specifies whether the SYTRD factorization was upper or lower triangular. If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. - n: int. n >= 0.
The number of rows and columns of the matrix Q. - A: pointer to type. Array on the GPU of dimension lda*n.
On entry, the Householder vectors as returned by SYTRD. On exit, the computed matrix Q. - lda: int. lda >= n.
Specifies the leading dimension of A. - ipiv: pointer to type. Array on the GPU of dimension n-1.
The Householder scalars as returned by SYTRD.
Parameters:
- musolverDnHandle_t handle
- const mublasFillMode_t uplo
- const int n
- float * A
- const int lda
- float * ipiv
Return type: musolverStatus_t MUSOLVERAPI