cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=538821f09d4dcd71642eb7f4d782ef350b956ddf
commit 538821f09d4dcd71642eb7f4d782ef350b956ddf Author: Jorge Zapata <jorgeluis.zap...@gmail.com> Date: Mon Sep 23 20:48:52 2013 +0200 eina: add double_from/to and helper defines in f16p16 --- src/lib/eina/eina_fp.h | 6 ++++++ src/lib/eina/eina_inline_fp.x | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/lib/eina/eina_fp.h b/src/lib/eina/eina_fp.h index c73dc16..bc6c78d 100644 --- a/src/lib/eina/eina_fp.h +++ b/src/lib/eina/eina_fp.h @@ -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); diff --git a/src/lib/eina/eina_inline_fp.x b/src/lib/eina/eina_inline_fp.x index de44123..e459f82 100644 --- a/src/lib/eina/eina_inline_fp.x +++ b/src/lib/eina/eina_inline_fp.x @@ -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 --