31#ifndef BZ_TMEVALUATE_H
32#define BZ_TMEVALUATE_H
35#include <blitz/update.h>
37#include <blitz/meta/vecassign.h>
44template<
bool unroll,
int N_rows,
int N_columns>
55 template<
typename T,
typename T_expr,
typename T_update>
68 cerr <<
"[Blitz++] Shape check failed: Module " <<
__FILE__
80 "Shape check failed." <<
endl <<
"Expression:");
91 template<
typename T_numtype,
typename T_expr,
typename T_update>
94#ifdef BZ_USE_ALIGNMENT_PRAGMAS
99 T_update::update(data[i],
expr.fastRead(i));
106 template<
typename T_numtype,
typename T_expr,
typename T_update>
109#ifdef BZ_USE_ALIGNMENT_PRAGMAS
111#pragma vector unaligned
114 T_update::update(data[i],
expr.fastRead(i));
119template<
int N_rows,
int N_columns>
125 template<
typename T,
typename T_expr,
typename T_update>
136 template<
typename T_numtype,
typename T_expr,
typename T_update>
139#ifdef BZ_USE_ALIGNMENT_PRAGMAS
150 template<
typename T_numtype,
typename T_expr,
typename T_update>
163template<
typename P_numtype,
int N_rows,
int N_columns>
164template<
typename T_expr,
typename T_update>
170 (T_expr::numArrayOperands>0) ||
171 (T_expr::numTVOperands>0) ||
172 (T_expr::numIndexPlaceholders>0);
Definition memblock.h:307
MemoryBlockReference()
Definition memblock.h:367
void _tm_evaluate(const T_expr &expr, T_update)
#define true
Definition compiler.h:101
Definition array-impl.h:66
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 Tin...
Definition tmevaluate.h:127
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 w...
Definition tmevaluate.h:138
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 al...
Definition tmevaluate.h:152
The _tm_evaluator class has a bool template argument that is used to select code paths at compile tim...
Definition tmevaluate.h:45
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 ...
Definition tmevaluate.h:57
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 w...
Definition tmevaluate.h:93
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 al...
Definition tmevaluate.h:108
#define _bz_forceinline
Definition tuning.h:79
#define BZ_TV_EVALUATE_UNROLL_LENGTH
Definition tuning.h:64