77 #include "jasper/jas_config.h" 102 typedef jas_fix_big_t jpc_fix_big_t;
104 #if defined(JAS_ENABLE_32BIT) 105 #define JPC_FIX_FRACBITS 13 107 #define JPC_FIX_FRACBITS 18 117 #define JPC_FIX_ZERO JAS_FIX_ZERO(jpc_fix_t, JPC_FIX_FRACBITS) 118 #define JPC_FIX_ONE JAS_FIX_ONE(jpc_fix_t, JPC_FIX_FRACBITS) 119 #define JPC_FIX_HALF JAS_FIX_HALF(jpc_fix_t, JPC_FIX_FRACBITS) 122 static inline jpc_fix_t jpc_inttofix(
int x)
128 static inline int jpc_fixtoint(jpc_fix_t x)
134 static inline double jpc_fixtodbl(jpc_fix_t x)
140 static inline jpc_fix_t jpc_dbltofix(
double x)
146 static inline jpc_fix_t jpc_fix_add(jpc_fix_t x, jpc_fix_t y)
148 return JAS_FIX_ADD(jpc_fix_t, JPC_FIX_FRACBITS, x, y);
152 static inline jpc_fix_t jpc_fix_sub(jpc_fix_t x, jpc_fix_t y)
154 return JAS_FIX_SUB(jpc_fix_t, JPC_FIX_FRACBITS, x, y);
158 static inline jpc_fix_t jpc_fix_mul(jpc_fix_big_t x, jpc_fix_big_t y)
160 return JAS_FIX_MUL(jpc_fix_t, JPC_FIX_FRACBITS, jpc_fix_big_t, x, y);
164 static inline jpc_fix_big_t jpc_fix_mulbyint(jpc_fix_big_t x,
int y)
166 return JAS_FIX_MUL(jpc_fix_t, JPC_FIX_FRACBITS, jpc_fix_big_t, x, y);
170 static inline jpc_fix_t jpc_fix_div(jpc_fix_big_t x, jpc_fix_t y)
172 return JAS_FIX_DIV(jpc_fix_t, JPC_FIX_FRACBITS, jpc_fix_big_t, x, y);
176 static inline jpc_fix_t jpc_fix_neg(jpc_fix_t x)
178 return JAS_FIX_NEG(jpc_fix_t, JPC_FIX_FRACBITS, x);
185 #ifdef JAS_ENABLE_32BIT 186 #define jpc_fix_asl jas_least32_asl 187 #define jpc_fix_asr jas_least32_asr 189 #define jpc_fix_asl jas_fast32_asl 190 #define jpc_fix_asr jas_fast32_asr 193 #define jpc_fix_asl jas_fix_asl 194 #define jpc_fix_asr jas_fix_asr 196 #define jpc_fix_pluseq(x, y) \ 197 JAS_FIX_PLUSEQ(jpc_fix_t, JPC_FIX_FRACBITS, x, y) 198 #define jpc_fix_minuseq(x, y) \ 199 JAS_FIX_MINUSEQ(jpc_fix_t, JPC_FIX_FRACBITS, x, y) 200 #define jpc_fix_muleq(x, y) \ 201 JAS_FIX_MULEQ(jpc_fix_t, JPC_FIX_FRACBITS, jpc_fix_big_t, x, y) 204 static inline jpc_fix_t jpc_fix_abs(jpc_fix_t x)
206 return JAS_FIX_ABS(jpc_fix_t, JPC_FIX_FRACBITS, x);
210 static inline bool jpc_fix_isint(jpc_fix_t x)
216 static inline int jpc_fix_sgn(jpc_fix_t x)
218 return JAS_FIX_SGN(jpc_fix_t, JPC_FIX_FRACBITS, x);
222 static inline jpc_fix_t jpc_fix_round(jpc_fix_t x)
228 static inline jpc_fix_t jpc_fix_floor(jpc_fix_t x)
239 static inline jpc_fix_t jpc_fix_add3(jpc_fix_t x, jpc_fix_t y, jpc_fix_t z)
241 return jpc_fix_add(jpc_fix_add(x, y), z);
#define JAS_FIX_DIV
Definition: jas_fix.h:223
#define JAS_FIX_MUL
Definition: jas_fix.h:184
#define JAS_FIX_SGN(fix_t, fracbits, x)
Definition: jas_fix.h:322
#define JAS_FIXTOINT(fix_t, fracbits, x)
Definition: jas_fix.h:143
#define JAS_FIX_ROUND(fix_t, fracbits, x)
Definition: jas_fix.h:354
int_least64_t jas_fix_t
Definition: jas_fix.h:101
#define JAS_INTTOFIX(fix_t, fracbits, x)
Definition: jas_fix.h:139
#define JAS_FIX_ADD
Definition: jas_fix.h:166
JasPer Fixed-Point Number Class.
#define JAS_FIX_FLOOR(fix_t, fracbits, x)
Definition: jas_fix.h:362
#define JAS_DBLTOFIX(fix_t, fracbits, x)
Definition: jas_fix.h:151
#define JAS_FIX_ABS(fix_t, fracbits, x)
Definition: jas_fix.h:314
#define JAS_FIX_ISINT(fix_t, fracbits, x)
Definition: jas_fix.h:318
#define JAS_FIXTODBL(fix_t, fracbits, x)
Definition: jas_fix.h:147
#define JAS_FIX_NEG
Definition: jas_fix.h:240
#define JAS_FIX_SUB(fix_t, fracbits, x, y)
Definition: jas_fix.h:294