BitUtil: c/c++ header

This commit is contained in:
x
2017-01-29 14:09:46 +01:00
parent 2d610e51ff
commit 4f6e37bcfd

View File

@ -154,8 +154,8 @@ static inline uint64_t zigzagdec64(uint64_t x) { return x >> 1 ^ -(x
#define BITZERO32( _out_, _n_, _start_) BITFORSET_(_out_, _n_, _start_, 0) #define BITZERO32( _out_, _n_, _start_) BITFORSET_(_out_, _n_, _start_, 0)
#endif #endif
#define DELTR( _in_, _n_, _mode_, _out_) { unsigned _v; for( _out_[0]=_in_[0],_v = 1; _v < _n_; _v++) _out_[_v] = (_in_[_v] - _out_[0]) - _v*_mode_; } #define DELTR( _in_, _n_, _start_, _inc_, _out_) { unsigned _v; for( _v = 0; _v < _n_; _v++) _out_[_v] = _in_[_v] - (_start_) - _v*(_inc_) - (_inc_); }
#define DELTRB(_in_, _n_, _mode_, _b_, _out_) { unsigned _v; for(_b_=0,_out_[0]=_in_[0],_v = 1; _v < _n_; _v++) _out_[_v] = (_in_[_v] - _out_[0]) - _v*_mode_, _b_ |= _out_[_v]; _b_ = bsr32(_b_); } #define DELTRB(_in_, _n_, _start_, _inc_, _b_, _out_) { unsigned _v; for(_b_=0,_v = 0; _v < _n_; _v++) _out_[_v] = _in_[_v] - (_start_) - _v*(_inc_) - (_inc_), _b_ |= _out_[_v]; _b_ = bsr32(_b_); }
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
@ -206,8 +206,10 @@ void bitundn64( uint64_t *p, unsigned n, uint64_t start, uint64_t inc);
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);
unsigned bitfm32( uint32_t *in, unsigned n, uint32_t *pmin); // unsorted unsigned bitfm8( uint8_t *in, unsigned n, uint8_t *pmin); // unsorted
unsigned bitf1m32( uint32_t *in, unsigned n, uint32_t *pmin); unsigned bitfm16( uint16_t *in, unsigned n, uint16_t *pmin);
unsigned bitfm32( uint32_t *in, unsigned n, uint32_t *pmin);
unsigned bitfm64( uint64_t *in, unsigned n, uint64_t *pmin);
//------------- Zigzag encoding for unsorted integer lists: out[i] = in[i] - in[i-1] ------------- //------------- Zigzag encoding for unsorted integer lists: out[i] = in[i] - in[i-1] -------------