Blaze 3.9
blaze::DeclUniUppTrait< MT > Struct Template Reference

Base template for the DeclUniUppTrait class. More...

#include <DeclUniUppTrait.h>

Inherits decltype evalDeclUniUppTrait std::declval< MT & >.

Detailed Description

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

Base template for the DeclUniUppTrait class.

General

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

Creating custom specializations

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

template< typename MT, bool SO, bool DF, bool SF >
struct DeclUniUppTrait< SymmetricMatrix<MT,SO,DF,SF> >
{
using Type = IdentityMatrix<ElemenType_t<MT>,SO>;
};


Examples

The following example demonstrates the use of the DeclUniUppTrait 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 DeclUniUppType1 = typename DeclUniUppTrait<MatrixType1>::Type;
// Definition of the resulting type of a symmetric column-major static matrix
using MatrixType2 = SymmetricMatrix< StaticMatrix<int,3UL,3UL,columnMajor> >;
using DeclUniUppType2 = typename DeclUniUppTrait<MatrixType2>::Type;
Efficient implementation of a dynamic matrix.
Definition: DynamicMatrix.h:242
Efficient implementation of a fixed-sized matrix.
Definition: StaticMatrix.h:249
Matrix adapter for symmetric matrices.
Definition: BaseTemplate.h:614
constexpr bool rowMajor
Storage order flag for row-major matrices.
Definition: StorageOrder.h:71
constexpr bool columnMajor
Storage order flag for column-major matrices.
Definition: StorageOrder.h:99
Base template for the DeclUniUppTrait class.
Definition: DeclUniUppTrait.h:128

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