[/ 

THIS FILE IS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT!

]

[section ungbr]

[heading Prototype]
There is one prototype of `ungbr` available, please see below.
``
ungbr( const char vect, const int_t m,
        const int_t n, const int_t k, MatrixA& a,
        const VectorTAU& tau );
``


[heading Description]

`ungbr` (short for $FRIENDLY_NAME) provides a C++
interface to LAPACK routines SORGBR, DORGBR, CUNGBR, and ZUNGBR. 
`ungbr` generates one of the complex unitary matrices Q or P**H
determined by ZGEBRD when reducing a complex matrix A to bidiagonal
form: A = Q * B * P**H. Q and P**H are defined as products of
elementary reflectors H(i) or G(i) respectively.

If VECT = 'Q', A is assumed to have been an M-by-K matrix, and Q
is of order M:
if m >= k, Q = H(1) H(2) . . . H(k) and `ungbr` returns the first n
columns of Q, where m >= n >= k;
if m < k, Q = H(1) H(2) . . . H(m-1) and `ungbr` returns Q as an
M-by-M matrix.

If VECT = 'P', A is assumed to have been a K-by-N matrix, and P**H
is of order N:
if k < n, P**H = G(k) . . . G(2) G(1) and `ungbr` returns the first m
rows of P**H, where n >= m >= k;
if k >= n, P**H = G(n-1) . . . G(2) G(1) and `ungbr` returns P**H as
an N-by-N matrix.

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. 

[table Dispatching of ungbr
[  [ Value type of MatrixA ] [LAPACK routine] ]
[  [`float`][SORGBR] ]
[  [`double`][DORGBR] ]
[  [`complex<float>`][CUNGBR] ]
[  [`complex<double>`][ZUNGBR] ]

]


[heading Definition]
Defined in header [headerref boost/numeric/bindings/lapack/computational/ungbr.hpp].


[heading Parameters or Requirements on Types]

[variablelist Parameters
    [[MatrixA] [The definition of term 1]]
    [[MatrixB] [The definition of term 2]]
    [[MatrixC] [
    The definition of term 3.

    Definitions may contain paragraphs.
    ]]
]


[heading Complexity]


[heading Example]
``
#include <boost/numeric/bindings/lapack/computational/ungbr.hpp>
using namespace boost::numeric::bindings;

lapack::ungbr( x, y, z );

``

this will output

``
[5] 0 1 2 3 4 5
``



[heading Notes]


[heading See Also]

* Originating Fortran source files [@http://www.netlib.org/lapack/single/sorgbr.f sorgbr.f], [@http://www.netlib.org/lapack/double/dorgbr.f dorgbr.f], [@http://www.netlib.org/lapack/complex/cungbr.f cungbr.f], and [@http://www.netlib.org/lapack/complex16/zungbr.f zungbr.f] at Netlib.

[endsect]
