There are two prototypes of larz
available, please see below.
larz( const Side side, const int_t l, const VectorV& v, const Scalar >, MatrixC& c );
larz( const Side side, const int_t l, const VectorV& v, const Scalar tau, MatrixC& c );
larz
(short for $FRIENDLY_NAME)
provides a C++ interface to LAPACK routines SLARZ, DLARZ, CLARZ, and
ZLARZ. larz
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'
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' (the conjugate transpose of H), supply conjg(tau) instead tau.
H is a product of k elementary reflectors as returned by ZTZRZF.
The selection of the LAPACK routine is done during compile-time, and
is determined by the type of values contained in type VectorV
.
The type of values is obtained through the value_type
meta-function typename value_type<VectorV>::type
. The dispatching table below illustrates
to which specific routine the code path will be generated.
Table 1.367. Dispatching of larz
Value type of VectorV |
LAPACK routine |
---|---|
|
SLARZ |
|
DLARZ |
|
CLARZ |
|
ZLARZ |
Defined in header boost/numeric/bindings/lapack/auxiliary/larz.hpp
.
Parameters
The definition of term 1
The definition of term 2
The definition of term 3.
Definitions may contain paragraphs.
#include <boost/numeric/bindings/lapack/auxiliary/larz.hpp> using namespace boost::numeric::bindings; lapack::larz( x, y, z );
this will output
[5] 0 1 2 3 4 5