BitUtil: c/c++ header
This commit is contained in:
17
bitutil.h
17
bitutil.h
@ -63,7 +63,7 @@ static inline uint64_t zigzagenc64(int64_t x) { return x << 1 ^ x >
|
|||||||
static inline uint64_t zigzagdec64(uint64_t x) { return x >> 1 ^ -(x & 1); }
|
static inline uint64_t zigzagdec64(uint64_t x) { return x >> 1 ^ -(x & 1); }
|
||||||
|
|
||||||
#ifdef __AVX2__
|
#ifdef __AVX2__
|
||||||
#include <emmintrin.h>
|
#include <immintrin.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
//#define DELTA256x32(_v_, _sv_,_iv_) ?
|
//#define DELTA256x32(_v_, _sv_,_iv_) ?
|
||||||
|
|
||||||
@ -202,6 +202,21 @@ void bitddecn16( uint16_t *p, unsigned n, uint16_t start, uint16_t inc);
|
|||||||
void bitddecn32( uint32_t *p, unsigned n, uint32_t start, uint32_t inc);
|
void bitddecn32( uint32_t *p, unsigned n, uint32_t start, uint32_t inc);
|
||||||
void bitddecn64( uint64_t *p, unsigned n, uint64_t start, uint64_t inc);
|
void bitddecn64( uint64_t *p, unsigned n, uint64_t start, uint64_t inc);
|
||||||
|
|
||||||
|
uint8_t bitdi8( uint8_t *in, unsigned n, uint8_t start);
|
||||||
|
uint16_t bitdi16(uint16_t *in, unsigned n, uint16_t start);
|
||||||
|
uint32_t bitdi32(uint32_t *in, unsigned n, uint32_t start);
|
||||||
|
uint64_t bitdi64(uint64_t *in, unsigned n, uint64_t start);
|
||||||
|
|
||||||
|
unsigned bitdienc8( uint8_t *in, unsigned n, uint8_t *out, uint8_t start, unsigned inc);
|
||||||
|
unsigned bitdienc16(uint16_t *in, unsigned n, uint16_t *out, uint16_t start, unsigned inc);
|
||||||
|
unsigned bitdienc32(uint32_t *in, unsigned n, uint32_t *out, uint32_t start, unsigned inc);
|
||||||
|
unsigned bitdienc64(uint64_t *in, unsigned n, uint64_t *out, uint64_t start, unsigned inc);
|
||||||
|
|
||||||
|
void bitdidec8( uint8_t *p, unsigned n, uint8_t start, uint8_t inc);
|
||||||
|
void bitdidec16( uint16_t *p, unsigned n, uint16_t start, uint16_t inc);
|
||||||
|
void bitdidec32( uint32_t *p, unsigned n, uint32_t start, uint32_t inc);
|
||||||
|
void bitdidec64( uint64_t *p, unsigned n, uint64_t start, uint64_t inc);
|
||||||
|
|
||||||
//------------- FOR array bit length: out[i] = in[i] - start -------------------------------------
|
//------------- FOR array bit length: out[i] = in[i] - start -------------------------------------
|
||||||
unsigned bitf32( uint32_t *in, unsigned n, uint32_t start); // sorted
|
unsigned bitf32( uint32_t *in, unsigned n, uint32_t start); // sorted
|
||||||
unsigned bitf132( uint32_t *in, unsigned n, uint32_t start);
|
unsigned bitf132( uint32_t *in, unsigned n, uint32_t start);
|
||||||
|
|||||||
Reference in New Issue
Block a user