eina: add double_from/to and helper defines in f16p16

This commit is contained in:
Jorge Zapata 2013-09-23 20:48:52 +02:00 committed by Cedric Bail
parent 4850c4660f
commit 538821f09d
2 changed files with 23 additions and 0 deletions

View File

@ -60,8 +60,14 @@ static inline unsigned int eina_f32p32_fracc_get(Eina_F32p32 v);
EAPI Eina_F32p32 eina_f32p32_cos(Eina_F32p32 a);
EAPI Eina_F32p32 eina_f32p32_sin(Eina_F32p32 a);
#define EINA_F16P16_ONE (1 << 16)
#define EINA_F16P16_HALF (1 << 15)
static inline Eina_F16p16 eina_f16p16_int_from(int32_t v);
static inline int32_t eina_f16p16_int_to(Eina_F16p16 v);
static inline Eina_F16p16 eina_f16p16_double_from(double v);
static inline double eina_f16p16_double_to(Eina_F16p16 v);
static inline Eina_F16p16 eina_f16p16_float_from(float v);
static inline float eina_f16p16_float_to(Eina_F16p16 v);

View File

@ -80,6 +80,23 @@ eina_f16p16_float_to(Eina_F16p16 v)
return r;
}
static inline Eina_F16p16
eina_f16p16_double_from(double v)
{
Eina_F16p16 r;
r = (Eina_F16p16)(v * 65536.0 + (v < 0 ? -0.5 : 0.5));
return r;
}
static inline double
eina_f16p16_double_to(Eina_F16p16 v)
{
double r;
r = v / 65536.0;
return r;
}
static inline Eina_F8p24