Agora  1.2.0
Agora project
iobuffer.h
Go to the documentation of this file.
1 
5 #ifndef IOBUFFER_H_
6 #define IOBUFFER_H_
7 
8 #include <immintrin.h>
9 
10 #include "encoder.h"
11 
12 namespace avx2enc {
13 void Adapter2to64(int8_t* ptr_buff_0, __int8_t* ptr_buff_1, uint16_t zc_size,
14  uint32_t cb_len_bits, int8_t direct);
15 
16 void Adapter64to256(int8_t* ptr_buff_0, int8_t* ptr_buff_1, uint16_t zc_size,
17  uint32_t cb_len_bits, int8_t direct);
18 
19 void Adapter288to384(int8_t* ptr_buff_0, int8_t* ptr_buff_1, uint16_t zc_size,
20  uint32_t cb_len_bits, int8_t direct);
21 
22 using LDPC_ADAPTER_P = void (*)(int8_t*, int8_t*, uint16_t, uint32_t, int8_t);
23 LDPC_ADAPTER_P LdpcSelectAdapterFunc(uint16_t zc_size);
24 } // namespace avx2enc
25 
26 #endif // IOBUFFER_H_
encoder.h
Definitions for Agora's AVX2-based LDPC encoder.
avx2enc::LDPC_ADAPTER_P
void(*)(int8_t *, int8_t *, uint16_t, uint32_t, int8_t) LDPC_ADAPTER_P
Definition: iobuffer.h:22
avx2enc::LdpcSelectAdapterFunc
LDPC_ADAPTER_P LdpcSelectAdapterFunc(uint16_t zc_size)
Definition: iobuffer.cc:228
avx2enc::Adapter288to384
void Adapter288to384(int8_t *ptr_buff_0, int8_t *ptr_buff_1, uint16_t zc_size, uint32_t cb_len_bits, int8_t direct)
Definition: iobuffer.cc:197
avx2enc::Adapter2to64
void Adapter2to64(int8_t *ptr_buff_0, int8_t *ptr_buff_1, uint16_t zc_size, uint32_t cb_len_bits, int8_t direct)
Definition: iobuffer.cc:67
iobuffer.h
Declaration for for the avx2enc iobuffer functions.
fmt::v8::printf
auto printf(const S &fmt, const T &... args) -> int
Definition: printf.h:631
avx2enc
Definition: cyclic_shift.cc:10
avx2enc::ScatterSlow
void ScatterSlow(uint8_t *dst, const uint8_t *src, unsigned num_bits, uint8_t src_offbits)
Definition: iobuffer.cc:17
avx2enc::kProcBytes
static constexpr size_t kProcBytes
Definition: encoder.h:22
avx2enc::kPrintAdapterDebug
static constexpr bool kPrintAdapterDebug
Definition: iobuffer.cc:15
fmt::v8::detail::num_bits
constexpr auto num_bits() -> int
Definition: format.h:343
i
for i
Definition: generate_data.m:107
nlohmann::json_v3_11_1NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON::detail::void
j template void())
Definition: json.hpp:4744
avx2enc::GatherSlow
void GatherSlow(uint8_t *dst, const uint8_t *src, int16_t num_bits, uint8_t dst_offbits)
Definition: iobuffer.cc:37
MIN
#define MIN(a, b)
Definition: encoder.h:15
fmt::v8::detail::write_buffer
void write_buffer(std::basic_ostream< Char > &os, buffer< Char > &buf)
Definition: ostream.h:56
avx2enc::Adapter64to256
void Adapter64to256(int8_t *ptr_buff_0, int8_t *ptr_buff_1, uint16_t zc_size, uint32_t cb_len_bits, int8_t direct)
Definition: iobuffer.cc:120
ofdmtxrx.x0
x0
Definition: ofdmtxrx.py:399
BITMASKU8
#define BITMASKU8(x)
Definition: encoder.h:14
x1
end BigStation x1
Definition: simulate_performance.m:30
avx2enc::Print256Epi8
void Print256Epi8(__m256i var)
Definition: iobuffer.cc:100