TrsmKernel.h File Reference
#include "../../InternalHeaderCheck.h"
#include "TrsmUnrolls.inc"

Go to the source code of this file.

Classes

struct  Eigen::internal::trsmKernelR< float, Index, Mode, false, TriStorageOrder, 1, true >
 
struct  Eigen::internal::trsmKernelR< double, Index, Mode, false, TriStorageOrder, 1, true >
 
struct  Eigen::internal::trsmKernelL< float, Index, Mode, false, TriStorageOrder, 1, true >
 
struct  Eigen::internal::trsmKernelL< double, Index, Mode, false, TriStorageOrder, 1, true >
 

Namespaces

 Eigen
 Namespace containing all symbols from the Eigen library.
 
 Eigen::internal
 Namespace containing low-level routines from the Eigen library.
 

Macros

#define EIGEN_USE_AVX512_TRSM_KERNELS   1
 
#define EIGEN_USE_AVX512_TRSM_R_KERNELS   1
 
#define EIGEN_USE_AVX512_TRSM_L_KERNELS   1
 
#define EIGEN_AVX_MAX_NUM_ACC   (int64_t(24))
 
#define EIGEN_AVX_MAX_NUM_ROW   (int64_t(8))
 
#define EIGEN_AVX_MAX_K_UNROL   (int64_t(4))
 
#define EIGEN_AVX_B_LOAD_SETS   (int64_t(2))
 
#define EIGEN_AVX_MAX_A_BCAST   (int64_t(2))
 
#define EIGEN_ENABLE_AVX512_NOCOPY_TRSM_CUTOFFS   0
 
#define EIGEN_ENABLE_AVX512_NOCOPY_TRSM_R_CUTOFFS   0
 
#define EIGEN_ENABLE_AVX512_NOCOPY_TRSM_L_CUTOFFS   0
 

Typedefs

typedef Packet16f Eigen::internal::vecFullFloat
 
typedef Packet8d Eigen::internal::vecFullDouble
 
typedef Packet8f Eigen::internal::vecHalfFloat
 
typedef Packet4d Eigen::internal::vecHalfDouble
 

Functions

template<typename Scalar , typename vec , int64_t unrollM, int64_t unrollN, bool remM, bool remN>
EIGEN_ALWAYS_INLINE void Eigen::internal::transStoreC (PacketBlock< vec, EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS > &zmm, Scalar *C_arr, int64_t LDC, int64_t remM_=0, int64_t remN_=0)
 
template<typename Scalar , bool isARowMajor, bool isCRowMajor, bool isAdd, bool handleKRem>
void Eigen::internal::gemmKernel (Scalar *A_arr, Scalar *B_arr, Scalar *C_arr, int64_t M, int64_t N, int64_t K, int64_t LDA, int64_t LDB, int64_t LDC)
 
template<typename Scalar , typename vec , int64_t unrollM, bool isARowMajor, bool isFWDSolve, bool isUnitDiag>
EIGEN_ALWAYS_INLINE void Eigen::internal::triSolveKernel (Scalar *A_arr, Scalar *B_arr, int64_t K, int64_t LDA, int64_t LDB)
 
template<typename Scalar , bool isARowMajor, bool isFWDSolve, bool isUnitDiag>
void Eigen::internal::triSolveKernelLxK (Scalar *A_arr, Scalar *B_arr, int64_t M, int64_t K, int64_t LDA, int64_t LDB)
 
template<typename Scalar , bool toTemp = true, bool remM = false>
EIGEN_ALWAYS_INLINE void Eigen::internal::copyBToRowMajor (Scalar *B_arr, int64_t LDB, int64_t K, Scalar *B_temp, int64_t LDB_, int64_t remM_=0)
 
template<typename Scalar , bool isARowMajor = true, bool isBRowMajor = true, bool isFWDSolve = true, bool isUnitDiag = false>
void Eigen::internal::triSolve (Scalar *A_arr, Scalar *B_arr, int64_t M, int64_t numRHS, int64_t LDA, int64_t LDB)
 

Macro Definition Documentation

◆ EIGEN_AVX_B_LOAD_SETS

#define EIGEN_AVX_B_LOAD_SETS   (int64_t(2))

◆ EIGEN_AVX_MAX_A_BCAST

#define EIGEN_AVX_MAX_A_BCAST   (int64_t(2))

◆ EIGEN_AVX_MAX_K_UNROL

#define EIGEN_AVX_MAX_K_UNROL   (int64_t(4))

◆ EIGEN_AVX_MAX_NUM_ACC

#define EIGEN_AVX_MAX_NUM_ACC   (int64_t(24))

◆ EIGEN_AVX_MAX_NUM_ROW

#define EIGEN_AVX_MAX_NUM_ROW   (int64_t(8))

◆ EIGEN_ENABLE_AVX512_NOCOPY_TRSM_CUTOFFS

#define EIGEN_ENABLE_AVX512_NOCOPY_TRSM_CUTOFFS   0

◆ EIGEN_ENABLE_AVX512_NOCOPY_TRSM_L_CUTOFFS

#define EIGEN_ENABLE_AVX512_NOCOPY_TRSM_L_CUTOFFS   0

◆ EIGEN_ENABLE_AVX512_NOCOPY_TRSM_R_CUTOFFS

#define EIGEN_ENABLE_AVX512_NOCOPY_TRSM_R_CUTOFFS   0

◆ EIGEN_USE_AVX512_TRSM_KERNELS

#define EIGEN_USE_AVX512_TRSM_KERNELS   1

◆ EIGEN_USE_AVX512_TRSM_L_KERNELS

#define EIGEN_USE_AVX512_TRSM_L_KERNELS   1

◆ EIGEN_USE_AVX512_TRSM_R_KERNELS

#define EIGEN_USE_AVX512_TRSM_R_KERNELS   1