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