From 628c025373296bb68569b18a27f936ca6a70bcd3 Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin Date: Fri, 16 Apr 2010 20:57:56 -0400 Subject: [PATCH] Converted a few double-precision constants to single precision --- libcelt/_kiss_fft_guts.h | 4 ++-- libcelt/arch.h | 2 +- libcelt/bands.c | 48 ++++++++++++++++++++-------------------- libcelt/celt.c | 4 ++-- libcelt/mdct.c | 2 +- libcelt/vq.c | 2 +- 6 files changed, 31 insertions(+), 31 deletions(-) diff --git a/libcelt/_kiss_fft_guts.h b/libcelt/_kiss_fft_guts.h index 4b5f4f70..736fa192 100644 --- a/libcelt/_kiss_fft_guts.h +++ b/libcelt/_kiss_fft_guts.h @@ -222,11 +222,11 @@ struct kiss_fft_state{ #elif defined(USE_SIMD) # define KISS_FFT_COS(phase) _mm_set1_ps( cos(phase) ) # define KISS_FFT_SIN(phase) _mm_set1_ps( sin(phase) ) -# define HALF_OF(x) ((x)*_mm_set1_ps(.5)) +# define HALF_OF(x) ((x)*_mm_set1_ps(.5f)) #else # define KISS_FFT_COS(phase) (kiss_fft_scalar) cos(phase) # define KISS_FFT_SIN(phase) (kiss_fft_scalar) sin(phase) -# define HALF_OF(x) ((x)*.5) +# define HALF_OF(x) ((x)*.5f) #endif #define kf_cexp(x,phase) \ diff --git a/libcelt/arch.h b/libcelt/arch.h index 486537f9..48c53d42 100644 --- a/libcelt/arch.h +++ b/libcelt/arch.h @@ -40,7 +40,7 @@ #include "celt_types.h" -#define CELT_SIG_SCALE 32768. +#define CELT_SIG_SCALE 32768.f #define celt_fatal(str) _celt_fatal(str, __FILE__, __LINE__); #ifdef ENABLE_ASSERTIONS diff --git a/libcelt/bands.c b/libcelt/bands.c index ff503ec8..25ce79bf 100644 --- a/libcelt/bands.c +++ b/libcelt/bands.c @@ -167,7 +167,7 @@ void normalise_bands(const CELTMode *m, const celt_sig * restrict freq, celt_nor for (i=0;inbEBands;i++) { int j; - celt_word16 g = 1.f/(1e-10+bank[i+c*m->nbEBands]); + celt_word16 g = 1.f/(1e-10f+bank[i+c*m->nbEBands]); for (j=eBands[i];jQCONST32(2., 13)) + g = ADD16(QCONST16(.5f,14), MULT16_16_16(QCONST16(.05f,14),*gain_id)); + *gain_prod = MAX16(QCONST32(1.f, 13), MULT16_16_Q14(*gain_prod,g)); + if (*gain_prod>QCONST32(2.f, 13)) { *gain_id=9; - *gain_prod = QCONST32(2., 13); + *gain_prod = QCONST32(2.f, 13); } if (*gain_id < 0) @@ -322,7 +322,7 @@ void apply_pitch(const CELTMode *m, celt_sig *X, const celt_sig *P, int gain_id, int len = m->pitchEnd; N = FRAMESIZE(m); - gain = ADD16(QCONST16(.5,14), MULT16_16_16(QCONST16(.05,14),gain_id)); + gain = ADD16(QCONST16(.5f,14), MULT16_16_16(QCONST16(.05f,14),gain_id)); delta = PDIV32_16(gain, len); if (pred) gain = -gain; @@ -427,7 +427,7 @@ int folding_decision(const CELTMode *m, celt_norm *X, celt_word16 *average, int { celt_word16 r; celt_word16 den = celt_sqrt(floor_ener); - den = MAX32(QCONST16(.02, 15), den); + den = MAX32(QCONST16(.02f, 15), den); r = DIV32_16(SHL32(EXTEND32(max_val),8),den); ratio = ADD32(ratio, EXTEND32(r)); NR++; @@ -439,9 +439,9 @@ int folding_decision(const CELTMode *m, celt_norm *X, celt_word16 *average, int ratio = ADD32(HALF32(ratio), HALF32(*average)); if (!*last_decision) { - *last_decision = (ratio < QCONST16(1.8,8)); + *last_decision = (ratio < QCONST16(1.8f,8)); } else { - *last_decision = (ratio < QCONST16(3.,8)); + *last_decision = (ratio < QCONST16(3.f,8)); } *average = EXTRACT16(ratio); return *last_decision; @@ -577,9 +577,9 @@ void quant_bands_stereo(const CELTMode *m, int start, celt_norm *_X, const celt_ mid = renormalise_vector(X, Q15ONE, N, 1); side = renormalise_vector(Y, Q15ONE, N, 1); #ifdef FIXED_POINT - itheta = MULT16_16_Q15(QCONST16(0.63662,15),celt_atan2p(side, mid)); + itheta = MULT16_16_Q15(QCONST16(0.63662f,15),celt_atan2p(side, mid)); #else - itheta = floor(.5+16384*0.63662*atan2(side,mid)); + itheta = floor(.5f+16384*0.63662f*atan2(side,mid)); #endif qalloc = log2_frac((1<pitch_available = 1; st->force_intra = 0; st->delayedIntra = 1; - st->tonal_average = QCONST16(1.,8); + st->tonal_average = QCONST16(1.f,8); st->fold_decision = 1; st->in_mem = celt_alloc(st->overlap*C*sizeof(celt_sig)); @@ -1049,7 +1049,7 @@ int celt_encoder_ctl(CELTEncoder * restrict st, int request, ...) st->delayedIntra = 1; st->fold_decision = 1; - st->tonal_average = QCONST16(1.,8); + st->tonal_average = QCONST16(1.f,8); st->gain_prod = 0; st->vbr_reservoir = 0; st->vbr_drift = 0; diff --git a/libcelt/mdct.c b/libcelt/mdct.c index 51afc765..0cb15efa 100644 --- a/libcelt/mdct.c +++ b/libcelt/mdct.c @@ -83,7 +83,7 @@ void clt_mdct_init(mdct_lookup *l,int N) #endif #else for (i=0;itrig[i] = cos(2*M_PI*(i+1./8.)/N); + l->trig[i] = cos(2*M_PI*(i+.125f)/N); #endif } diff --git a/libcelt/vq.c b/libcelt/vq.c index 0b8fe3c7..673cbd2c 100644 --- a/libcelt/vq.c +++ b/libcelt/vq.c @@ -118,7 +118,7 @@ static void exp_rotation(celt_norm *X, int len, int dir, int stride, int K) /* This should help a little bit with the transients */ if (transient) - c[0] = s[0] = QCONST16(.7071068, 15); + c[0] = s[0] = QCONST16(.7071068f, 15); /* Needs to be < 0 to prevent gaps on the side of the spreading */ if (dir < 0)