MatrixProduct.h File Reference

Go to the source code of this file.

Namespaces

 Eigen
 : InteropHeaders
 
 Eigen::internal
 

Macros

#define accColsC
 
#define advanceCols
 
#define advanceRows
 
#define EIGEN_ALTIVEC_DISABLE_MMA
 
#define EIGEN_ALTIVEC_USE_CUSTOM_PACK
 
#define MAX_BFLOAT16_ACC_VSX
 
#define MAX_COMPLEX_UNROLL
 
#define MAX_UNROLL
 
#define MICRO_ADD(ptr, N)
 
#define MICRO_ADD_PEEL(peel, sum)
 
#define MICRO_ADD_PEEL_ROW
 
#define MICRO_ADD_ROWS(N)
 
#define MICRO_BROADCAST(peel)
 
#define MICRO_BROADCAST1(peel, ptr, rhsV, real)
 
#define MICRO_BROADCAST_EXTRA
 
#define MICRO_BROADCAST_EXTRA1(ptr, rhsV, real)
 
#define MICRO_COMPLEX_ADD_COLS(size)
 
#define MICRO_COMPLEX_ADD_PEEL(peel, sum)
 
#define MICRO_COMPLEX_ADD_PEEL_ROW
 
#define MICRO_COMPLEX_ADD_ROWS(N, used)
 
#define MICRO_COMPLEX_BROADCAST(peel)
 
#define MICRO_COMPLEX_BROADCAST_EXTRA
 
#define MICRO_COMPLEX_DST_PTR
 
#define MICRO_COMPLEX_DST_PTR_ONE(iter)
 
#define MICRO_COMPLEX_EXTRA_COLS(N)
 
#define MICRO_COMPLEX_EXTRA_ROWS(N)
 
#define MICRO_COMPLEX_ONE4
 
#define MICRO_COMPLEX_ONE_PEEL4
 
#define MICRO_COMPLEX_PREFETCH
 
#define MICRO_COMPLEX_PREFETCHN(N)
 
#define MICRO_COMPLEX_SRC2_PTR
 
#define MICRO_COMPLEX_SRC_PTR
 
#define MICRO_COMPLEX_STORE
 
#define MICRO_COMPLEX_STORE_ONE(iter)
 
#define MICRO_COMPLEX_TYPE_PEEL4(func, func2, peel)
 
#define MICRO_COMPLEX_UNROLL(func)
 
#define MICRO_COMPLEX_UNROLL_ITER2(N, M)
 
#define MICRO_COMPLEX_UNROLL_TYPE(MICRO_COMPLEX_TYPE, size)
 
#define MICRO_COMPLEX_UNROLL_TYPE_ONE(M, func, func1, func2)
 
#define MICRO_COMPLEX_UNROLL_TYPE_PEEL(M, func, func1, func2)
 
#define MICRO_COMPLEX_UNROLL_WORK(func, func2, peel)
 
#define MICRO_COMPLEX_WORK_ONE4(iter, peel)
 
#define MICRO_COMPLEX_WORK_PEEL(peel)
 
#define MICRO_COMPLEX_WORK_PEEL_ROW
 
#define MICRO_COMPLEX_ZERO_PEEL(peel)
 
#define MICRO_COMPLEX_ZERO_PEEL_ROW
 
#define MICRO_DST_PTR
 
#define MICRO_DST_PTR_ONE(iter)
 
#define MICRO_EXTRA(MICRO_EXTRA_UNROLL, value, is_col)
 
#define MICRO_EXTRA_COLS(N)
 
#define MICRO_EXTRA_ROWS(N)
 
#define MICRO_NEW_ROWS
 
#define MICRO_NORMAL_ROWS
 
#define MICRO_ONE4
 
#define MICRO_ONE_PEEL4
 
#define MICRO_PREFETCH
 
#define MICRO_PREFETCHN(N)
 
#define MICRO_PREFETCHN1(ptr, N)
 
#define MICRO_RHS(ptr, N)
 
#define MICRO_SRC2(ptr, N, M)
 
#define MICRO_SRC2_PTR
 
#define MICRO_SRC_PTR
 
#define MICRO_STORE
 
#define MICRO_STORE_ONE(iter)
 
#define MICRO_TYPE_PEEL4(func, func2, peel)
 
#define MICRO_UNROLL(func)
 
#define MICRO_UNROLL_ITER2(N, M)
 
#define MICRO_UNROLL_TYPE(MICRO_TYPE, size)
 
#define MICRO_UNROLL_TYPE_ONE(M, func, func1, func2)
 
#define MICRO_UNROLL_TYPE_PEEL(M, func, func1, func2)
 
#define MICRO_UNROLL_WORK(func, func2, peel)
 
#define MICRO_WORK_ONE(iter, peel)
 
#define MICRO_WORK_PEEL(peel)
 
#define MICRO_WORK_PEEL_ROW
 
#define MICRO_ZERO_PEEL(peel)
 
#define MICRO_ZERO_PEEL_ROW
 
#define PEEL
 
#define PEEL_COMPLEX
 
#define PEEL_COMPLEX_ROW
 
#define PEEL_ROW
 
