[/ 

THIS FILE IS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT!

]

[section gejsv]

[heading Prototype]
There is one prototype of `gejsv` available, please see below.
``
gejsv( const char joba, const char jobu, const char jobv,
        const char jobr, const char jobt, const char jobp, MatrixA& a,
        VectorSVA& sva, MatrixU& u, MatrixV& v );
``


[heading Description]

`gejsv` (short for $FRIENDLY_NAME) provides a C++
interface to LAPACK routines SGEJSV and DGEJSV. 
`gejsv` computes the singular value decomposition (SVD) of a real M-by-N
matrix [A], where M >= N. The SVD of [A] is written as

[A] = [U] * [SIGMA] * [V]^t,

where [SIGMA] is an N-by-N (M-by-N) matrix which is zero except for its N
diagonal elements, [U] is an M-by-N (or M-by-M) orthonormal matrix, and
[V] is an N-by-N orthogonal matrix. The diagonal elements of [SIGMA] are
the singular values of [A]. The columns of [U] and [V] are the left and
the right singular vectors of [A], respectively. The matrices [U] and [V]
are computed and stored in the arrays U and V, respectively. The diagonal
of [SIGMA] is computed and stored in the array SVA.

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 gejsv
[  [ Value type of MatrixA ] [LAPACK routine] ]
[  [`float`][SGEJSV] ]
[  [`double`][DGEJSV] ]

]


[heading Definition]
Defined in header [headerref boost/numeric/bindings/lapack/driver/gejsv.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/driver/gejsv.hpp>
using namespace boost::numeric::bindings;

lapack::gejsv( 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/sgejsv.f sgejsv.f] and [@http://www.netlib.org/lapack/double/dgejsv.f dgejsv.f] at Netlib.

[endsect]
