#include "Metaprogramming.h"
#include "Expression.h"
#include "Container/Container.h"
#include "ExpTmp.h"
#include "AliasAnalyser.h"
Go to the source code of this file.
Namespaces | |
namespace | exmat |
namespace | exmat::PNS |
Classes | |
struct | exmat::PNS::Assign_UnRollRowCol_STAT< MAT1, MAT2, row_, col_ > |
Unroll both Rows and Cols. More... | |
struct | exmat::PNS::Assign_UnRollRow_STAT< MAT1, MAT2, r > |
Unroll Rows only. More... | |
struct | exmat::PNS::Assign_UnRollCol_STAT< MAT1, MAT2, c > |
Unroll Cols only. More... | |
struct | exmat::PNS::Assign_UnRollSIMDSTAT< MAT1, MAT2, i > |
Unroller for SIMD. More... | |
struct | exmat::ASSIGN_ANALYSIS |
Defines types of assignment analysis. More... | |
Assignment unroller | |
Using compile-time loop to unroll an assignment loop | |
template<class MAT1, class MAT2> | |
static void | exmat::PNS::Assign_FullUnRoll (MAT1 &A, const MAT2 &B) |
Perform full unrolling to the assignment operation. | |
template<class MAT1, class MAT2> | |
static void | exmat::PNS::Assign_FullUnRollRow (MAT1 &A, const MAT2 &B) |
Perform full unrolling of Rows to the assignment operation. | |
template<class MAT1, class MAT2> | |
static void | exmat::PNS::Assign_FullUnRollCol (MAT1 &A, const MAT2 &B) |
Perform full unrolling of Cols to the assignment operation. | |
template<class MAT1, class MAT2> | |
static void | exmat::PNS::Assign_PartialUnRoll (MAT1 &A, const MAT2 &B) |
template<class MAT1, class MAT2> | |
static void | exmat::PNS::Assign_NoUnRoll (MAT1 &A, const MAT2 &B) |
Perform no unrolling to the assignment operation. | |
template<class MAT1, class MAT2> | |
static void | exmat::PNS::Assign_FullUnRollSIMD (MAT1 &A, const MAT2 &B) |
Perform full unrolling of SIMD assignment operation. | |
template<class MAT1, class MAT2> | |
static void | exmat::PNS::Assign (MAT1 &A, const MAT2 &B, Int2Type< ASSIGN_TYPE::Ass_FullUnRoll >) |
template<class MAT1, class MAT2> | |
static void | exmat::PNS::Assign (MAT1 &A, const MAT2 &B, Int2Type< ASSIGN_TYPE::Ass_FullUnRollRow >) |
template<class MAT1, class MAT2> | |
static void | exmat::PNS::Assign (MAT1 &A, const MAT2 &B, Int2Type< ASSIGN_TYPE::Ass_FullUnRollCol >) |
template<class MAT1, class MAT2> | |
static void | exmat::PNS::Assign (MAT1 &A, const MAT2 &B, Int2Type< ASSIGN_TYPE::Ass_NoUnRoll >) |
template<class MAT1, class MAT2> | |
static void | exmat::PNS::Assign (MAT1 &A, const MAT2 &B, Int2Type< ASSIGN_TYPE::Ass_SIMD >) |
template<class MAT1, class MAT2> | |
static void | exmat::PNS::Assign_SIMD_inner (MAT1 &A, const MAT2 &B, Int2Type< true > WholeAssign) |
template<class MAT1, class MAT2> | |
static void | exmat::PNS::Assign_SIMD_inner (MAT1 &A, const MAT2 &B, Int2Type< false > WholeAssign) |