#define USE_P10_AND_PVIPR2_0
 

Functions

template<Index num_acc>
EIGEN_ALWAYS_INLINE void Eigen::internal::addResults (Packet4f(&acc)[num_acc][4])
 
template<typename Packet , int N>
EIGEN_ALWAYS_INLINE void Eigen::internal::band (PacketBlock< Packet, N > &acc, const Packet &pMask)
 
template<typename Packet , typename Packetc , int N, bool full>
EIGEN_ALWAYS_INLINE void Eigen::internal::bcouple (PacketBlock< Packet, N > &taccReal, PacketBlock< Packet, N > &taccImag, PacketBlock< Packetc, N *2 > &tRes, PacketBlock< Packetc, N > &acc1, PacketBlock< Packetc, N > &acc2)
 
template<typename Packet , typename Packetc , int N, bool full>
EIGEN_ALWAYS_INLINE void Eigen::internal::bcouple_common (PacketBlock< Packet, N > &taccReal, PacketBlock< Packet, N > &taccImag, PacketBlock< Packetc, N > &acc1, PacketBlock< Packetc, N > &acc2)
 
template<typename DataMapper , typename Packet , const Index accCols, int StorageOrder, bool Complex, int N, bool full>
EIGEN_ALWAYS_INLINE void Eigen::internal::bload (PacketBlock< Packet, N *(Complex?2:1)> &acc, const DataMapper &res, Index row, Index col)
 
template<typename Packet >
EIGEN_ALWAYS_INLINE Packet Eigen::internal::bmask (const Index remaining_rows)
 
template<>
EIGEN_ALWAYS_INLINE Packet2d Eigen::internal::bmask< Packet2d > (const Index remaining_rows)
 
template<typename Packet , int N>
EIGEN_ALWAYS_INLINE void Eigen::internal::bscale (PacketBlock< Packet, N > &acc, PacketBlock< Packet, N > &accZ, const Packet &pAlpha)
 
template<typename Packet , int N, bool mask>
EIGEN_ALWAYS_INLINE void Eigen::internal::bscale (PacketBlock< Packet, N > &acc, PacketBlock< Packet, N > &accZ, const Packet &pAlpha, const Packet &pMask)
 
template<typename Packet , int N, bool mask>
EIGEN_ALWAYS_INLINE void Eigen::internal::bscalec (PacketBlock< Packet, N > &aReal, PacketBlock< Packet, N > &aImag, const Packet &bReal, const Packet &bImag, PacketBlock< Packet, N > &cReal, PacketBlock< Packet, N > &cImag, const Packet &pMask)
 
template<typename Packet , int N>
EIGEN_ALWAYS_INLINE void Eigen::internal::bscalec_common (PacketBlock< Packet, N > &acc, PacketBlock< Packet, N > &accZ, const Packet &pAlpha)
 
template<typename Packet , int N>
EIGEN_ALWAYS_INLINE void Eigen::internal::bsetzero (PacketBlock< Packet, N > &acc)
 
template<typename DataMapper , typename Packet , int N>
EIGEN_ALWAYS_INLINE void Eigen::internal::bstore (PacketBlock< Packet, N > &acc, const DataMapper &res, Index row)
 
template<Index size>
EIGEN_ALWAYS_INLINE void Eigen::internal::calcVSXColLoops (const bfloat16 *&indexA, const float *indexA2, Index &row, Index depth, Index cols, Index rows, const Packet4f pAlpha, const float *indexB, Index strideA, Index strideB, Index offsetA, Index offsetB, Index bigSuffix, float *result)
 
template<const Index num_acc, bool rhsExtraCols, bool lhsExtraRows>
void Eigen::internal::colVSXLoopBody (Index &col, Index depth, Index cols, Index rows, const Packet4f pAlpha, const float *indexA, const float *indexB, Index strideB, Index offsetB, float *result)
 
template<bool rhsExtraCols, bool lhsExtraRows>
void Eigen::internal::colVSXLoopBodyExtra (Index col, Index depth, Index cols, Index rows, const Packet4f pAlpha, const float *indexA, const float *blockB, Index strideB, Index offsetB, float *result)
 
template<const Index num_acc, bool rhsExtraCols, bool lhsExtraRows>
EIGEN_ALWAYS_INLINE void Eigen::internal::colVSXLoopBodyExtraN (Index col, Index depth, Index cols, Index rows, const Packet4f pAlpha, const float *indexA, const float *blockB, Index strideB, Index offsetB, float *result)
 
template<const Index num_acc, bool rhsExtraCols, bool lhsExtraRows>
EIGEN_ALWAYS_INLINE void Eigen::internal::colVSXLoopBodyIter (Index depth, Index rows, const Packet4f pAlpha, const float *indexA, const float *indexB, Index strideB, Index offsetB, float *result, const Index extra_cols, const Index extra_rows)
 
template<Index size, bool lhsExtraRows = false>
EIGEN_ALWAYS_INLINE void Eigen::internal::colVSXLoops (Index depth, Index cols, Index rows, const Packet4f pAlpha, const bfloat16 *indexA, const float *indexA2, const float *blockB2, Index strideA, Index strideB, Index offsetB, float *result2)
 
