From e4ce5402202d983a84d01555445eeb23e5a9268f Mon Sep 17 00:00:00 2001 From: "Diego E. 'Flameeyes' Pettenò" Date: Fri, 21 Nov 2008 02:00:58 +0100 Subject: [RFC] Don't use pow() for calculating a power of 2, use shift instead. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This assumes that the power2 argument is in the 0-32 range, so this need to be carefully checked. Signed-off-by: Diego E. 'Flameeyes' Pettenò --- maemo/Makefile.am | 4 ++-- maemo/dsp-protocol.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/maemo/Makefile.am b/maemo/Makefile.am index 47b4548..2684781 100644 --- a/maemo/Makefile.am +++ b/maemo/Makefile.am @@ -8,10 +8,10 @@ AM_CFLAGS = -Wall -O2 @ALSA_CFLAGS@ $(DBUS_CFLAGS) AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED) libasound_module_pcm_alsa_dsp_la_SOURCES = dsp-protocol.c alsa-dsp.c -libasound_module_pcm_alsa_dsp_la_LIBADD = @ALSA_LIBS@ $(DBUS_LIBS) -lm -lpthread +libasound_module_pcm_alsa_dsp_la_LIBADD = @ALSA_LIBS@ $(DBUS_LIBS) -lpthread libasound_module_ctl_dsp_ctl_la_SOURCES = dsp-protocol.c dsp-ctl.c -libasound_module_ctl_dsp_ctl_la_LIBADD = @ALSA_LIBS@ $(DBUS_LIBS) -lm -lpthread +libasound_module_ctl_dsp_ctl_la_LIBADD = @ALSA_LIBS@ $(DBUS_LIBS) -lpthread noinst_HEADERS = constants.h debug.h dsp-protocol.h list.h reporting.h \ types.h diff --git a/maemo/dsp-protocol.c b/maemo/dsp-protocol.c index df155c6..2fd1128 100644 --- a/maemo/dsp-protocol.c +++ b/maemo/dsp-protocol.c @@ -1083,7 +1083,7 @@ static void dsp_protocol_linear2Q15(const unsigned short int input, static void dsp_protocol_Q152linear(const unsigned short int scale, const unsigned short int power2, unsigned short int *output) { - float result = scale * 1.0 / 0x8000 * pow(2.0, 1.0 * power2) * 100.0; + float result = scale * 1.0 / 0x8000 * (1 << power2) * 100.0; DENTER(); *output = (short int)(result); if ((result - *output) > 0.5) -- cgit