From b787e2afebee5f979083e7e7b552c08e6a6b57f2 Mon Sep 17 00:00:00 2001 From: Josh Coalson Date: Mon, 14 May 2001 21:31:50 +0000 Subject: [PATCH] don't try and outsmart the compiler on constant multplies --- src/libFLAC/fixed.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/libFLAC/fixed.c b/src/libFLAC/fixed.c index 4018735..7506368 100644 --- a/src/libFLAC/fixed.c +++ b/src/libFLAC/fixed.c @@ -154,6 +154,7 @@ void FLAC__fixed_compute_residual(const int32 data[], unsigned data_len, unsigne { unsigned i; +#if 0 switch(order) { case 0: for(i = 0; i < data_len; i++) { @@ -186,6 +187,32 @@ void FLAC__fixed_compute_residual(const int32 data[], unsigned data_len, unsigne default: assert(0); } +#else + switch(order) { + case 0: + for(i = 0; i < data_len; i++) + residual[i] = data[i]; + break; + case 1: + for(i = 0; i < data_len; i++) + residual[i] = data[i] - data[i-1]; + break; + case 2: + for(i = 0; i < data_len; i++) + residual[i] = data[i] - 2*data[i-1] + data[i-2]; + break; + case 3: + for(i = 0; i < data_len; i++) + residual[i] = data[i] - 3*data[i-1] + 3*data[i-2] - data[i-3]; + break; + case 4: + for(i = 0; i < data_len; i++) + residual[i] = data[i] - 4*data[i-1] + 6*data[i-2] - 4*data[i-3] + data[i-4]; + break; + default: + assert(0); + } +#endif } void FLAC__fixed_restore_signal(const int32 residual[], unsigned data_len, unsigned order, int32 data[]) -- 2.7.4