blitz
Version 1.0.2
|
The _tm_evaluator class has a bool template argument that is used to select code paths at compile time. More...
#include <tmevaluate.h>
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 select_evaluation function redirects expressions that do not contains solely TinyMatrix operands to the general evaluation function. More... | |
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. More... | |
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. More... | |
The _tm_evaluator class has a bool template argument that is used to select code paths at compile time.
|
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.
References blitz::tensor::i.
Referenced by blitz::_tm_evaluator< unroll, N_rows, N_columns >::select_evaluation().
|
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.
References blitz::tensor::i.
|
inlinestatic |
The select_evaluation function redirects expressions that do not contains solely TinyMatrix operands to the general evaluation function.
The generic template (for unroll=false, note that "unroll" us the wrong name for this function, the template parameter in this context really means "use_full_eval") uses the TinyMatrix-only evaluation. Since TinyMatrixs can't have funny storage, ordering, stride, or anything, it's now just a matter of evaluating it like in the old vecassign.
References BZ_TV_EVALUATE_UNROLL_LENGTH, blitz::TinyMatrix< P_numtype, N_rows, N_columns >::data(), blitz::_tm_evaluator< unroll, N_rows, N_columns >::evaluate_aligned(), and blitz::TinyMatrix< P_numtype, N_rows, N_columns >::shape().
Referenced by blitz::TinyMatrix< P_numtype, N_rows, N_columns >::_tm_evaluate().