-rw-r--r-- 845 libmceliece-20240812/crypto_kem/460896/avx/transpose.h raw
/* This file is for matrix transposition */ #ifndef TRANSPOSE_H #define TRANSPOSE_H #define transpose_64x128_sp_asm CRYPTO_SHARED_NAMESPACE(transpose_64x128_sp_asm) #define transpose_64x256_sp_asm CRYPTO_SHARED_NAMESPACE(transpose_64x256_sp_asm) #define transpose_64x64_asm CRYPTO_SHARED_NAMESPACE(transpose_64x64_asm) #include "vec128.h" #include "vec256.h" extern void transpose_64x64_asm(uint64_t *); extern void transpose_64x128_sp_asm(vec128 *); /* input: in, a 64x64 matrix over GF(2) */ /* output: out, transpose of in */ static inline void transpose_64x64(uint64_t * in) { transpose_64x64_asm(in); } static inline void transpose_64x128_sp(vec128 *in) { transpose_64x128_sp_asm(in); } extern void transpose_64x256_sp_asm(vec256 *); static inline void transpose_64x256_sp(vec256 *in) { transpose_64x256_sp_asm(in); } #endif