PLASMA 2.8.0 PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures

- Main Page
- Modules
- Data Types List

int CORE_clarfx2ce | ( | PLASMA_enum | uplo,
|  | PLASMA_Complex32_t * | V,
|  | PLASMA_Complex32_t * | TAU,
|  | PLASMA_Complex32_t * | C1,
|  | PLASMA_Complex32_t * | C2,
|  | PLASMA_Complex32_t * | C3
| ) |  |

CORE_clarfx2c applies a complex elementary reflector H to a diagonal corner C=[C1, C2, C3], from both the left and the right side. C = H * C * H. It is used in the case of general matrices, where it create a nnz at the NEW_NNZ position, then it eliminate it and update the reflector V and TAU. If PlasmaLower, a left apply is followed by a right apply. If PlasmaUpper, a right apply is followed by a left apply. H is represented in the form

This routine is a special code for a corner C diagonal block C1 NEW_NNZ C2 C3

       H = I - tau * v * v'

where tau is a complex scalar and v is a complex vector.

If tau = 0, then H is taken to be the unit matrix

This version uses inline code if H has order < 11.

Parameters

  [in] | uplo | = PlasmaUpper: Upper triangle of A is stored; = PlasmaLower: Lower triangle of A is stored.
  [in,out] | V | On entry, the float complex V in the representation of H. On exit, the float complex V in the representation of H, updated by the elimination of the NEW_NNZ created by the left apply in case of PlasmaLower or the right apply in case of PlasmaUpper.
  [in,out] | TAU | On entry, the value tau in the representation of H. On exit, the value tau in the representation of H, updated by the elimination of the NEW_NNZ created by the left apply in case of PlasmaLower or the right apply in case of PlasmaUpper.
  [in,out] | C1 | On entry, the element C1. On exit, C1 is overwritten by the result H * C * H.
  [in,out] | C2 | On entry, the element C2. On exit, C2 is overwritten by the result H * C * H.
  [in,out] | C3 | On entry, the element C3. On exit, C3 is overwritten by the result H * C * H.

Returns

Return values

  PLASMA_SUCCESS | successful exit
  <0 | if -i, the i-th argument had an illegal value