PLASMA
Parallel Linear Algebra Software for Multicore Architectures
tslqt: LQ factorization of a rectangular matrix of two tiles

Functions

 __attribute__ ((weak))
 

Detailed Description

Function Documentation

__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).

Parameters
[in]mThe number of rows of the tile A1 and A2. m >= 0. The number of columns of the tile A1.
[in]nThe number of columns of the tile A2. n >= 0.
[in]ibThe inner-blocking size. ib >= 0.
[in,out]A1On 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]lda1The leading dimension of the array A1. lda1 >= max(1,m).
[in,out]A2On 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]lda2The leading dimension of the tile A2. lda2 >= max(1,m).
[out]TThe 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]ldtThe leading dimension of the array T. ldt >= ib.
tauAuxiliarry workspace array of length m.
workAuxiliary workspace array of length ib*m.
Return values
PlasmaSuccesssuccessful 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).

Parameters
[in]mThe number of rows of the tile A1 and A2. m >= 0. The number of columns of the tile A1.
[in]nThe number of columns of the tile A2. n >= 0.
[in]ibThe inner-blocking size. ib >= 0.
[in,out]A1On 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]lda1The leading dimension of the array A1. lda1 >= max(1,m).
[in,out]A2On 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]lda2The leading dimension of the tile A2. lda2 >= max(1,m).
[out]TThe 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]ldtThe leading dimension of the array T. ldt >= ib.
tauAuxiliarry workspace array of length m.
workAuxiliary workspace array of length ib*m.
Return values
PlasmaSuccesssuccessful exit
<0 if -i, the i-th argument had an illegal value