From f212e6cf5fb6327b51abdf1af2b102f87c896a32 Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Fri, 4 Aug 2006 07:02:34 +0000 Subject: Smaller & faster (on our targets) fixed point exp() with a multiplication. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10454 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/lib/gray_core.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/apps/plugins/lib/gray_core.c b/apps/plugins/lib/gray_core.c index 2b4d2c5eb7..5f565218ff 100644 --- a/apps/plugins/lib/gray_core.c +++ b/apps/plugins/lib/gray_core.c @@ -226,15 +226,7 @@ static int exp_s16p16(int x) t = x - 0x007e1; if (t >= 0) x = t, y += y >> 5; t = x - 0x003f8; if (t >= 0) x = t, y += y >> 6; t = x - 0x001fe; if (t >= 0) x = t, y += y >> 7; - if (x & 0x100) y += y >> 8; - if (x & 0x080) y += y >> 9; - if (x & 0x040) y += y >> 10; - if (x & 0x020) y += y >> 11; - if (x & 0x010) y += y >> 12; - if (x & 0x008) y += y >> 13; - if (x & 0x004) y += y >> 14; - if (x & 0x002) y += y >> 15; - if (x & 0x001) y += y >> 16; + y += ((y >> 8) * x) >> 8; return y; } -- cgit v1.2.3