larz#

Functions

void slarz(
    const char*          side,
    const INT            m,
    const INT            n,
    const INT            l,
    const f32*  restrict v,
    const INT            incv,
    const f32            tau,
          f32*  restrict C,
    const INT            ldc,
          f32*  restrict work
);
void slarz(const char *side, const INT m, const INT n, const INT l, const f32 *restrict v, const INT incv, const f32 tau, f32 *restrict C, const INT ldc, f32 *restrict work)#

SLARZ applies a real elementary reflector H to a real M-by-N matrix C, from either the left or the right.

H is represented in the form

  H = I - tau * v * v**T
where tau is a real scalar and v is a real vector.

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

H is a product of k elementary reflectors as returned by STZRZF.

Parameters

in
side

CHARACTER*1 = ‘L’: form H * C = ‘R’: form C * H

in
m

The number of rows of the matrix C.

in
n

The number of columns of the matrix C.

in
l

The number of entries of the vector V containing the meaningful part of the Householder vectors. If side = “L”, m >= l >= 0, if side = “R”, n >= l >= 0.

in
v

Double precision array, dimension (1+(l-1)*abs(incv)). The vector v in the representation of H as returned by STZRZF. V is not used if tau = 0.

in
incv

The increment between elements of v. incv != 0.

in
tau

The value tau in the representation of H.

inout
C

Double precision array, dimension (ldc, n). On entry, the M-by-N matrix C. On exit, C is overwritten by the matrix H * C if side = “L”, or C * H if side = ‘R’.

in
ldc

The leading dimension of the array C. ldc >= max(1, m).

out
work

Double precision array, dimension (n) if side = ‘L’ or (m) if side = ‘R’.

Functions

void dlarz(
    const char*          side,
    const INT            m,
    const INT            n,
    const INT            l,
    const f64*  restrict v,
    const INT            incv,
    const f64            tau,
          f64*  restrict C,
    const INT            ldc,
          f64*  restrict work
);
void dlarz(const char *side, const INT m, const INT n, const INT l, const f64 *restrict v, const INT incv, const f64 tau, f64 *restrict C, const INT ldc, f64 *restrict work)#

DLARZ applies a real elementary reflector H to a real M-by-N matrix C, from either the left or the right.

H is represented in the form

  H = I - tau * v * v**T
where tau is a real scalar and v is a real vector.

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

H is a product of k elementary reflectors as returned by DTZRZF.

Parameters

in
side

CHARACTER*1 = ‘L’: form H * C = ‘R’: form C * H

in
m

The number of rows of the matrix C.

in
n

The number of columns of the matrix C.

in
l

The number of entries of the vector V containing the meaningful part of the Householder vectors. If side = “L”, m >= l >= 0, if side = “R”, n >= l >= 0.

in
v

Double precision array, dimension (1+(l-1)*abs(incv)). The vector v in the representation of H as returned by DTZRZF. V is not used if tau = 0.

in
incv

The increment between elements of v. incv != 0.

in
tau

The value tau in the representation of H.

inout
C

Double precision array, dimension (ldc, n). On entry, the M-by-N matrix C. On exit, C is overwritten by the matrix H * C if side = “L”, or C * H if side = ‘R’.

in
ldc

The leading dimension of the array C. ldc >= max(1, m).

out
work

Double precision array, dimension (n) if side = ‘L’ or (m) if side = ‘R’.

Functions

void clarz(
    const char*          side,
    const INT            m,
    const INT            n,
    const INT            l,
    const c64*  restrict v,
    const INT            incv,
    const c64            tau,
          c64*  restrict C,
    const INT            ldc,
          c64*  restrict work
);
void clarz(const char *side, const INT m, const INT n, const INT l, const c64 *restrict v, const INT incv, const c64 tau, c64 *restrict C, const INT ldc, c64 *restrict work)#

CLARZ applies a complex elementary reflector H to a complex M-by-N matrix C, from either the left or the right.

H is represented in the form

  H = I - tau * v * v**H
where tau is a complex scalar and v is a complex vector.

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

To apply H**H (the conjugate transpose of H), supply conjg(tau) instead tau.

H is a product of k elementary reflectors as returned by CTZRZF.

Parameters

in
side

CHARACTER*1 = ‘L’: form H * C = ‘R’: form C * H

in
m

The number of rows of the matrix C.

in
n

The number of columns of the matrix C.

in
l

The number of entries of the vector V containing the meaningful part of the Householder vectors. If side = “L”, m >= l >= 0, if side = “R”, n >= l >= 0.

in
v

Complex*16 array, dimension (1+(l-1)*abs(incv)). The vector v in the representation of H as returned by CTZRZF. V is not used if tau = 0.

in
incv

The increment between elements of v. incv != 0.

in
tau

The value tau in the representation of H.

inout
C

Complex*16 array, dimension (ldc, n). On entry, the M-by-N matrix C. On exit, C is overwritten by the matrix H * C if side = “L”, or C * H if side = ‘R’.

in
ldc

The leading dimension of the array C. ldc >= max(1, m).

out
work

Complex*16 array, dimension (n) if side = ‘L’ or (m) if side = ‘R’.

Functions

void zlarz(
    const char*          side,
    const INT            m,
    const INT            n,
    const INT            l,
    const c128* restrict v,
    const INT            incv,
    const c128           tau,
          c128* restrict C,
    const INT            ldc,
          c128* restrict work
);
void zlarz(const char *side, const INT m, const INT n, const INT l, const c128 *restrict v, const INT incv, const c128 tau, c128 *restrict C, const INT ldc, c128 *restrict work)#

ZLARZ applies a complex elementary reflector H to a complex M-by-N matrix C, from either the left or the right.

H is represented in the form

  H = I - tau * v * v**H
where tau is a complex scalar and v is a complex vector.

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

To apply H**H (the conjugate transpose of H), supply conjg(tau) instead tau.

H is a product of k elementary reflectors as returned by ZTZRZF.

Parameters

in
side

CHARACTER*1 = ‘L’: form H * C = ‘R’: form C * H

in
m

The number of rows of the matrix C.

in
n

The number of columns of the matrix C.

in
l

The number of entries of the vector V containing the meaningful part of the Householder vectors. If side = “L”, m >= l >= 0, if side = “R”, n >= l >= 0.

in
v

Complex*16 array, dimension (1+(l-1)*abs(incv)). The vector v in the representation of H as returned by ZTZRZF. V is not used if tau = 0.

in
incv

The increment between elements of v. incv != 0.

in
tau

The value tau in the representation of H.

inout
C

Complex*16 array, dimension (ldc, n). On entry, the M-by-N matrix C. On exit, C is overwritten by the matrix H * C if side = “L”, or C * H if side = ‘R’.

in
ldc

The leading dimension of the array C. ldc >= max(1, m).

out
work

Complex*16 array, dimension (n) if side = ‘L’ or (m) if side = ‘R’.