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

-- 


Reply via email to