BitUtil: c/c++ header
This commit is contained in:
25
bitutil.h
25
bitutil.h
@ -208,12 +208,27 @@ unsigned bitd18( uint8_t *in, unsigned n, uint8_t start);
|
|||||||
unsigned bitd116( uint16_t *in, unsigned n, uint16_t start);
|
unsigned bitd116( uint16_t *in, unsigned n, uint16_t start);
|
||||||
unsigned bitd132( uint32_t *in, unsigned n, uint32_t start);
|
unsigned bitd132( uint32_t *in, unsigned n, uint32_t start);
|
||||||
unsigned bitd164( uint64_t *in, unsigned n, uint64_t start);
|
unsigned bitd164( uint64_t *in, unsigned n, uint64_t start);
|
||||||
//-- in-place reverse delta (encoded w/ bitdiencNN and parameter mindelta = 1)
|
//-- in-place reverse delta of delta (encoded w/ bitdiencNN and parameter mindelta = 1)
|
||||||
void bitd1dec8( uint8_t *p, unsigned n, uint8_t start); // non strictly decreasing (out[i] = in[i] - in[i-1] - 1)
|
void bitd1dec8( uint8_t *p, unsigned n, uint8_t start); // non strictly decreasing (out[i] = in[i] - in[i-1] - 1)
|
||||||
void bitd1dec16( uint16_t *p, unsigned n, uint16_t start);
|
void bitd1dec16( uint16_t *p, unsigned n, uint16_t start);
|
||||||
void bitd1dec32( uint32_t *p, unsigned n, uint32_t start);
|
void bitd1dec32( uint32_t *p, unsigned n, uint32_t start);
|
||||||
void bitd1dec64( uint64_t *p, unsigned n, uint64_t start);
|
void bitd1dec64( uint64_t *p, unsigned n, uint64_t start);
|
||||||
|
|
||||||
|
//-- get delta maximum bit length of the non strictly decreasing integer array. out[i] = in[i] - in[i-1] - 1
|
||||||
|
unsigned bitdd8( uint8_t *in, unsigned n, uint8_t start);
|
||||||
|
unsigned bitdd16( uint16_t *in, unsigned n, uint16_t start);
|
||||||
|
unsigned bitdd32( uint32_t *in, unsigned n, uint32_t start);
|
||||||
|
unsigned bitdd64( uint64_t *in, unsigned n, uint64_t start);
|
||||||
|
unsigned bitddenc8( uint8_t *in, unsigned n, uint8_t *out, uint8_t start, uint8_t mindelta);
|
||||||
|
unsigned bitddenc16(uint16_t *in, unsigned n, uint16_t *out, uint16_t start, uint16_t mindelta);
|
||||||
|
unsigned bitddenc32(uint32_t *in, unsigned n, uint32_t *out, uint32_t start, uint32_t mindelta);
|
||||||
|
unsigned bitddenc64(uint64_t *in, unsigned n, uint64_t *out, uint64_t start, uint64_t mindelta);
|
||||||
|
|
||||||
|
//-- in-place reverse delta of delta (encoded w/ bitdiencNN and parameter mindelta = 1)
|
||||||
|
void bitdddec8( uint8_t *p, unsigned n, uint8_t start); // non strictly decreasing (out[i] = in[i] - in[i-1] - 1)
|
||||||
|
void bitdddec16( uint16_t *p, unsigned n, uint16_t start);
|
||||||
|
void bitdddec32( uint32_t *p, unsigned n, uint32_t start);
|
||||||
|
void bitdddec64( uint64_t *p, unsigned n, uint64_t start);
|
||||||
|
|
||||||
//-- get min. delta (mindelta = in[i] - in[i-1])
|
//-- get min. delta (mindelta = in[i] - in[i-1])
|
||||||
uint8_t bitdi8( uint8_t *in, unsigned n, uint8_t start);
|
uint8_t bitdi8( uint8_t *in, unsigned n, uint8_t start);
|
||||||
@ -232,8 +247,14 @@ void bitdidec32( uint32_t *p, unsigned n, uint32_t start, uint32_t mindelta);
|
|||||||
void bitdidec64( uint64_t *p, unsigned n, uint64_t start, uint64_t mindelta);
|
void bitdidec64( uint64_t *p, unsigned n, uint64_t start, uint64_t mindelta);
|
||||||
|
|
||||||
//------------- 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 bitf8( uint8_t *in, unsigned n, uint8_t start); // sorted
|
||||||
|
unsigned bitf18( uint8_t *in, unsigned n, uint8_t start);
|
||||||
|
unsigned bitf16( uint16_t *in, unsigned n, uint16_t start);
|
||||||
|
unsigned bitf116( uint16_t *in, unsigned n, uint16_t start);
|
||||||
|
unsigned bitf32( uint32_t *in, unsigned n, uint32_t start);
|
||||||
unsigned bitf132( uint32_t *in, unsigned n, uint32_t start);
|
unsigned bitf132( uint32_t *in, unsigned n, uint32_t start);
|
||||||
|
unsigned bitf64( uint64_t *in, unsigned n, uint64_t start);
|
||||||
|
unsigned bitf164( uint64_t *in, unsigned n, uint64_t start);
|
||||||
|
|
||||||
unsigned bitfm8( uint8_t *in, unsigned n, uint8_t *pmin); // unsorted
|
unsigned bitfm8( uint8_t *in, unsigned n, uint8_t *pmin); // unsorted
|
||||||
unsigned bitfm16( uint16_t *in, unsigned n, uint16_t *pmin);
|
unsigned bitfm16( uint16_t *in, unsigned n, uint16_t *pmin);
|
||||||
|
Reference in New Issue
Block a user