blaze::DeclUppTrait< MT > Struct Template Reference

Base template for the DeclUppTrait class. More...

#include <DeclUppTrait.h>

Detailed Description

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

Base template for the DeclUppTrait class.

General

The DeclUppTrait class template offers the possibility to select the resulting data type of a generic declupp() operation on the given type MT. DeclUppTrait defines the nested type Type, which represents the resulting data type of the declupp() 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.

Per default, the DeclUppTrait template only supports the following matrix types:

Creating custom specializations

It is possible to specialize the DeclUppTrait template for additional user-defined matrix types. The following example shows the according specialization for the SymmetricMatrix class template:

template< typename MT, bool SO, bool DF, bool NF >
struct DeclUppTrait< SymmetricMatrix<MT,SO,DF,NF> >
{
using Type = DiagonalMatrix<MT>;
};


Examples

The following example demonstrates the use of the DeclUppTrait 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 DeclUppType1 = typename DeclUppTrait<MatrixType1>::Type;
// Definition of the resulting type of a symmetric column-major static matrix
using MatrixType2 = SymmetricMatrix< StaticMatrix<int,3UL,3UL,columnMajor> >;
using DeclUppType2 = typename DeclUppTrait<MatrixType2>::Type;

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