There is one prototype of ormbr
available, please see below.
ormbr( const char vect, const Side side, const int_t k, const MatrixA& a, const VectorTAU& tau, MatrixC& c );
ormbr (short for $FRIENDLY_NAME)
provides a C++ interface to LAPACK routines SORMBR and DORMBR. If VECT
= 'Q', ormbr overwrites
the general real M-by-N matrix C with SIDE = 'L' SIDE = 'R' TRANS = 'N':
Q * C C * Q TRANS = 'T': Q*T * C C * Q*T
If VECT = 'P', ormbr
overwrites the general real M-by-N matrix C with SIDE = 'L' SIDE = 'R'
TRANS = 'N': P * C C * P TRANS = 'T': P*T * C C
* P*T
Here Q and P*T are the orthogonal matrices determined by DGEBRD when reducing a real matrix A to bidiagonal form: A = Q * B * PT. Q and P*T are defined as products of elementary reflectors H(i) and G(i) respectively.
Let nq = m if SIDE = 'L' and nq = n if SIDE = 'R'. Thus nq is the order of the orthogonal matrix Q or P**T that is applied.
If VECT = 'Q', A is assumed to have been an NQ-by-K matrix: if nq >= k, Q = H(1) H(2) . . . H(k); if nq < k, Q = H(1) H(2) . . . H(nq-1).
If VECT = 'P', A is assumed to have been a K-by-NQ matrix: if k < nq, P = G(1) G(2) . . . G(k); if k >= nq, P = G(1) G(2) . . . G(nq-1).
The selection of the LAPACK routine is done during compile-time, and
is determined by the type of values contained in type MatrixA.
The type of values is obtained through the value_type
meta-function typename value_type<MatrixA>::type. The dispatching table below illustrates
to which specific routine the code path will be generated.
Defined in header boost/numeric/bindings/lapack/computational/ormbr.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/computational/ormbr.hpp> using namespace boost::numeric::bindings; lapack::ormbr( x, y, z );
this will output
[5] 0 1 2 3 4 5