template<typename DataMapper >
EIGEN_ALWAYS_INLINE void Eigen::internal::convertArrayBF16toF32 (float *result, Index cols, Index rows, const DataMapper &src)
 
template<typename DataMapper , const Index size>
EIGEN_ALWAYS_INLINE void Eigen::internal::convertArrayF32toBF16ColVSX (float *result, Index col, Index rows, const DataMapper &res)
 
template<typename DataMapper >
EIGEN_ALWAYS_INLINE void Eigen::internal::convertArrayF32toBF16VSX (float *result, Index cols, Index rows, const DataMapper &res)
 
template<bool non_unit_stride>
EIGEN_ALWAYS_INLINE void Eigen::internal::convertArrayPointerBF16toF32 (float *result, Index cols, Index rows, bfloat16 *src, Index resInc)
 
template<bool lhsExtraRows>
EIGEN_ALWAYS_INLINE void Eigen::internal::convertArrayPointerBF16toF32Dup (float *result, Index cols, Index rows, const bfloat16 *src, Index delta, Index extra_rows)
 
template<bool lhsExtraRows, bool odd, Index size>
EIGEN_ALWAYS_INLINE void Eigen::internal::convertArrayPointerBF16toF32DupOne (float *result, Index rows, const bfloat16 *src, Index extra_rows)
 
template<const Index size, typename DataMapper >
EIGEN_ALWAYS_INLINE void Eigen::internal::convertBF16toF32 (Index &i, float *result, Index rows, const DataMapper &src)
 
EIGEN_ALWAYS_INLINE Packet8bf Eigen::internal::convertF32toBF16VSX (const float *res)
 
template<const Index size, bool non_unit_stride>
EIGEN_ALWAYS_INLINE void Eigen::internal::convertPointerBF16toF32 (Index &i, float *result, Index rows, bfloat16 *&src, Index resInc)
 
template<typename Scalar , typename Packet , typename RhsPacket , typename DataMapper , const Index accRows, const Index accCols>
void Eigen::internal::gemm (const DataMapper &res, const Scalar *blockA, const Scalar *blockB, Index rows, Index depth, Index cols, Scalar alpha, Index strideA, Index strideB, Index offsetA, Index offsetB)
 
template<typename Scalar , typename Packet , typename DataMapper , const Index accRows, const Index accCols>
EIGEN_ALWAYS_INLINE void Eigen::internal::gemm_cols (const DataMapper &res, const Scalar *blockA, const Scalar *blockB, Index depth, Index strideA, Index offsetA, Index strideB, Index offsetB, Index col, Index rows, Index remaining_rows, const Packet &pAlpha, const Packet &pMask)
 
template<typename LhsScalar , typename RhsScalar , typename Scalarc , typename Scalar , typename Packet , typename Packetc , typename RhsPacket , typename DataMapper , const Index accRows, const Index accCols, bool ConjugateLhs, bool ConjugateRhs, bool LhsIsReal, bool RhsIsReal>
void Eigen::internal::gemm_complex (const DataMapper &res, const LhsScalar *blockAc, const RhsScalar *blockBc, Index rows, Index depth, Index cols, Scalarc alpha, Index strideA, Index strideB, Index offsetA, Index offsetB)
 
template<typename Scalar , typename Packet , typename Packetc , typename DataMapper , const Index accRows, const Index accCols, bool ConjugateLhs, bool ConjugateRhs, bool LhsIsReal, bool RhsIsReal>
EIGEN_ALWAYS_INLINE void Eigen::internal::gemm_complex_cols (const DataMapper &res, const Scalar *blockA, const Scalar *blockB, Index depth, Index strideA, Index offsetA, Index strideB, Index offsetB, Index col, Index rows, Index remaining_rows, const Packet &pAlphaReal, const Packet &pAlphaImag, const Packet &pMask)
 
template<typename Scalar , typename Packet , typename Packetc , typename DataMapper , const Index accCols, bool ConjugateLhs, bool ConjugateRhs, bool LhsIsReal, bool RhsIsReal>
EIGEN_ALWAYS_INLINE void Eigen::internal::gemm_complex_extra_cols (const DataMapper &res, const Scalar *blockA, const Scalar *blockB, Index depth, Index strideA, Index offsetA, Index strideB, Index offsetB, Index col, Index rows, Index cols, Index remaining_rows, const Packet &pAlphaReal, const Packet &pAlphaImag, const Packet &pMask)
 
template<typename Scalar , typename Packet , typename Packetc , typename DataMapper , const Index accRows, const Index accCols, bool ConjugateLhs, bool ConjugateRhs, bool LhsIsReal, bool RhsIsReal>
EIGEN_ALWAYS_INLINE void Eigen::internal::gemm_complex_extra_row (const DataMapper &res, const Scalar *lhs_base, const Scalar *rhs_base, Index depth, Index strideA, Index offsetA, Index strideB, Index row, Index rows, Index remaining_rows, const Packet &pAlphaReal, const Packet &pAlphaImag, const Packet &pMask)
 
