TurboPFor: Floating Point/Integer c/c++ header

This commit is contained in:
x
2019-10-16 19:47:31 +02:00
parent bdd1af54ba
commit 1f8009c666

77
fp.h
View File

@ -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