blaze::DeclHermTrait< MT > Struct Template Reference

Base template for the DeclHermTrait class. More...

#include <DeclHermTrait.h>

Detailed Description

template<typename MT>
struct blaze::DeclHermTrait< MT >

Base template for the DeclHermTrait class.

General

The DeclHermTrait class template offers the possibility to select the resulting data type of a generic declherm() operation on the given type MT. DeclHermTrait defines the nested type Type, which represents the resulting data type of the declherm() operation. In case the given data type is not a dense or sparse matrix type, the resulting data type Type is set to INVALID_TYPE. Note that const and volatile qualifiers and reference modifiers are generally ignored.

Creating custom specializations

Per default, DeclHermTrait supports all matrix types of the Blaze library (including views and adaptors). For all other data types it is possible to specialize the DeclHermTrait template. The following example shows the according specialization for the LowerMatrix class template:

template< typename MT, bool SO, bool DF >
struct DeclHermTrait< LowerMatrix<MT,SO,DF> >
{
using Type = HermitianMatrix<MT>;
};


Examples

The following example demonstrates the use of the DeclHermTrait template, where depending on the given matrix type the resulting type is selected:

// Definition of the resulting type of a row-major dynamic matrix
using MatrixType1 = DynamicMatrix<int,rowMajor>;
using DeclHermType1 = typename DeclHermTrait<MatrixType1>::Type;
// Definition of the resulting type of a lower column-major static matrix
using MatrixType2 = LowerMatrix< StaticMatrix<int,3UL,3UL,columnMajor> >;
using DeclHermType2 = typename DeclHermTrait<MatrixType2>::Type;

The documentation for this struct was generated from the following file: