PLASMA
Parallel Linear Algebra Software for Multicore Architectures
geqrs: Back solve using QR factorization of A

Functions

int plasma_cgeqrs (int m, int n, int nrhs, plasma_complex32_t *pA, int lda, plasma_desc_t T, plasma_complex32_t *pB, int ldb)
 
void plasma_omp_cgeqrs (plasma_desc_t A, plasma_desc_t T, plasma_desc_t B, plasma_workspace_t work, plasma_sequence_t *sequence, plasma_request_t *request)
 
int plasma_dgeqrs (int m, int n, int nrhs, double *pA, int lda, plasma_desc_t T, double *pB, int ldb)
 
void plasma_omp_dgeqrs (plasma_desc_t A, plasma_desc_t T, plasma_desc_t B, plasma_workspace_t work, plasma_sequence_t *sequence, plasma_request_t *request)
 
int plasma_sgeqrs (int m, int n, int nrhs, float *pA, int lda, plasma_desc_t T, float *pB, int ldb)
 
void plasma_omp_sgeqrs (plasma_desc_t A, plasma_desc_t T, plasma_desc_t B, plasma_workspace_t work, plasma_sequence_t *sequence, plasma_request_t *request)
 
int plasma_zgeqrs (int m, int n, int nrhs, plasma_complex64_t *pA, int lda, plasma_desc_t T, plasma_complex64_t *pB, int ldb)
 
void plasma_omp_zgeqrs (plasma_desc_t A, plasma_desc_t T, plasma_desc_t B, plasma_workspace_t work, plasma_sequence_t *sequence, plasma_request_t *request)
 

Detailed Description

Function Documentation

int plasma_cgeqrs ( int  m,
int  n,
int  nrhs,
plasma_complex32_t *  pA,
int  lda,
plasma_desc_t  T,
plasma_complex32_t *  pB,
int  ldb 
)

Computes a minimum-norm solution min || A*X - B || using the QR factorization A = Q*R computed by plasma_cgeqrf.

