TurboPFor: Floating Point/Integer c/c++ header
This commit is contained in:
77
fp.h
77
fp.h
@ -30,37 +30,18 @@ extern "C" {
|
||||
#else
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
//--------- Last value Predictor
|
||||
// delta (=zigzag). Same as p4zenc
|
||||
size_t fppenc8( uint8_t *in, size_t n, unsigned char *out, uint8_t start);
|
||||
size_t fppdec8( unsigned char *in, size_t n, uint8_t *out, uint8_t start);
|
||||
size_t fppenc16( uint16_t *in, size_t n, unsigned char *out, uint16_t start);
|
||||
size_t fppdec16( unsigned char *in, size_t n, uint16_t *out, uint16_t start);
|
||||
size_t fppenc32( uint32_t *in, size_t n, unsigned char *out, uint32_t start);
|
||||
size_t fppdec32( unsigned char *in, size_t n, uint32_t *out, uint32_t start);
|
||||
size_t fppenc64( uint64_t *in, size_t n, unsigned char *out, uint64_t start);
|
||||
size_t fppdec64( unsigned char *in, size_t n, uint64_t *out, uint64_t start);
|
||||
|
||||
// Zigzag of delta (=delta of delta + zigzag encoding)
|
||||
size_t fpzzenc8( uint8_t *in, size_t n, unsigned char *out, uint8_t start);
|
||||
size_t fpzzdec8( unsigned char *in, size_t n, uint8_t *out, uint8_t start);
|
||||
size_t fpzzenc16( uint16_t *in, size_t n, unsigned char *out, uint16_t start);
|
||||
size_t fpzzdec16( unsigned char *in, size_t n, uint16_t *out, uint16_t start);
|
||||
size_t fpzzenc32( uint32_t *in, size_t n, unsigned char *out, uint32_t start);
|
||||
size_t fpzzdec32( unsigned char *in, size_t n, uint32_t *out, uint32_t start);
|
||||
size_t fpzzenc64( uint64_t *in, size_t n, unsigned char *out, uint64_t start);
|
||||
size_t fpzzdec64( unsigned char *in, size_t n, uint64_t *out, uint64_t start);
|
||||
// ---------- TurboPFor Zigzag of delta (=delta of delta + zigzag encoding) (TurboPFor)
|
||||
size_t p4nzzenc128v8( uint8_t *in, size_t n, unsigned char *out, uint8_t start);
|
||||
size_t p4nzzdec128v8( unsigned char *in, size_t n, uint8_t *out, uint8_t start);
|
||||
size_t p4nzzenc128v16( uint16_t *in, size_t n, unsigned char *out, uint16_t start);
|
||||
size_t p4nzzdec128v16( unsigned char *in, size_t n, uint16_t *out, uint16_t start);
|
||||
size_t p4nzzenc128v32( uint32_t *in, size_t n, unsigned char *out, uint32_t start);
|
||||
size_t p4nzzdec128v32( unsigned char *in, size_t n, uint32_t *out, uint32_t start);
|
||||
size_t p4nzzenc128v64( uint64_t *in, size_t n, unsigned char *out, uint64_t start);
|
||||
size_t p4nzzdec128v64( unsigned char *in, size_t n, uint64_t *out, uint64_t start);
|
||||
|
||||
// Improved gorilla style + RLE w/ bit/io
|
||||
size_t fpgenc8( uint8_t *in, size_t n, unsigned char *out, uint8_t start);
|
||||
size_t fpgdec8( unsigned char *in, size_t n, uint8_t *out, uint8_t start);
|
||||
size_t fpgenc16( uint16_t *in, size_t n, unsigned char *out, uint16_t start);
|
||||
size_t fpgdec16( unsigned char *in, size_t n, uint16_t *out, uint16_t start);
|
||||
size_t fpgenc32( uint32_t *in, size_t n, unsigned char *out, uint32_t start);
|
||||
size_t fpgdec32( unsigned char *in, size_t n, uint32_t *out, uint32_t start);
|
||||
size_t fpgenc64( uint64_t *in, size_t n, unsigned char *out, uint64_t start);
|
||||
size_t fpgdec64( unsigned char *in, size_t n, uint64_t *out, uint64_t start);
|
||||
//---- Zigzag w/ bit/io
|
||||
//----------- Zigzag (bit/io) -------------------------------------------------------
|
||||
size_t bvzenc8( uint8_t *in, size_t n, unsigned char *out, uint8_t start);
|
||||
size_t bvzdec8( unsigned char *in, size_t n, uint8_t *out, uint8_t start);
|
||||
size_t bvzenc16( uint16_t *in, size_t n, unsigned char *out, uint16_t start);
|
||||
@ -69,7 +50,7 @@ size_t bvzenc32( uint32_t *in, size_t n, unsigned char *out, uint32_t st
|
||||
size_t bvzdec32( unsigned char *in, size_t n, uint32_t *out, uint32_t start);
|
||||
size_t bvzenc64( uint64_t *in, size_t n, unsigned char *out, uint64_t start);
|
||||
size_t bvzdec64( unsigned char *in, size_t n, uint64_t *out, uint64_t start);
|
||||
//---- Zigzag of delta w/ bit/io
|
||||
//----------- Zigzag of delta (bit/io) ---------------------------------------------
|
||||
size_t bvzzenc8( uint8_t *in, size_t n, unsigned char *out, uint8_t start);
|
||||
size_t bvzzdec8( unsigned char *in, size_t n, uint8_t *out, uint8_t start);
|
||||
size_t bvzzenc16( uint16_t *in, size_t n, unsigned char *out, uint16_t start);
|
||||
@ -79,7 +60,27 @@ size_t bvzzdec32( unsigned char *in, size_t n, uint32_t *out, uint32_t st
|
||||
size_t bvzzenc64( uint64_t *in, size_t n, unsigned char *out, uint64_t start);
|
||||
size_t bvzzdec64( unsigned char *in, size_t n, uint64_t *out, uint64_t start);
|
||||
|
||||
//------------- FCM: Finite Context Method Predictor
|
||||
//----------- TurboGorilla : Improved gorilla style + RLE (bit/io) ------------------
|
||||
size_t fpgenc8( uint8_t *in, size_t n, unsigned char *out, uint8_t start);
|
||||
size_t fpgdec8( unsigned char *in, size_t n, uint8_t *out, uint8_t start);
|
||||
size_t fpgenc16( uint16_t *in, size_t n, unsigned char *out, uint16_t start);
|
||||
size_t fpgdec16( unsigned char *in, size_t n, uint16_t *out, uint16_t start);
|
||||
size_t fpgenc32( uint32_t *in, size_t n, unsigned char *out, uint32_t start);
|
||||
size_t fpgdec32( unsigned char *in, size_t n, uint32_t *out, uint32_t start);
|
||||
size_t fpgenc64( uint64_t *in, size_t n, unsigned char *out, uint64_t start);
|
||||
size_t fpgdec64( unsigned char *in, size_t n, uint64_t *out, uint64_t start);
|
||||
|
||||
//----------- TurboFloat XOR : Last value predictor (TurboPFor) ---------------------
|
||||
size_t fpxenc8( uint8_t *in, size_t n, unsigned char *out, uint8_t start);
|
||||
size_t fpxdec8( unsigned char *in, size_t n, uint8_t *out, uint8_t start);
|
||||
size_t fpxenc16( uint16_t *in, size_t n, unsigned char *out, uint16_t start);
|
||||
size_t fpxdec16( unsigned char *in, size_t n, uint16_t *out, uint16_t start);
|
||||
size_t fpxenc32( uint32_t *in, size_t n, unsigned char *out, uint32_t start);
|
||||
size_t fpxdec32( unsigned char *in, size_t n, uint32_t *out, uint32_t start);
|
||||
size_t fpxenc64( uint64_t *in, size_t n, unsigned char *out, uint64_t start);
|
||||
size_t fpxdec64( unsigned char *in, size_t n, uint64_t *out, uint64_t start);
|
||||
|
||||
//----------- TurboFloat FCM: Finite Context Method Predictor (TurboPFor) -----------
|
||||
size_t fpfcmenc8( uint8_t *in, size_t n, unsigned char *out, uint8_t start);
|
||||
size_t fpfcmdec8( unsigned char *in, size_t n, uint8_t *out, uint8_t start);
|
||||
size_t fpfcmenc16( uint16_t *in, size_t n, unsigned char *out, uint16_t start);
|
||||
@ -89,7 +90,7 @@ size_t fpfcmdec32( unsigned char *in, size_t n, uint32_t *out, uint32_t st
|
||||
size_t fpfcmenc64( uint64_t *in, size_t n, unsigned char *out, uint64_t start);
|
||||
size_t fpfcmdec64( unsigned char *in, size_t n, uint64_t *out, uint64_t start);
|
||||
|
||||
//------------- DFCM: Differential Finite Context Method Predictor
|
||||
//----------- TurboFloat DFCM: Differential Finite Context Method Predictor (TurboPFor)
|
||||
size_t fpdfcmenc8( uint8_t *in, size_t n, unsigned char *out, uint8_t start);
|
||||
size_t fpdfcmdec8( unsigned char *in, size_t n, uint8_t *out, uint8_t start);
|
||||
size_t fpdfcmenc16( uint16_t *in, size_t n, unsigned char *out, uint16_t start);
|
||||
@ -99,7 +100,7 @@ size_t fpdfcmdec32( unsigned char *in, size_t n, uint32_t *out, uint32_t st
|
||||
size_t fpdfcmenc64( uint64_t *in, size_t n, unsigned char *out, uint64_t start);
|
||||
size_t fpdfcmdec64( unsigned char *in, size_t n, uint64_t *out, uint64_t start);
|
||||
|
||||
// 2D DFCM
|
||||
//----------- TurboFloat 2D DFCM: Differential Finite Context Method Predictor -----
|
||||
size_t fp2dfcmenc8( uint8_t *in, size_t n, unsigned char *out, uint8_t start);
|
||||
size_t fp2dfcmdec8( unsigned char *in, size_t n, uint8_t *out, uint8_t start);
|
||||
size_t fp2dfcmenc16(uint16_t *in, size_t n, unsigned char *out, uint16_t start);
|
||||
@ -109,6 +110,16 @@ size_t fp2dfcmdec32(unsigned char *in, size_t n, uint32_t *out, uint32_t st
|
||||
size_t fp2dfcmenc64(uint64_t *in, size_t n, unsigned char *out, uint64_t start);
|
||||
size_t fp2dfcmdec64(unsigned char *in, size_t n, uint64_t *out, uint64_t start);
|
||||
|
||||
/*/-------------- delta (=zigzag). Same as p4zenc ------------------------------------
|
||||
size_t fppenc8( uint8_t *in, size_t n, unsigned char *out, uint8_t start);
|
||||
size_t fppdec8( unsigned char *in, size_t n, uint8_t *out, uint8_t start);
|
||||
size_t fppenc16( uint16_t *in, size_t n, unsigned char *out, uint16_t start);
|
||||
size_t fppdec16( unsigned char *in, size_t n, uint16_t *out, uint16_t start);
|
||||
size_t fppenc32( uint32_t *in, size_t n, unsigned char *out, uint32_t start);
|
||||
size_t fppdec32( unsigned char *in, size_t n, uint32_t *out, uint32_t start);
|
||||
size_t fppenc64( uint64_t *in, size_t n, unsigned char *out, uint64_t start);
|
||||
size_t fppdec64( unsigned char *in, size_t n, uint64_t *out, uint64_t start);*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user