00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 #ifndef KATE_kate_fp_h_GUARD
00011 #define KATE_kate_fp_h_GUARD
00012 
00013 #include "kate_internal.h"
00014 #include "kate/kate.h"
00015 #include "kate_bitwise.h"
00016 
00017 typedef int32_t kate_fp;
00018 
00019 
00020 
00021 
00022 #define KATE_FP_FRAC (sizeof(kate_fp)*4)
00023 
00024 #if 0
00025 static inline kate_fp kate_fp_mul(kate_fp x,kate_fp y)
00026 {
00027   int64_t v=x;
00028   v*=y;
00029   v>>=KATE_FP_FRAC;
00030   return v;
00031 }
00032 
00033 static inline kate_fp kate_fp_div(kate_fp x,kate_fp y)
00034 {
00035   int64_t v=x;
00036   v<<=KATE_FP_FRAC;
00037   v/=y;
00038   return v;
00039 }
00040 
00041 static inline kate_fp kate_fp_add(kate_fp x, kate_fp y)
00042 {
00043   return x+y;
00044 }
00045 
00046 static inline kate_fp kate_fp_sub(kate_fp x, kate_fp y)
00047 {
00048   return x-y;
00049 }
00050 #endif
00051 
00052 extern int kate_fp_encode(size_t count,const kate_fp *values,size_t streams,kate_pack_buffer *kpb) kate_internal;
00053 extern int kate_fp_encode_kate_float(size_t count,const kate_float *values,size_t streams,kate_pack_buffer *kpb) kate_internal;
00054 extern int kate_fp_decode(size_t count,kate_fp *values,size_t streams,kate_pack_buffer *kpb) kate_internal;
00055 extern int kate_fp_decode_kate_float(size_t count,kate_float *values,size_t streams,kate_pack_buffer *kpb) kate_internal;
00056 
00057 #endif
00058