template<int unroll_factor, typename Scalar , typename Packet , typename Packetc , typename DataMapper , const Index accRows, const Index accCols, const Index accCols2, bool ConjugateLhs, bool ConjugateRhs, bool LhsIsReal, bool RhsIsReal>
EIGEN_ALWAYS_INLINE void Eigen::internal::gemm_complex_unrolled_iteration (const DataMapper &res, const Scalar *lhs_base, const Scalar *rhs_base, Index depth, Index strideA, Index offsetA, Index strideB, Index &row, const Packet &pAlphaReal, const Packet &pAlphaImag, const Packet &pMask)
 
template<typename Scalar , typename Packet , typename DataMapper , const Index accCols>
EIGEN_ALWAYS_INLINE void Eigen::internal::gemm_extra_cols (const DataMapper &res, const Scalar *blockA, const Scalar *blockB, Index depth, Index strideA, Index offsetA, Index strideB, Index offsetB, Index col, Index rows, Index cols, Index remaining_rows, const Packet &pAlpha, const Packet &pMask)
 
template<typename Scalar , typename Packet , typename DataMapper , const Index accRows, const Index accCols>
EIGEN_ALWAYS_INLINE void Eigen::internal::gemm_extra_row (const DataMapper &res, const Scalar *lhs_base, const Scalar *rhs_base, Index depth, Index strideA, Index offsetA, Index strideB, Index row, Index rows, Index remaining_rows, const Packet &pAlpha, const Packet &pMask)
 
template<typename Scalar , typename Packet , typename Packetc , typename DataMapper , const Index accRows, const Index accCols, bool ConjugateLhs, bool ConjugateRhs, bool LhsIsReal, bool RhsIsReal, const Index remaining_rows>
EIGEN_ALWAYS_INLINE void Eigen::internal::gemm_unrolled_complex_row_iteration (const DataMapper &res, const Scalar *lhs_base, const Scalar *rhs_base, Index depth, Index strideA, Index offsetA, Index strideB, Index row, Index rows, const Packet &pAlphaReal, const Packet &pAlphaImag, const Packet &pMask)
 
template<int unroll_factor, typename Scalar , typename Packet , typename DataMapper , const Index accRows, const Index accCols, const Index accCols2>
EIGEN_ALWAYS_INLINE void Eigen::internal::gemm_unrolled_iteration (const DataMapper &res, const Scalar *lhs_base, const Scalar *rhs_base, Index depth, Index strideA, Index offsetA, Index strideB, Index &row, const Packet &pAlpha, const Packet &pMask)
 
template<typename Scalar , typename Packet , typename DataMapper , const Index accRows, const Index accCols, const Index remaining_rows>
EIGEN_ALWAYS_INLINE void Eigen::internal::gemm_unrolled_row_iteration (const DataMapper &res, const Scalar *lhs_base, const Scalar *rhs_base, Index depth, Index strideA, Index offsetA, Index strideB, Index row, Index rows, const Packet &pAlpha, const Packet &pMask)
 
template<typename DataMapper >
void Eigen::internal::gemmbfloat16 (const DataMapper &res, const bfloat16 *indexA, const bfloat16 *indexB, Index rows, Index depth, Index cols, bfloat16 alpha, Index strideA, Index strideB, Index offsetA, Index offsetB)
 
template<typename Scalar , int StorageOrder>
EIGEN_ALWAYS_INLINE std::complex< Scalar > Eigen::internal::getAdjointVal (Index i, Index j, const_blas_data_mapper< std::complex< Scalar >, Index, StorageOrder > &dt)
 
template<Index num_acc, bool zero, bool rhsExtraCols, Index num_rhs>
EIGEN_ALWAYS_INLINE void Eigen::internal::KLoop (const float *indexA, const float *indexB, Packet4f(&acc)[num_acc][4], Index strideB, Index k, Index offsetB, Index extra_cols)
 
EIGEN_ALWAYS_INLINE Packet4f Eigen::internal::loadAndMultiplyF32 (Packet4f acc, const Packet4f pAlpha, float *result)
 
template<bool non_unit_stride, Index delta>
EIGEN_ALWAYS_INLINE Packet8bf Eigen::internal::loadBF16fromResult (bfloat16 *src, Index resInc)
 
template<bool zero>
EIGEN_ALWAYS_INLINE void Eigen::internal::loadTwoRhsFloat32 (const float *block, Index strideB, Index i, Packet4f &dhs0, Packet4f &dhs1)
 
template<typename Scalar , typename Packet , const Index accRows, bool ConjugateLhs, bool ConjugateRhs, bool LhsIsReal, bool RhsIsReal, const Index remaining_rows>
EIGEN_ALWAYS_INLINE void Eigen::internal::MICRO_COMPLEX_EXTRA_ROW (const Scalar *&lhs_ptr_real, const Scalar *&lhs_ptr_imag, const Scalar *&rhs_ptr_real0, const Scalar *&rhs_ptr_real1, const Scalar *&rhs_ptr_real2, const Scalar *&rhs_ptr_imag0, const Scalar *&rhs_ptr_imag1, const Scalar *&rhs_ptr_imag2, PacketBlock< Packet, accRows > &accReal, PacketBlock< Packet, accRows > &accImag)
 
