Blaze 3.9
Classes

Classes

class  blaze::CustomVector< Type, AF, PF, TF, Tag, RT >
 Efficient implementation of a customizable vector. More...
 

CustomVector operators

template<RelaxationFlag RF, typename Type , AlignmentFlag AF, PaddingFlag PF, bool TF, typename Tag , typename RT >
bool blaze::isDefault (const CustomVector< Type, AF, PF, TF, Tag, RT > &v)
 Returns whether the given custom vector is in default state. More...
 
template<typename Type , AlignmentFlag AF, PaddingFlag PF, bool TF, typename Tag , typename RT >
bool blaze::isIntact (const CustomVector< Type, AF, PF, TF, Tag, RT > &v) noexcept
 Returns whether the invariants of the given custom vector are intact. More...
 
template<typename Type , AlignmentFlag AF, PaddingFlag PF, bool TF, typename Tag , typename RT >
void blaze::swap (CustomVector< Type, AF, PF, TF, Tag, RT > &a, CustomVector< Type, AF, PF, TF, Tag, RT > &b) noexcept
 Swapping the contents of two vectors. More...
 

Detailed Description

Function Documentation

◆ isDefault()

template<RelaxationFlag RF, typename Type , AlignmentFlag AF, PaddingFlag PF, bool TF, typename Tag , typename RT >
bool blaze::isDefault ( const CustomVector< Type, AF, PF, TF, Tag, RT > &  v)
inline

Returns whether the given custom vector is in default state.

Parameters
vThe custom vector to be tested for its default state.
Returns
true in case the given vector is component-wise zero, false otherwise.

This function checks whether the custom vector is in default state. For instance, in case the static vector is instantiated for a built-in integral or floating point data type, the function returns true in case all vector elements are 0 and false in case any vector element is not 0. Following example demonstrates the use of the isDefault function:

// ... Resizing and initialization
if( isDefault( a ) ) { ... }
Efficient implementation of a customizable vector.
Definition: CustomVector.h:407
bool isDefault(const DiagonalMatrix< MT, SO, DF > &m)
Returns whether the given diagonal matrix is in default state.
Definition: DiagonalMatrix.h:169
@ padded
Flag for padded vectors and matrices.
Definition: PaddingFlag.h:79
@ aligned
Flag for aligned vectors and matrices.
Definition: AlignmentFlag.h:65

Optionally, it is possible to switch between strict semantics (blaze::strict) and relaxed semantics (blaze::relaxed):

if( isDefault<relaxed>( a ) ) { ... }

◆ isIntact()

template<typename Type , AlignmentFlag AF, PaddingFlag PF, bool TF, typename Tag , typename RT >
bool blaze::isIntact ( const CustomVector< Type, AF, PF, TF, Tag, RT > &  v)
inlinenoexcept

Returns whether the invariants of the given custom vector are intact.

Parameters
vThe custom vector to be tested.
Returns
true in case the given vector's invariants are intact, false otherwise.

This function checks whether the invariants of the custom vector are intact, i.e. if its state is valid. In case the invariants are intact, the function returns true, else it will return false. The following example demonstrates the use of the isIntact() function:

// ... Resizing and initialization
if( isIntact( a ) ) { ... }
bool isIntact(const DiagonalMatrix< MT, SO, DF > &m)
Returns whether the invariants of the given diagonal matrix are intact.
Definition: DiagonalMatrix.h:207

◆ swap()

template<typename Type , AlignmentFlag AF, PaddingFlag PF, bool TF, typename Tag , typename RT >
void blaze::swap ( CustomVector< Type, AF, PF, TF, Tag, RT > &  a,
CustomVector< Type, AF, PF, TF, Tag, RT > &  b 
)
inlinenoexcept

Swapping the contents of two vectors.

Parameters
aThe first vector to be swapped.
bThe second vector to be swapped.
Returns
void