From 0ce58d1076740dda6228e6c0b8629e32b1fdedb0 Mon Sep 17 00:00:00 2001 From: compudj Date: Sat, 14 Aug 2004 07:47:31 +0000 Subject: [PATCH] time from double optimisation : use double multiplication and integer shift instead of double division git-svn-id: http://ltt.polymtl.ca/svn@739 04897980-b3bd-0310-b5e0-8ef037075253 --- ltt/branches/poly/ltt/time.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ltt/branches/poly/ltt/time.h b/ltt/branches/poly/ltt/time.h index db85c69c..83c2fb6c 100644 --- a/ltt/branches/poly/ltt/time.h +++ b/ltt/branches/poly/ltt/time.h @@ -29,6 +29,7 @@ typedef struct _LttTime { #define NANOSECONDS_PER_SECOND 1000000000 +#define SHIFT_CONST 1.07374182400631629848 static const LttTime ltt_time_zero = { 0, 0 }; @@ -110,7 +111,8 @@ static inline LttTime ltt_time_from_double(double t1) g_warning("Conversion from non precise double to LttTime"); #endif //EXTRA_CHECK LttTime res; - res.tv_sec = t1/(double)NANOSECONDS_PER_SECOND; + //res.tv_sec = t1/(double)NANOSECONDS_PER_SECOND; + res.tv_sec = (guint64)(t1 * SHIFT_CONST) >> 30; res.tv_nsec = (t1 - (res.tv_sec*NANOSECONDS_PER_SECOND)); return res; } -- 2.34.1