template<typename Scalar , typename Packet , const Index accRows, const Index remaining_rows>
EIGEN_ALWAYS_INLINE void Eigen::internal::MICRO_EXTRA_ROW (const Scalar *&lhs_ptr, const Scalar *&rhs_ptr0, const Scalar *&rhs_ptr1, const Scalar *&rhs_ptr2, PacketBlock< Packet, accRows > &accZero)
 
EIGEN_ALWAYS_INLINE Packet4f Eigen::internal::oneConvertBF16Hi (Packet8us data)
 
EIGEN_ALWAYS_INLINE Packet4f Eigen::internal::oneConvertBF16Lo (Packet8us data)
 
EIGEN_ALWAYS_INLINE Packet4f Eigen::internal::oneConvertBF16Perm (Packet8us data, Packet16uc mask)
 
template<Index num_acc, bool rhsExtraCols, bool lhsExtraRows, Index num_rhs>
EIGEN_ALWAYS_INLINE void Eigen::internal::outputResultsVSX (Packet4f(&acc)[num_acc][4], Index rows, const Packet4f pAlpha, float *result, const Index extra_cols, Index extra_rows)
 
template<typename Packet , int N, bool real>
EIGEN_ALWAYS_INLINE void Eigen::internal::pbroadcastN (const __UNPACK_TYPE__(Packet) *ap0, const __UNPACK_TYPE__(Packet) *ap1, const __UNPACK_TYPE__(Packet) *ap2, Packet &a0, Packet &a1, Packet &a2, Packet &a3)
 
template<>
EIGEN_ALWAYS_INLINE void Eigen::internal::pbroadcastN< Packet2d, 4, false > (const double *ap0, const double *, const double *, Packet2d &a0, Packet2d &a1, Packet2d &a2, Packet2d &a3)
 
template<>
EIGEN_ALWAYS_INLINE void Eigen::internal::pbroadcastN< Packet4f, 4, false > (const float *ap0, const float *ap1, const float *ap2, Packet4f &a0, Packet4f &a1, Packet4f &a2, Packet4f &a3)
 
template<>
EIGEN_ALWAYS_INLINE void Eigen::internal::pbroadcastN< Packet4f, 4, true > (const float *ap0, const float *, const float *, Packet4f &a0, Packet4f &a1, Packet4f &a2, Packet4f &a3)
 
template<int N, typename Scalar , typename Packet , bool NegativeAccumulate>
EIGEN_ALWAYS_INLINE void Eigen::internal::pger (PacketBlock< Packet, N > *acc, const Scalar *lhs, const Packet *rhsV)
 
template<typename Packet , bool NegativeAccumulate, int N>
EIGEN_ALWAYS_INLINE void Eigen::internal::pger_common (PacketBlock< Packet, N > *acc, const Packet &lhsV, const Packet *rhsV)
 
template<int N, typename Scalar , typename Packet , bool ConjugateLhs, bool ConjugateRhs, bool LhsIsReal, bool RhsIsReal>
EIGEN_ALWAYS_INLINE void Eigen::internal::pgerc (PacketBlock< Packet, N > *accReal, PacketBlock< Packet, N > *accImag, const Scalar *lhs_ptr, const Scalar *lhs_ptr_imag, const Packet *rhsV, const Packet *rhsVi)
 
template<int N, typename Packet , bool ConjugateLhs, bool ConjugateRhs, bool LhsIsReal, bool RhsIsReal>
EIGEN_ALWAYS_INLINE void Eigen::internal::pgerc_common (PacketBlock< Packet, N > *accReal, PacketBlock< Packet, N > *accImag, const Packet &lhsV, Packet &lhsVi, const Packet *rhsV, const Packet *rhsVi)
 
template<typename Packet >
EIGEN_ALWAYS_INLINE Packet Eigen::internal::ploadLhs (const __UNPACK_TYPE__(Packet) *lhs)
 
template<typename Scalar , typename Packet , int N>
EIGEN_ALWAYS_INLINE void Eigen::internal::storeBlock (Scalar *to, PacketBlock< Packet, N > &block)
 
template<Index N>
EIGEN_ALWAYS_INLINE void Eigen::internal::storeConvertBlockBF16 (float *to, PacketBlock< Packet8bf,(N+7)/8 > &block, Index extra)
 
template<Index N, Index M>
EIGEN_ALWAYS_INLINE void Eigen::internal::storeConvertTwoBF16 (float *to, PacketBlock< Packet8bf,(N+7)/8 > &block, Index extra=0)
 
template<bool lhsExtraRows>
EIGEN_ALWAYS_INLINE void Eigen::internal::storeF32 (float *&result, Packet4f result_block, Index rows, Index extra_rows)
 
template<bool rhsExtraCols, bool lhsExtraRows>
EIGEN_ALWAYS_INLINE void Eigen::internal::storeResults (Packet4f(&acc)[4], Index rows, const Packet4f pAlpha, float *result, Index extra_cols, Index extra_rows)
 
EIGEN_ALWAYS_INLINE bool Eigen::internal::supportsMMA ()
 
template<typename Scalar , int StorageOrder>
void Eigen::internal::symm_pack_complex_lhs_helper (std::complex< Scalar > *blockA, const std::complex< Scalar > *_lhs, Index lhsStride, Index cols, Index rows)
 
