[/ 

THIS FILE IS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT!

]

[section trsm]

[heading Prototype]
There are two prototypes of `trsm` available, please see below.
``
trsm( const Side side, const Scalar >, const MatrixA& a, MatrixB& b );
``

``
trsm( const Side side, const Scalar alpha, const MatrixA& a,
        MatrixB& b );
``


[heading Description]

`trsm` (short for TODO) provides a C++
interface to BLAS routines STRSM, DTRSM, CTRSM, and ZTRSM. 
`trsm` solves one of the matrix equations

op( A )*X = alpha*B, or X*op( A ) = alpha*B,

where alpha is a scalar, X and B are m by n matrices, A is a unit, or
non-unit, upper or lower triangular matrix and op( A ) is one of

op( A ) = A or op( A ) = A**T or op( A ) = A**H.

The matrix X is overwritten on B.

The selection of the BLAS 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`.
Table X below illustrates to which specific routine this dispatching will take place. 

[table Dispatching of trsm.
[  [ Value type of MatrixA ] [BLAS routine] [CBLAS routine] [CUBLAS routine] ]
[  [`float`][STRSM][cblas_strsm][cublasStrsm] ]
[  [`double`][DTRSM][cblas_dtrsm][cublasDtrsm] ]
[  [`complex<float>`][CTRSM][cblas_ctrsm][cublasCtrsm] ]
[  [`complex<double>`][ZTRSM][cblas_ztrsm][cublasZtrsm] ]

]

The original routines STRSM, DTRSM, CTRSM, and ZTRSM have eleven arguments,
whereas `trsm` requires four arguments.

[table Deduction of arguments of trsm.
]

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

blas::trsm( 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/blas/strsm.f strsm.f], [@http://www.netlib.org/blas/dtrsm.f dtrsm.f], [@http://www.netlib.org/blas/ctrsm.f ctrsm.f], and [@http://www.netlib.org/blas/ztrsm.f ztrsm.f] at Netlib.

[endsect]
