PLASMA
Parallel Linear Algebra Software for Multicore Architectures
or/unglq: Generates Q from LQ factorization

Functions

int plasma_cunglq (int m, int n, int k, plasma_complex32_t *pA, int lda, plasma_desc_t T, plasma_complex32_t *pQ, int ldq)
 
void plasma_omp_cunglq (plasma_desc_t A, plasma_desc_t T, plasma_desc_t Q, plasma_workspace_t work, plasma_sequence_t *sequence, plasma_request_t *request)
 
int plasma_dorglq (int m, int n, int k, double *pA, int lda, plasma_desc_t T, double *pQ, int ldq)
 
void plasma_omp_dorglq (plasma_desc_t A, plasma_desc_t T, plasma_desc_t Q, plasma_workspace_t work, plasma_sequence_t *sequence, plasma_request_t *request)
 
int plasma_sorglq (int m, int n, int k, float *pA, int lda, plasma_desc_t T, float *pQ, int ldq)
 
void plasma_omp_sorglq (plasma_desc_t A, plasma_desc_t T, plasma_desc_t Q, plasma_workspace_t work, plasma_sequence_t *sequence, plasma_request_t *request)
 
int plasma_zunglq (int m, int n, int k, plasma_complex64_t *pA, int lda, plasma_desc_t T, plasma_complex64_t *pQ, int ldq)
 
void plasma_omp_zunglq (plasma_desc_t A, plasma_desc_t T, plasma_desc_t Q, plasma_workspace_t work, plasma_sequence_t *sequence, plasma_request_t *request)
 

Detailed Description

Function Documentation

int plasma_cunglq ( int  m,
int  n,
int  k,
plasma_complex32_t *  pA,
int  lda,
plasma_desc_t  T,
plasma_complex32_t *  pQ,
int  ldq 
)

Generates an m-by-n matrix Q with orthonormal rows, which is defined as the first m rows of a product of the elementary reflectors returned by plasma_cgelqf.

Parameters
[in]mThe number of rows of the matrix Q. m >= 0.
[in]nThe number of columns of the matrix Q. n >= m.
[in]kThe number of rows of elementary tile reflectors whose product defines the matrix Q. m >= k >= 0.
[in]pADetails of the LQ factorization of the original matrix A as returned by plasma_cgelqf.
[in]ldaThe leading dimension of the array A. lda >= max(1,m).
[in]TAuxiliary factorization data, computed by plasma_cgelqf.
[out]pQOn exit, pointer to the m-by-n matrix Q.
[in]ldqThe leading dimension of the array Q. ldq >= max(1,m).
Return values
PlasmaSuccesssuccessful exit
<0 if -i, the i-th argument had an illegal value
See also
plasma_omp_cunglq
plasma_cunglq
plasma_dorglq
plasma_sorglq
plasma_cgelqf
void plasma_omp_cunglq ( plasma_desc_t  A,
plasma_desc_t  T,
plasma_desc_t  Q,
plasma_workspace_t  work,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Non-blocking tile version of plasma_cunglq(). May return before the computation is finished. Allows for pipelining of operations at runtime.

Parameters
[in]ADescriptor of matrix A. A is stored in the tile layout.
[in]TDescriptor of matrix T. Auxiliary factorization data, computed by plasma_cgelqf.
[out]QDescriptor of matrix Q. On exit, matrix Q stored in the tile layout.
[in]workWorkspace for the auxiliary arrays needed by some coreblas kernels. For multiplication by Q contains preallocated space for work arrays. Allocated by the plasma_workspace_create function.
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).
Return values
voidErrors are returned by setting sequence->status and request->status to error values. The sequence->status and request->status should never be set to PlasmaSuccess (the initial values) since another async call may be setting a failure value at the same time.
See also
plasma_cunglq
plasma_omp_cunglq
plasma_omp_dorglq
plasma_omp_sorglq
plasma_omp_cgelqf
int plasma_dorglq ( int  m,
int  n,
int  k,
double *  pA,
int  lda,
plasma_desc_t  T,
double *  pQ,
int  ldq 
)

Generates an m-by-n matrix Q with orthonormal rows, which is defined as the first m rows of a product of the elementary reflectors returned by plasma_dgelqf.

Parameters
[in]mThe number of rows of the matrix Q. m >= 0.
[in]nThe number of columns of the matrix Q. n >= m.
[in]kThe number of rows of elementary tile reflectors whose product defines the matrix Q. m >= k >= 0.
[in]pADetails of the LQ factorization of the original matrix A as returned by plasma_dgelqf.
[in]ldaThe leading dimension of the array A. lda >= max(1,m).
[in]TAuxiliary factorization data, computed by plasma_dgelqf.
[out]pQOn exit, pointer to the m-by-n matrix Q.
[in]ldqThe leading dimension of the array Q. ldq >= max(1,m).
Return values
PlasmaSuccesssuccessful exit
<0 if -i, the i-th argument had an illegal value
See also
plasma_omp_dorglq
plasma_cunglq
plasma_dorglq
plasma_sorglq
plasma_dgelqf
void plasma_omp_dorglq ( plasma_desc_t  A,
plasma_desc_t  T,
plasma_desc_t  Q,
plasma_workspace_t  work,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Non-blocking tile version of plasma_dorglq(). May return before the computation is finished. Allows for pipelining of operations at runtime.

Parameters
[in]ADescriptor of matrix A. A is stored in the tile layout.
[in]TDescriptor of matrix T. Auxiliary factorization data, computed by plasma_dgelqf.
[out]QDescriptor of matrix Q. On exit, matrix Q stored in the tile layout.
[in]workWorkspace for the auxiliary arrays needed by some coreblas kernels. For multiplication by Q contains preallocated space for work arrays. Allocated by the plasma_workspace_create function.
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).
Return values
voidErrors are returned by setting sequence->status and request->status to error values. The sequence->status and request->status should never be set to PlasmaSuccess (the initial values) since another async call may be setting a failure value at the same time.
See also
plasma_dorglq
plasma_omp_cunglq
plasma_omp_dorglq
plasma_omp_sorglq
plasma_omp_dgelqf
int plasma_sorglq ( int  m,
int  n,
int  k,
float *  pA,
int  lda,
plasma_desc_t  T,
float *  pQ,
int  ldq 
)

