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)#
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
where tau is a real scalar and v is a real vector.H = I - tau * v * v**T
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
insideCHARACTER*1 = ‘L’: form H * C = ‘R’: form C * H
inmThe number of rows of the matrix C.
innThe number of columns of the matrix C.
inlThe 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.
invDouble 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.
inincvThe increment between elements of v. incv != 0.
intauThe value tau in the representation of H.
inoutCDouble 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’.
inldcThe leading dimension of the array C. ldc >= max(1, m).
outworkDouble precision array, dimension (n) if side = ‘L’ or (m) if side = ‘R’.
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
);
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)#
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
where tau is a real scalar and v is a real vector.H = I - tau * v * v**T
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
insideCHARACTER*1 = ‘L’: form H * C = ‘R’: form C * H
inmThe number of rows of the matrix C.
innThe number of columns of the matrix C.
inlThe 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.
invDouble 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.
inincvThe increment between elements of v. incv != 0.
intauThe value tau in the representation of H.
inoutCDouble 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’.
inldcThe leading dimension of the array C. ldc >= max(1, m).
outworkDouble precision array, dimension (n) if side = ‘L’ or (m) if side = ‘R’.
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
);
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)#
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
where tau is a complex scalar and v is a complex vector.H = I - tau * v * v**H
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
insideCHARACTER*1 = ‘L’: form H * C = ‘R’: form C * H
inmThe number of rows of the matrix C.
innThe number of columns of the matrix C.
inlThe 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.
invComplex*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.
inincvThe increment between elements of v. incv != 0.
intauThe value tau in the representation of H.
inoutCComplex*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’.
inldcThe leading dimension of the array C. ldc >= max(1, m).
outworkComplex*16 array, dimension (n) if side = ‘L’ or (m) if side = ‘R’.
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
);
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)#
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
where tau is a complex scalar and v is a complex vector.H = I - tau * v * v**H
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
insideCHARACTER*1 = ‘L’: form H * C = ‘R’: form C * H
inmThe number of rows of the matrix C.
innThe number of columns of the matrix C.
inlThe 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.
invComplex*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.
inincvThe increment between elements of v. incv != 0.
intauThe value tau in the representation of H.
inoutCComplex*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’.
inldcThe leading dimension of the array C. ldc >= max(1, m).
outworkComplex*16 array, dimension (n) if side = ‘L’ or (m) if side = ‘R’.
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
);