Parameters
[in]mThe number of rows of the matrix A. m >= 0.
[in]nThe number of columns of the matrix A. m >= n >= 0.
[in]nrhsThe number of columns of B. nrhs >= 0.
[in]pADetails of the QR factorization of the original matrix A as returned by plasma_cgeqrf.
[in]ldaThe leading dimension of the array A. lda >= m.
[in]TAuxiliary factorization data, computed by plasma_cgeqrf.
[in,out]pBOn entry, pointer to the m-by-nrhs right hand side matrix B. On exit, the n-by-nrhs solution matrix X.
[in]ldbThe leading dimension of the array B. ldb >= max(1,n).
Return values
PlasmaSuccesssuccessful exit
<0 if -i, the i-th argument had an illegal value
See also
plasma_omp_cgeqrs
plasma_cgeqrs
plasma_dgeqrs
plasma_sgeqrs
plasma_cgeqrf
plasma_cgels
void plasma_omp_cgeqrs ( plasma_desc_t  A,
plasma_desc_t  T,
plasma_desc_t  B,
plasma_workspace_t  work,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Computes a minimum-norm solution using the tile QR factorization. Non-blocking tile version of plasma_cgeqrs(). 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_cgeqrf.
[in,out]BDescriptor of matrix B. On entry, right-hand side matrix B in the tile layout. On exit, solution matrix X 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_cgeqrs
plasma_omp_cgeqrs
plasma_omp_dgeqrs
plasma_omp_sgeqrs
plasma_omp_cgeqrf
plasma_omp_cgels
int plasma_dgeqrs ( int  m,
int  n,
int  nrhs,
double *  pA,
int  lda,
plasma_desc_t  T,
double *  pB,
int  ldb 
)

Computes a minimum-norm solution min || A*X - B || using the QR factorization A = Q*R computed by plasma_dgeqrf.

Parameters
[in]mThe number of rows of the matrix A. m >= 0.
[in]nThe number of columns of the matrix A. m >= n >= 0.
[in]nrhsThe number of columns of B. nrhs >= 0.
[in]pADetails of the QR factorization of the original matrix A as returned by plasma_dgeqrf.
[in]ldaThe leading dimension of the array A. lda >= m.
[in]TAuxiliary factorization data, computed by plasma_dgeqrf.
[in,out]pBOn entry, pointer to the m-by-nrhs right hand side matrix B. On exit, the n-by-nrhs solution matrix X.
[in]ldbThe leading dimension of the array B. ldb >= max(1,n).
Return values
PlasmaSuccesssuccessful exit
<0 if -i, the i-th argument had an illegal value
See also
plasma_omp_dgeqrs
plasma_cgeqrs
plasma_dgeqrs
plasma_sgeqrs
plasma_dgeqrf
plasma_dgels
void plasma_omp_dgeqrs ( plasma_desc_t  A,
plasma_desc_t  T,
plasma_desc_t  B,
plasma_workspace_t  work,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Computes a minimum-norm solution using the tile QR factorization. Non-blocking tile version of plasma_dgeqrs(). 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_dgeqrf.
[in,out]BDescriptor of matrix B. On entry, right-hand side matrix B in the tile layout. On exit, solution matrix X 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_dgeqrs
plasma_omp_cgeqrs
plasma_omp_dgeqrs
plasma_omp_sgeqrs
plasma_omp_dgeqrf
plasma_omp_dgels
int plasma_sgeqrs ( int  m,
int  n,
int  nrhs,
float *  pA,
int  lda,
plasma_desc_t  T,
float *  pB,
int  ldb 
)

Computes a minimum-norm solution min || A*X - B || using the QR factorization A = Q*R computed by plasma_sgeqrf.

Parameters
[in]mThe number of rows of the matrix A. m >= 0.
[in]nThe number of columns of the matrix A. m >= n >= 0.
[in]nrhsThe number of columns of B. nrhs >= 0.
[in]pADetails of the QR factorization of the original matrix A as returned by plasma_sgeqrf.
[in]ldaThe leading dimension of the array A. lda >= m.
[in]TAuxiliary factorization data, computed by plasma_sgeqrf.
[in,out]pBOn entry, pointer to the m-by-nrhs right hand side matrix B. On exit, the n-by-nrhs solution matrix X.
[in]ldbThe leading dimension of the array B. ldb >= max(1,n).
Return values
PlasmaSuccesssuccessful exit
<0 if -i, the i-th argument had an illegal value
See also
plasma_omp_sgeqrs
plasma_cgeqrs
plasma_dgeqrs
plasma_sgeqrs
plasma_sgeqrf
plasma_sgels
void plasma_omp_sgeqrs ( plasma_desc_t  A,
plasma_desc_t  T,
plasma_desc_t  B,
plasma_workspace_t  work,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Computes a minimum-norm solution using the tile QR factorization. Non-blocking tile version of plasma_sgeqrs(). 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_sgeqrf.
[in,out]BDescriptor of matrix B. On entry, right-hand side matrix B in the tile layout. On exit, solution matrix X 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_sgeqrs
plasma_omp_cgeqrs
plasma_omp_dgeqrs
plasma_omp_sgeqrs
plasma_omp_sgeqrf
plasma_omp_sgels
int plasma_zgeqrs ( int  m,
int  n,
int  nrhs,
plasma_complex64_t *  pA,
int  lda,
plasma_desc_t  T,
plasma_complex64_t *  pB,
int  ldb 
)

Computes a minimum-norm solution min || A*X - B || using the QR factorization A = Q*R computed by plasma_zgeqrf.

Parameters
[in]mThe number of rows of the matrix A. m >= 0.
[in]nThe number of columns of the matrix A. m >= n >= 0.
[in]nrhsThe number of columns of B. nrhs >= 0.
[in]pADetails of the QR factorization of the original matrix A as returned by plasma_zgeqrf.
[in]ldaThe leading dimension of the array A. lda >= m.
[in]TAuxiliary factorization data, computed by plasma_zgeqrf.
[in,out]pBOn entry, pointer to the m-by-nrhs right hand side matrix B. On exit, the n-by-nrhs solution matrix X.
[in]ldbThe leading dimension of the array B. ldb >= max(1,n).
Return values
PlasmaSuccesssuccessful exit
<0 if -i, the i-th argument had an illegal value
See also
plasma_omp_zgeqrs
plasma_cgeqrs
plasma_dgeqrs
plasma_sgeqrs
plasma_zgeqrf
plasma_zgels
void plasma_omp_zgeqrs ( plasma_desc_t  A,
plasma_desc_t  T,
plasma_desc_t  B,
plasma_workspace_t  work,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Computes a minimum-norm solution using the tile QR factorization. Non-blocking tile version of plasma_zgeqrs(). 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_zgeqrf.
[in,out]BDescriptor of matrix B. On entry, right-hand side matrix B in the tile layout. On exit, solution matrix X 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_zgeqrs
plasma_omp_cgeqrs
plasma_omp_dgeqrs
plasma_omp_sgeqrs
plasma_omp_zgeqrf
plasma_omp_zgels