Agora  1.2.0
Agora project
avx2enc Namespace Reference

Typedefs

using CYCLIC_BIT_SHIFT = __m256i(*)(__m256i, int16_t, int16_t)
 
using LDPC_ADAPTER_P = void(*)(int8_t *, int8_t *, uint16_t, uint32_t, int8_t)
 

Functions

__m256i CycleBitShift2to64 (__m256i data, int16_t cyc_shift, int16_t zc)
 
__m256i CycleBitShift72to128 (__m256i data, int16_t cyc_shift, int16_t zc)
 
__m256i CycleBitShift144to256 (__m256i data, int16_t cyc_shift, int16_t zc)
 
CYCLIC_BIT_SHIFT LdpcSelectShiftFunc (int16_t zcSize)
 
void LdpcEncoderBg1 (int8_t *pDataIn, int8_t *pDataOut, const int16_t *pMatrixNumPerCol, const int16_t *pAddr, const int16_t *pShiftMatrix, int16_t zcSize, uint8_t i_LS)
 
void LdpcEncoderBg2 (int8_t *pDataIn, int8_t *pDataOut, const int16_t *pMatrixNumPerCol, const int16_t *pAddr, const int16_t *pShiftMatrix, int16_t zcSize, uint8_t i_LS)
 
int32_t BblibLdpcEncoder5gnr (struct bblib_ldpc_encoder_5gnr_request *request, struct bblib_ldpc_encoder_5gnr_response *response)
 
void ScatterSlow (uint8_t *dst, const uint8_t *src, unsigned num_bits, uint8_t src_offbits)
 
void GatherSlow (uint8_t *dst, const uint8_t *src, int16_t num_bits, uint8_t dst_offbits)
 
void Adapter2to64 (int8_t *ptr_buff_0, int8_t *ptr_buff_1, uint16_t zc_size, uint32_t cb_len_bits, int8_t direct)
 
void Print256Epi8 (__m256i var)
 
void Adapter64to256 (int8_t *ptr_buff_0, int8_t *ptr_buff_1, uint16_t zc_size, uint32_t cb_len_bits, int8_t direct)
 
void Adapter288to384 (int8_t *ptr_buff_0, int8_t *ptr_buff_1, uint16_t zc_size, uint32_t cb_len_bits, int8_t direct)
 
LDPC_ADAPTER_P LdpcSelectAdapterFunc (uint16_t zc_size)
 
void Adapter2to64 (int8_t *ptr_buff_0, __int8_t *ptr_buff_1, uint16_t zc_size, uint32_t cb_len_bits, int8_t direct)
 

Variables

static constexpr size_t kZcMax = 255
 
static constexpr size_t kProcBytes = 32
 
static constexpr bool kPrintAdapterDebug = false
 

Typedef Documentation

◆ CYCLIC_BIT_SHIFT

using avx2enc::CYCLIC_BIT_SHIFT = typedef __m256i (*)(__m256i, int16_t, int16_t)

◆ LDPC_ADAPTER_P

using avx2enc::LDPC_ADAPTER_P = typedef void (*)(int8_t*, int8_t*, uint16_t, uint32_t, int8_t)

Function Documentation

◆ Adapter288to384()

void avx2enc::Adapter288to384 ( int8_t *  ptr_buff_0,
int8_t *  ptr_buff_1,
uint16_t  zc_size,
uint32_t  cb_len_bits,
int8_t  direct 
)
Here is the caller graph for this function:

◆ Adapter2to64() [1/2]

void avx2enc::Adapter2to64 ( int8_t *  ptr_buff_0,
__int8_t *  ptr_buff_1,
uint16_t  zc_size,
uint32_t  cb_len_bits,
int8_t  direct 
)

◆ Adapter2to64() [2/2]

void avx2enc::Adapter2to64 ( int8_t *  ptr_buff_0,
int8_t *  ptr_buff_1,
uint16_t  zc_size,
uint32_t  cb_len_bits,
int8_t  direct 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Adapter64to256()

void avx2enc::Adapter64to256 ( int8_t *  ptr_buff_0,
int8_t *  ptr_buff_1,
uint16_t  zc_size,
uint32_t  cb_len_bits,
int8_t  direct 
)
Parameters
ptr_buff_0must be ((cb_len_bits / zc_size) -1) * (zc_size / 8) + kProcBytes (32) bytes large
ptr_buff_1must be (cb_len_bits / zc_size) * kProcBytes (32) large
zc_sizezc value
cb_len_bitscodeblock length
direct1 = scatter, otherwise gather
Here is the call graph for this function:
Here is the caller graph for this function:

◆ BblibLdpcEncoder5gnr()

int32_t avx2enc::BblibLdpcEncoder5gnr ( struct bblib_ldpc_encoder_5gnr_request *  request,
struct bblib_ldpc_encoder_5gnr_response *  response 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ CycleBitShift144to256()

__m256i avx2enc::CycleBitShift144to256 ( __m256i  data,
int16_t  cyc_shift,
int16_t  zc 
)
inline
Here is the caller graph for this function:

◆ CycleBitShift2to64()

__m256i avx2enc::CycleBitShift2to64 ( __m256i  data,
int16_t  cyc_shift,
int16_t  zc 
)
inline
Here is the caller graph for this function:

◆ CycleBitShift72to128()

__m256i avx2enc::CycleBitShift72to128 ( __m256i  data,
int16_t  cyc_shift,
int16_t  zc 
)
inline
Here is the caller graph for this function:

◆ GatherSlow()

void avx2enc::GatherSlow ( uint8_t *  dst,
const uint8_t *  src,
int16_t  num_bits,
uint8_t  dst_offbits 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ LdpcEncoderBg1()

void avx2enc::LdpcEncoderBg1 ( int8_t *  pDataIn,
int8_t *  pDataOut,
const int16_t *  pMatrixNumPerCol,
const int16_t *  pAddr,
const int16_t *  pShiftMatrix,
int16_t  zcSize,
uint8_t  i_LS 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ LdpcEncoderBg2()

void avx2enc::LdpcEncoderBg2 ( int8_t *  pDataIn,
int8_t *  pDataOut,
const int16_t *  pMatrixNumPerCol,
const int16_t *  pAddr,
const int16_t *  pShiftMatrix,
int16_t  zcSize,
uint8_t  i_LS 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ LdpcSelectAdapterFunc()

LDPC_ADAPTER_P avx2enc::LdpcSelectAdapterFunc ( uint16_t  zc_size)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ LdpcSelectShiftFunc()

CYCLIC_BIT_SHIFT avx2enc::LdpcSelectShiftFunc ( int16_t  zcSize)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Print256Epi8()

void avx2enc::Print256Epi8 ( __m256i  var)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ScatterSlow()

void avx2enc::ScatterSlow ( uint8_t *  dst,
const uint8_t *  src,
unsigned  num_bits,
uint8_t  src_offbits 
)
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ kPrintAdapterDebug

constexpr bool avx2enc::kPrintAdapterDebug = false
staticconstexpr

◆ kProcBytes

constexpr size_t avx2enc::kProcBytes = 32
staticconstexpr

◆ kZcMax

constexpr size_t avx2enc::kZcMax = 255
staticconstexpr