FflasFfpack
fflas_transpose.h File Reference

transpose the storage of the matrix (switch between row and col major mode) More...

Data Structures

struct  BlockTransposeSIMD< Field, Simd, >
 

Namespaces

namespace  FFLAS
 
namespace  FFLAS::_ftranspose_impl
 

Macros

#define FFLAS_TRANSPOSE_BLOCKSIZE   32
 
#define LD(i)
 
#define ST(i)
 

Functions

template<size_t bs, typename Field, typename BTSimd>
void not_inplace (const Field &F, const BTSimd &BTS, const size_t m, const size_t n, typename Field::ConstElement_ptr A, const size_t lda, typename Field::Element_ptr B, const size_t ldb)
 
template<size_t bs, typename Field, typename BTSimd>
void square_inplace (const Field &F, const BTSimd &BTS, const size_t m, typename Field::Element_ptr A, const size_t lda)
 
template<size_t bs, typename Field, typename BTSimd>
void nonsquare_inplace_v1 (const Field &F, const BTSimd &BTS, const size_t m, const size_t n, typename Field::Element_ptr A)
 
template<size_t bs, typename Field, typename BTSimd>
void nonsquare_inplace_v2 (const Field &F, const BTSimd &BTS, const size_t m, const size_t n, typename Field::Element_ptr A)
 
template<typename Field, typename Simd = Simd<typename Field::Element>, size_t bs = FFLAS_TRANSPOSE_BLOCKSIZE, typename std::enable_if< Simd::template is_same_element< Field >::value >::type * = nullptr, typename std::enable_if< bs > = 1 && bs % Simd::vect_size == 0, ::type * = nullptr>
Field::Element_ptr ftranspose (const Field &F, const size_t m, const size_t n, typename Field::ConstElement_ptr A, const size_t lda, typename Field::Element_ptr B, const size_t ldb)
 

Detailed Description

transpose the storage of the matrix (switch between row and col major mode)

Macro Definition Documentation

◆ FFLAS_TRANSPOSE_BLOCKSIZE

#define FFLAS_TRANSPOSE_BLOCKSIZE   32

◆ LD

#define LD ( i)
Value:
R##i=Simd::loadu(A+lda*i)

◆ ST

#define ST ( i)
Value:
Simd::storeu(B+ldb*i,R##i)