template<typename Scalar , int StorageOrder, int N>
void Eigen::internal::symm_pack_complex_rhs_helper (std::complex< Scalar > *blockB, const std::complex< Scalar > *_rhs, Index rhsStride, Index rows, Index cols, Index k2)
 
template<typename Scalar , int StorageOrder>
void Eigen::internal::symm_pack_lhs_helper (Scalar *blockA, const Scalar *_lhs, Index lhsStride, Index cols, Index rows)
 
template<typename Scalar , int StorageOrder, int N>
void Eigen::internal::symm_pack_rhs_helper (Scalar *blockB, const Scalar *_rhs, Index rhsStride, Index rows, Index cols, Index k2)
 
template<Index num_acc>
EIGEN_ALWAYS_INLINE void Eigen::internal::tranposeResults (Packet4f(&acc)[num_acc][4])
 
template<Index num_acc, Index size = 4>
EIGEN_ALWAYS_INLINE void Eigen::internal::zeroAccumulators (Packet4f(&acc)[num_acc][size])
 

Variables

static const Packet4i Eigen::internal::mask4 [4]
 
static const Packet16uc Eigen::internal::p16uc_GETIMAG32
 
static const Packet16uc Eigen::internal::p16uc_GETREAL32
 
static Packet16uc Eigen::internal::p16uc_MERGE16_32_1
 
static Packet16uc Eigen::internal::p16uc_MERGE16_32_2
 
static Packet16uc Eigen::internal::p16uc_MERGE16_32_3
 
static Packet16uc Eigen::internal::p16uc_MERGE16_32_4
 
static Packet16uc Eigen::internal::p16uc_MERGE16_32_5
 
static Packet16uc Eigen::internal::p16uc_MERGE16_32_6
 
static Packet16uc Eigen::internal::p16uc_MERGE16_32_7
 
static Packet16uc Eigen::internal::p16uc_MERGE16_32_8
 

Macro Definition Documentation

◆ accColsC

#define accColsC

Definition at line 2272 of file MatrixProduct.h.

◆ advanceCols

#define advanceCols

Definition at line 2274 of file MatrixProduct.h.

◆ advanceRows

#define advanceRows

Definition at line 2273 of file MatrixProduct.h.

◆ EIGEN_ALTIVEC_DISABLE_MMA

#define EIGEN_ALTIVEC_DISABLE_MMA

Definition at line 21 of file MatrixProduct.h.

◆ EIGEN_ALTIVEC_USE_CUSTOM_PACK

#define EIGEN_ALTIVEC_USE_CUSTOM_PACK

Definition at line 15 of file MatrixProduct.h.

◆ MAX_BFLOAT16_ACC_VSX

#define MAX_BFLOAT16_ACC_VSX

Definition at line 3051 of file MatrixProduct.h.

◆ MAX_COMPLEX_UNROLL

#define MAX_COMPLEX_UNROLL

◆ MAX_UNROLL

#define MAX_UNROLL

◆ MICRO_ADD

#define MICRO_ADD (   ptr,
 
)

Definition at line 1816 of file MatrixProduct.h.

◆ MICRO_ADD_PEEL

#define MICRO_ADD_PEEL (   peel,
  sum 
)

Definition at line 1878 of file MatrixProduct.h.

◆ MICRO_ADD_PEEL_ROW

#define MICRO_ADD_PEEL_ROW

Definition at line 1885 of file MatrixProduct.h.

◆ MICRO_ADD_ROWS

#define MICRO_ADD_ROWS (   N)

Definition at line 1827 of file MatrixProduct.h.

◆ MICRO_BROADCAST

#define MICRO_BROADCAST (   peel)

Definition at line 1836 of file MatrixProduct.h.

◆ MICRO_BROADCAST1

#define MICRO_BROADCAST1 (   peel,
  ptr,
  rhsV,
  real 
)

Definition at line 1829 of file MatrixProduct.h.

◆ MICRO_BROADCAST_EXTRA

#define MICRO_BROADCAST_EXTRA

Definition at line 1841 of file MatrixProduct.h.

◆ MICRO_BROADCAST_EXTRA1

#define MICRO_BROADCAST_EXTRA1 (   ptr,
  rhsV,
  real 
)

Definition at line 1838 of file MatrixProduct.h.

◆ MICRO_COMPLEX_ADD_COLS

#define MICRO_COMPLEX_ADD_COLS (   size)

Definition at line 2342 of file MatrixProduct.h.

◆ MICRO_COMPLEX_ADD_PEEL

#define MICRO_COMPLEX_ADD_PEEL (   peel,
  sum 
)

Definition at line 2354 of file MatrixProduct.h.

◆ MICRO_COMPLEX_ADD_PEEL_ROW

#define MICRO_COMPLEX_ADD_PEEL_ROW

Definition at line 2362 of file MatrixProduct.h.

◆ MICRO_COMPLEX_ADD_ROWS

#define MICRO_COMPLEX_ADD_ROWS (   N,
  used 
)

Definition at line 2292 of file MatrixProduct.h.

◆ MICRO_COMPLEX_BROADCAST

