77#include "jasper/jas_config.h"
102typedef 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)
122static inline jpc_fix_t jpc_inttofix(
int x)
128static inline int jpc_fixtoint(jpc_fix_t x)
134static inline double jpc_fixtodbl(jpc_fix_t x)
140static inline jpc_fix_t jpc_dbltofix(
double x)
146static 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);
152static 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);
158static 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);
164static 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);
170static 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);
176static 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)
204static inline jpc_fix_t jpc_fix_abs(jpc_fix_t x)
206 return JAS_FIX_ABS(jpc_fix_t, JPC_FIX_FRACBITS, x);
210static inline bool jpc_fix_isint(jpc_fix_t x)
216static inline int jpc_fix_sgn(jpc_fix_t x)
218 return JAS_FIX_SGN(jpc_fix_t, JPC_FIX_FRACBITS, x);
222static inline jpc_fix_t jpc_fix_round(jpc_fix_t x)
228static inline jpc_fix_t jpc_fix_floor(jpc_fix_t x)
239static 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);
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_SUB(fix_t, fracbits, x, y)
Definition jas_fix.h:294
#define JAS_FIX_ABS(fix_t, fracbits, x)
Definition jas_fix.h:314
#define JAS_FIX_SGN(fix_t, fracbits, x)
Definition jas_fix.h:322
#define JAS_FIX_FLOOR(fix_t, fracbits, x)
Definition jas_fix.h:362
#define JAS_FIXTOINT(fix_t, fracbits, x)
Definition jas_fix.h:143
#define JAS_FIX_ISINT(fix_t, fracbits, x)
Definition jas_fix.h:318
#define JAS_FIX_NEG
Definition jas_fix.h:240
#define JAS_FIX_ROUND(fix_t, fracbits, x)
Definition jas_fix.h:354
#define JAS_FIXTODBL(fix_t, fracbits, x)
Definition jas_fix.h:147
#define JAS_DBLTOFIX(fix_t, fracbits, x)
Definition jas_fix.h:151
#define JAS_FIX_ADD
Definition jas_fix.h:166
#define JAS_FIX_MUL
Definition jas_fix.h:184
#define JAS_FIX_DIV
Definition jas_fix.h:223
JasPer Fixed-Point Number Class.