From Sven-Ola Tuecke <sven-ola@gmx.de>: minor fixed point math bugfix/optimization
authorHannes Gredler <hannes@gredler.at>
Fri, 15 Feb 2008 09:24:54 +0000 (10:24 +0100)
committerHannes Gredler <hannes@gredler.at>
Fri, 15 Feb 2008 09:24:54 +0000 (10:24 +0100)
src/fpm.c
src/fpm.h
src/link_set.c

index 5efe545..140fdf4 100644 (file)
--- a/src/fpm.c
+++ b/src/fpm.c
@@ -166,8 +166,8 @@ float etx
   }
   idx = (idx + 1) % (sizeof(ret) / sizeof(ret[0]));
 #ifdef USE_FPM
-  snprintf(ret[idx], sizeof(ret[0]), "%lld.%lld", (long long)((sfpm)etx >> FPM_BIT),
-           (long long)(100 * (ufpm) ((sfpm)(etx) & FPM_MSK) >> FPM_BIT));
+  snprintf(ret[idx], sizeof(ret[0]), "%ld.%ld", (sfpm)etx >> FPM_BIT,
+           100 * (ufpm)((sfpm)(etx) & FPM_MSK) >> FPM_BIT);
 #else
   snprintf(ret[idx], sizeof(ret[0]), "%.3f", etx);
 #endif
index 6ae82e4..9fdad8d 100644 (file)
--- a/src/fpm.h
+++ b/src/fpm.h
@@ -86,7 +86,7 @@ typedef unsigned long ufpm;
 #define itofpm_def(a) (fpm)((sfpm)((a) << FPM_BIT))
 #define ftofpm_def(a) (fpm)((sfpm)((a) * FPM_NUM))
 #define fpmtoi_def(a) (int)((sfpm)(a) >> FPM_BIT)
-#define fpmtof_def(a) (float)((sfpm)(a) / FPM_NUM)
+#define fpmtof_def(a) ((float)(sfpm)(a) / FPM_NUM)
 
 #define fpmadd_def(a, b) (fpm)((sfpm)(a) + (sfpm)(b))
 #define fpmsub_def(a, b) (fpm)((sfpm)(a) - (sfpm)(b))
index f989090..befb577 100644 (file)
@@ -242,7 +242,7 @@ get_best_link_to_neighbor(const union olsr_ip_addr *remote)
   struct link_entry *walker, *good_link, *backup_link;
   int curr_metric = MAX_IF_METRIC;
 #ifdef USE_FPM
-  fpm curr_lq = ftofpm(-1.0);
+  fpm curr_lq = itofpm(-1);
 #else
   float curr_lq = -1.0;
 #endif