blitz Version 1.0.2
Loading...
Searching...
No Matches
blitz::_tm_evaluator< true, N_rows, N_columns > Struct Template Reference

Specialization of the _tm_evaluator class for false template arguments. More...

#include <tmevaluate.h>

Collaboration diagram for blitz::_tm_evaluator< true, N_rows, N_columns >:
Collaboration graph

Static Public Member Functions

template<typename T , typename T_expr , typename T_update >
static _bz_forceinline void select_evaluation (TinyMatrix< T, N_rows, N_columns > &dest, const T_expr &expr, T_update)
 The false version of select_evaluation is picked for expressions that contain operands other than TinyMatrixs.
 
template<typename T_numtype , typename T_expr , typename T_update >
static _bz_forceinline void evaluate_aligned (T_numtype *data, const T_expr &expr, T_update)
 This version of the evaluation function assumes that the TinyMatrixs have appropriate alignment (as will always be the case if they are actual TinyMatrix objects and not created using reinterpret_cast in the chunked_updater.
 
template<typename T_numtype , typename T_expr , typename T_update >
static _bz_forceinline void evaluate_unaligned (T_numtype *data, const T_expr &expr, T_update)
 This version of the evaluation function is used when vectorizing expressions that we know can't be aligned.
 

Detailed Description

template<int N_rows, int N_columns>
struct blitz::_tm_evaluator< true, N_rows, N_columns >

Specialization of the _tm_evaluator class for false template arguments.

Member Function Documentation

◆ evaluate_aligned()

template<int N_rows, int N_columns>
template<typename T_numtype , typename T_expr , typename T_update >
static _bz_forceinline void blitz::_tm_evaluator< true, N_rows, N_columns >::evaluate_aligned ( T_numtype * data,
const T_expr & expr,
T_update  )
inlinestatic

This version of the evaluation function assumes that the TinyMatrixs have appropriate alignment (as will always be the case if they are actual TinyMatrix objects and not created using reinterpret_cast in the chunked_updater.

◆ evaluate_unaligned()

template<int N_rows, int N_columns>
template<typename T_numtype , typename T_expr , typename T_update >
static _bz_forceinline void blitz::_tm_evaluator< true, N_rows, N_columns >::evaluate_unaligned ( T_numtype * data,
const T_expr & expr,
T_update  )
inlinestatic

This version of the evaluation function is used when vectorizing expressions that we know can't be aligned.

The only difference with evaluate_aligned is the compiler pragma that tells the compiler it is unaligned.

◆ select_evaluation()

template<int N_rows, int N_columns>
template<typename T , typename T_expr , typename T_update >
static _bz_forceinline void blitz::_tm_evaluator< true, N_rows, N_columns >::select_evaluation ( TinyMatrix< T, N_rows, N_columns > & dest,
const T_expr & expr,
T_update  )
inlinestatic

The false version of select_evaluation is picked for expressions that contain operands other than TinyMatrixs.

It just redirects to the general evaluation function.


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