#define MICRO_COMPLEX_BROADCAST (   peel)

Definition at line 2302 of file MatrixProduct.h.

◆ MICRO_COMPLEX_BROADCAST_EXTRA

#define MICRO_COMPLEX_BROADCAST_EXTRA

Definition at line 2310 of file MatrixProduct.h.

◆ MICRO_COMPLEX_DST_PTR

#define MICRO_COMPLEX_DST_PTR

Definition at line 2528 of file MatrixProduct.h.

◆ MICRO_COMPLEX_DST_PTR_ONE

#define MICRO_COMPLEX_DST_PTR_ONE (   iter)

Definition at line 2519 of file MatrixProduct.h.

◆ MICRO_COMPLEX_EXTRA_COLS

#define MICRO_COMPLEX_EXTRA_COLS (   N)

Definition at line 2657 of file MatrixProduct.h.

◆ MICRO_COMPLEX_EXTRA_ROWS

#define MICRO_COMPLEX_EXTRA_ROWS (   N)

Definition at line 2459 of file MatrixProduct.h.

◆ MICRO_COMPLEX_ONE4

#define MICRO_COMPLEX_ONE4

Definition at line 2517 of file MatrixProduct.h.

◆ MICRO_COMPLEX_ONE_PEEL4

#define MICRO_COMPLEX_ONE_PEEL4

Definition at line 2515 of file MatrixProduct.h.

◆ MICRO_COMPLEX_PREFETCH

#define MICRO_COMPLEX_PREFETCH

Definition at line 2532 of file MatrixProduct.h.

◆ MICRO_COMPLEX_PREFETCHN

#define MICRO_COMPLEX_PREFETCHN (   N)

Definition at line 1900 of file MatrixProduct.h.

◆ MICRO_COMPLEX_SRC2_PTR

#define MICRO_COMPLEX_SRC2_PTR

Definition at line 2320 of file MatrixProduct.h.

◆ MICRO_COMPLEX_SRC_PTR

#define MICRO_COMPLEX_SRC_PTR

Definition at line 2530 of file MatrixProduct.h.

◆ MICRO_COMPLEX_STORE

#define MICRO_COMPLEX_STORE

Definition at line 2546 of file MatrixProduct.h.

◆ MICRO_COMPLEX_STORE_ONE

#define MICRO_COMPLEX_STORE_ONE (   iter)

Definition at line 2534 of file MatrixProduct.h.

◆ MICRO_COMPLEX_TYPE_PEEL4

#define MICRO_COMPLEX_TYPE_PEEL4 (   func,
  func2,
  peel 
)

Definition at line 2490 of file MatrixProduct.h.

◆ MICRO_COMPLEX_UNROLL

#define MICRO_COMPLEX_UNROLL (   func)

Definition at line 2280 of file MatrixProduct.h.

◆ MICRO_COMPLEX_UNROLL_ITER2

#define MICRO_COMPLEX_UNROLL_ITER2 (   N,
  M 
)

Definition at line 2594 of file MatrixProduct.h.

◆ MICRO_COMPLEX_UNROLL_TYPE

#define MICRO_COMPLEX_UNROLL_TYPE (   MICRO_COMPLEX_TYPE,
  size 
)

Definition at line 2511 of file MatrixProduct.h.

◆ MICRO_COMPLEX_UNROLL_TYPE_ONE

#define MICRO_COMPLEX_UNROLL_TYPE_ONE (   M,
  func,
  func1,
  func2 
)

Definition at line 2507 of file MatrixProduct.h.

◆ MICRO_COMPLEX_UNROLL_TYPE_PEEL

#define MICRO_COMPLEX_UNROLL_TYPE_PEEL (   M,
  func,
  func1,
  func2 
)

Definition at line 2501 of file MatrixProduct.h.

◆ MICRO_COMPLEX_UNROLL_WORK

#define MICRO_COMPLEX_UNROLL_WORK (   func,
  func2,
  peel 
)

Definition at line 2481 of file MatrixProduct.h.

◆ MICRO_COMPLEX_WORK_ONE4

#define MICRO_COMPLEX_WORK_ONE4 (   iter,
  peel 
)

Definition at line 2485 of file MatrixProduct.h.

◆ MICRO_COMPLEX_WORK_PEEL

#define MICRO_COMPLEX_WORK_PEEL (   peel)

Definition at line 2333 of file MatrixProduct.h.

◆ MICRO_COMPLEX_WORK_PEEL_ROW

#define MICRO_COMPLEX_WORK_PEEL_ROW

Definition at line 2347 of file MatrixProduct.h.

◆ MICRO_COMPLEX_ZERO_PEEL

#define MICRO_COMPLEX_ZERO_PEEL (   peel)

Definition at line 2283 of file MatrixProduct.h.

◆ MICRO_COMPLEX_ZERO_PEEL_ROW

#define MICRO_COMPLEX_ZERO_PEEL_ROW

Definition at line 2331 of file MatrixProduct.h.

◆ MICRO_DST_PTR

#define MICRO_DST_PTR

Definition at line 2063 of file MatrixProduct.h.

◆ MICRO_DST_PTR_ONE