Generates an m-by-n matrix Q with orthonormal rows, which is defined as the first m rows of a product of the elementary reflectors returned by plasma_sgelqf.

Parameters
[in]mThe number of rows of the matrix Q. m >= 0.
[in]nThe number of columns of the matrix Q. n >= m.
[in]kThe number of rows of elementary tile reflectors whose product defines the matrix Q. m >= k >= 0.
[in]pADetails of the LQ factorization of the original matrix A as returned by plasma_sgelqf.
[in]ldaThe leading dimension of the array A. lda >= max(1,m).
[in]TAuxiliary factorization data, computed by plasma_sgelqf.
[out]pQOn exit, pointer to the m-by-n matrix Q.
[in]ldqThe leading dimension of the array Q. ldq >= max(1,m).
Return values
PlasmaSuccesssuccessful exit
<0 if -i, the i-th argument had an illegal value
See also
plasma_omp_sorglq
plasma_cunglq
plasma_dorglq
plasma_sorglq
plasma_sgelqf
void plasma_omp_sorglq ( plasma_desc_t  A,
plasma_desc_t  T,
plasma_desc_t  Q,
plasma_workspace_t  work,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Non-blocking tile version of plasma_sorglq(). May return before the computation is finished. Allows for pipelining of operations at runtime.

Parameters
[in]ADescriptor of matrix A. A is stored in the tile layout.
[in]TDescriptor of matrix T. Auxiliary factorization data, computed by plasma_sgelqf.
[out]QDescriptor of matrix Q. On exit, matrix Q stored in the tile layout.
[in]workWorkspace for the auxiliary arrays needed by some coreblas kernels. For multiplication by Q contains preallocated space for work arrays. Allocated by the plasma_workspace_create function.
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).
Return values
voidErrors are returned by setting sequence->status and request->status to error values. The sequence->status and request->status should never be set to PlasmaSuccess (the initial values) since another async call may be setting a failure value at the same time.
See also
plasma_sorglq
plasma_omp_cunglq
plasma_omp_dorglq
plasma_omp_sorglq
plasma_omp_sgelqf
int plasma_zunglq ( int  m,
int  n,
int  k,
plasma_complex64_t *  pA,
int  lda,
plasma_desc_t  T,
plasma_complex64_t *  pQ,
int  ldq 
)

Generates an m-by-n matrix Q with orthonormal rows, which is defined as the first m rows of a product of the elementary reflectors returned by plasma_zgelqf.

Parameters
[in]mThe number of rows of the matrix Q. m >= 0.
[in]nThe number of columns of the matrix Q. n >= m.
[in]kThe number of rows of elementary tile reflectors whose product defines the matrix Q. m >= k >= 0.
[in]pADetails of the LQ factorization of the original matrix A as returned by plasma_zgelqf.
[in]ldaThe leading dimension of the array A. lda >= max(1,m).
[in]TAuxiliary factorization data, computed by plasma_zgelqf.
[out]pQOn exit, pointer to the m-by-n matrix Q.
[in]ldqThe leading dimension of the array Q. ldq >= max(1,m).
Return values
PlasmaSuccesssuccessful exit
<0 if -i, the i-th argument had an illegal value
See also
plasma_omp_zunglq
plasma_cunglq
plasma_dorglq
plasma_sorglq
plasma_zgelqf
void plasma_omp_zunglq ( plasma_desc_t  A,
plasma_desc_t  T,
plasma_desc_t  Q,
plasma_workspace_t  work,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Non-blocking tile version of plasma_zunglq(). May return before the computation is finished. Allows for pipelining of operations at runtime.

Parameters
[in]ADescriptor of matrix A. A is stored in the tile layout.
[in]TDescriptor of matrix T. Auxiliary factorization data, computed by plasma_zgelqf.
[out]QDescriptor of matrix Q. On exit, matrix Q stored in the tile layout.
[in]workWorkspace for the auxiliary arrays needed by some coreblas kernels. For multiplication by Q contains preallocated space for work arrays. Allocated by the plasma_workspace_create function.
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).
Return values
voidErrors are returned by setting sequence->status and request->status to error values. The sequence->status and request->status should never be set to PlasmaSuccess (the initial values) since another async call may be setting a failure value at the same time.
See also
plasma_zunglq
plasma_omp_cunglq
plasma_omp_dorglq
plasma_omp_sorglq
plasma_omp_zgelqf