From ad4feb8686ad0cf718e53335ad9dca735d8c3d73 Mon Sep 17 00:00:00 2001 From: Couriersud Date: Sun, 27 Sep 2009 17:14:20 +0000 Subject: exp is slow, but pow is even slower - more LS624 optimization, replace pow(10, x) by pow10(x) - mixer loop optimizations --- src/emu/sound/disc_dev.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/emu/sound/disc_dev.c') diff --git a/src/emu/sound/disc_dev.c b/src/emu/sound/disc_dev.c index 160cbf86628..aad021e0905 100644 --- a/src/emu/sound/disc_dev.c +++ b/src/emu/sound/disc_dev.c @@ -1597,7 +1597,11 @@ static DISCRETE_RESET(dsd_566) #define LS624_F(_C, _VI, _VR) pow(10, -0.912029404 * log10(_C) + 0.243264328 * (_VI) \ - 0.091695877 * (_VR) -0.014110946 * (_VI) * (_VR) - 3.207072925) */ -#define LS624_F(_VI) pow(10, context->k1 + 0.243264328 * (_VI) + context->k2 * (_VI)) + +/* pow(10, x) = exp(ln(10)*x) */ +#define pow10(x) exp(2.30258509299404568401*(x)) + +#define LS624_F(_VI) pow10(context->k1 + 0.243264328 * (_VI) + context->k2 * (_VI)) static DISCRETE_STEP(dsd_ls624) { -- cgit v1.2.3-70-g09d2