#define MICRO_DST_PTR_ONE (   iter)

Definition at line 2056 of file MatrixProduct.h.

◆ MICRO_EXTRA

#define MICRO_EXTRA (   MICRO_EXTRA_UNROLL,
  value,
  is_col 
)

Definition at line 1980 of file MatrixProduct.h.

◆ MICRO_EXTRA_COLS

#define MICRO_EXTRA_COLS (   N)

Definition at line 2223 of file MatrixProduct.h.

◆ MICRO_EXTRA_ROWS

#define MICRO_EXTRA_ROWS (   N)

Definition at line 1997 of file MatrixProduct.h.

◆ MICRO_NEW_ROWS

#define MICRO_NEW_ROWS

Definition at line 1805 of file MatrixProduct.h.

◆ MICRO_NORMAL_ROWS

#define MICRO_NORMAL_ROWS

Definition at line 1802 of file MatrixProduct.h.

◆ MICRO_ONE4

#define MICRO_ONE4

Definition at line 2054 of file MatrixProduct.h.

◆ MICRO_ONE_PEEL4

#define MICRO_ONE_PEEL4

Definition at line 2052 of file MatrixProduct.h.

◆ MICRO_PREFETCH

#define MICRO_PREFETCH

Definition at line 2067 of file MatrixProduct.h.

◆ MICRO_PREFETCHN

#define MICRO_PREFETCHN (   N)

Definition at line 1898 of file MatrixProduct.h.

◆ MICRO_PREFETCHN1

#define MICRO_PREFETCHN1 (   ptr,
 
)

Definition at line 1889 of file MatrixProduct.h.

◆ MICRO_RHS

#define MICRO_RHS (   ptr,
 
)

Definition at line 1807 of file MatrixProduct.h.

◆ MICRO_SRC2

#define MICRO_SRC2 (   ptr,
  N,
  M 
)

Definition at line 1846 of file MatrixProduct.h.

◆ MICRO_SRC2_PTR

#define MICRO_SRC2_PTR

Definition at line 1860 of file MatrixProduct.h.

◆ MICRO_SRC_PTR

#define MICRO_SRC_PTR

Definition at line 2065 of file MatrixProduct.h.

◆ MICRO_STORE

#define MICRO_STORE

Definition at line 2091 of file MatrixProduct.h.

◆ MICRO_STORE_ONE

#define MICRO_STORE_ONE (   iter)

Definition at line 2083 of file MatrixProduct.h.

◆ MICRO_TYPE_PEEL4

#define MICRO_TYPE_PEEL4 (   func,
  func2,
  peel 
)

Definition at line 2028 of file MatrixProduct.h.

◆ MICRO_UNROLL

#define MICRO_UNROLL (   func)

Definition at line 1799 of file MatrixProduct.h.

◆ MICRO_UNROLL_ITER2

#define MICRO_UNROLL_ITER2 (   N,
  M 
)

Definition at line 2145 of file MatrixProduct.h.

◆ MICRO_UNROLL_TYPE

#define MICRO_UNROLL_TYPE (   MICRO_TYPE,
  size 
)

Definition at line 2048 of file MatrixProduct.h.

◆ MICRO_UNROLL_TYPE_ONE

#define MICRO_UNROLL_TYPE_ONE (   M,
  func,
  func1,
  func2 
)

Definition at line 2044 of file MatrixProduct.h.

◆ MICRO_UNROLL_TYPE_PEEL

#define MICRO_UNROLL_TYPE_PEEL (   M,
  func,
  func1,
  func2 
)

Definition at line 2037 of file MatrixProduct.h.

◆ MICRO_UNROLL_WORK

#define MICRO_UNROLL_WORK (   func,
  func2,
  peel 
)

Definition at line 2018 of file MatrixProduct.h.

◆ MICRO_WORK_ONE

#define MICRO_WORK_ONE (   iter,
  peel 
)

Definition at line 2023 of file MatrixProduct.h.

◆ MICRO_WORK_PEEL

#define MICRO_WORK_PEEL (   peel)

Definition at line 1864 of file MatrixProduct.h.

◆ MICRO_WORK_PEEL_ROW

#define MICRO_WORK_PEEL_ROW

Definition at line 1872 of file MatrixProduct.h.

◆ MICRO_ZERO_PEEL

#define MICRO_ZERO_PEEL (   peel)

Definition at line 1809 of file MatrixProduct.h.

◆ MICRO_ZERO_PEEL_ROW

#define MICRO_ZERO_PEEL_ROW

Definition at line 1862 of file MatrixProduct.h.

◆ PEEL

#define PEEL

Definition at line 1796 of file MatrixProduct.h.

◆ PEEL_COMPLEX

#define PEEL_COMPLEX

Definition at line 2277 of file MatrixProduct.h.

◆ PEEL_COMPLEX_ROW

#define PEEL_COMPLEX_ROW

Definition at line 2278 of file MatrixProduct.h.

◆ PEEL_ROW

#define PEEL_ROW

Definition at line 1797 of file MatrixProduct.h.

◆ USE_P10_AND_PVIPR2_0

#define USE_P10_AND_PVIPR2_0

Definition at line 1652 of file MatrixProduct.h.