PLASMA
Parallel Linear Algebra Software for Multicore Architectures
|
Functions | |
__attribute__ ((weak)) | |
__attribute__ | ( | (weak) | ) |
Computes an LQ factorization of a rectangular matrix formed by coupling side-by-side a complex m-by-m lower triangular tile A1 and a complex m-by-n tile A2:
| A1 A2 | = L * Q
The tile Q is represented as a product of elementary reflectors
Q = H(k)^H . . . H(2)^H H(1)^H, where k = min(m,n).
Each H(i) has the form
H(i) = I - tau * v * v^H
where tau is a complex scalar, and v is a complex vector with v(1:i-1) = 0 and v(i) = 1; v(i+1:n)^H is stored on exit in A2(i,1:n), and tau in tau(i).
[in] | m | The number of rows of the tile A1 and A2. m >= 0. The number of columns of the tile A1. |
[in] | n | The number of columns of the tile A2. n >= 0. |
[in] | ib | The inner-blocking size. ib >= 0. |
[in,out] | A1 | On entry, the m-by-m tile A1. On exit, the elements on and below the diagonal of the array contain the m-by-m lower trapezoidal tile L; the elements above the diagonal are not referenced. |
[in] | lda1 | The leading dimension of the array A1. lda1 >= max(1,m). |
[in,out] | A2 | On entry, the m-by-n tile A2. On exit, all the elements with the array tau, represent the unitary tile Q as a product of elementary reflectors (see Further Details). |
[in] | lda2 | The leading dimension of the tile A2. lda2 >= max(1,m). |
[out] | T | The ib-by-m triangular factor T of the block reflector. T is upper triangular by block (economic storage); The rest of the array is not referenced. |
[in] | ldt | The leading dimension of the array T. ldt >= ib. |
tau | Auxiliarry workspace array of length m. | |
work | Auxiliary workspace array of length ib*m. |
PlasmaSuccess | successful exit |
< | 0 if -i, the i-th argument had an illegal value |
Computes an LQ factorization of a rectangular matrix formed by coupling side-by-side a complex m-by-m lower triangular tile A1 and a complex m-by-n tile A2:
| A1 A2 | = L * Q
The tile Q is represented as a product of elementary reflectors
Q = H(k)^T . . . H(2)^T H(1)^T, where k = min(m,n).
Each H(i) has the form
H(i) = I - tau * v * v^T
where tau is a complex scalar, and v is a complex vector with v(1:i-1) = 0 and v(i) = 1; v(i+1:n)^T is stored on exit in A2(i,1:n), and tau in tau(i).
[in] | m | The number of rows of the tile A1 and A2. m >= 0. The number of columns of the tile A1. |
[in] | n | The number of columns of the tile A2. n >= 0. |
[in] | ib | The inner-blocking size. ib >= 0. |
[in,out] | A1 | On entry, the m-by-m tile A1. On exit, the elements on and below the diagonal of the array contain the m-by-m lower trapezoidal tile L; the elements above the diagonal are not referenced. |
[in] | lda1 | The leading dimension of the array A1. lda1 >= max(1,m). |
[in,out] | A2 | On entry, the m-by-n tile A2. On exit, all the elements with the array tau, represent the orthogonal tile Q as a product of elementary reflectors (see Further Details). |
[in] | lda2 | The leading dimension of the tile A2. lda2 >= max(1,m). |
[out] | T | The ib-by-m triangular factor T of the block reflector. T is upper triangular by block (economic storage); The rest of the array is not referenced. |
[in] | ldt | The leading dimension of the array T. ldt >= ib. |
tau | Auxiliarry workspace array of length m. | |
work | Auxiliary workspace array of length ib*m. |
PlasmaSuccess | successful exit |
< | 0 if -i, the i-th argument had an illegal value |