Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Mark Harris
Opus
Commits
f81a60ca
Commit
f81a60ca
authored
Aug 03, 2010
by
Jean-Marc Valin
Browse files
DOUBLE_PRECISION and MIXED_PRECISION no longer need to be defined
parent
bc272de7
Changes
5
Hide whitespace changes
Inline
Side-by-side
configure.ac
View file @
f81a60ca
...
...
@@ -105,8 +105,6 @@ AC_ARG_ENABLE(fixed-point, [ --enable-fixed-point compile as fixed-point],
[if test "$enableval" = yes; then
ac_enable_fixed="yes";
AC_DEFINE([FIXED_POINT], , [Compile as fixed-point])
AC_DEFINE([DOUBLE_PRECISION], , [Compile as fixed-point])
AC_DEFINE([MIXED_PRECISION], , [Compile as fixed-point])
else
AC_DEFINE([FLOATING_POINT], , [Compile as floating-point])
fi],
...
...
libcelt/_kiss_fft_guts.h
View file @
f81a60ca
...
...
@@ -53,18 +53,15 @@ struct kiss_fft_state{
#ifdef FIXED_POINT
#include
"arch.h"
#define DOUBLE_PRECISION
#ifdef DOUBLE_PRECISION
# define FRACBITS 31
# define SAMPPROD long long
#define SAMP_MAX 2147483647
#ifdef MIXED_PRECISION
#define TWID_MAX 32767
#define TRIG_UPSCALE 1
#else
#define TRIG_UPSCALE 65536
#define TWID_MAX 2147483647
#endif
#define EXT32(a) (a)
#else
/* DOUBLE_PRECISION */
...
...
@@ -88,7 +85,6 @@ struct kiss_fft_state{
# define smul(a,b) ( (SAMPPROD)(a)*(b) )
# define sround( x ) (kiss_fft_scalar)( ( (x) + ((SAMPPROD)1<<(FRACBITS-1)) ) >> FRACBITS )
#ifdef MIXED_PRECISION
# define S_MUL(a,b) MULT16_32_Q15(b, a)
...
...
@@ -129,34 +125,6 @@ struct kiss_fft_state{
do {(res).r = ADD32((res).r,(a).r); (res).i = SUB32((res).i,(a).i); \
}while(0)
#else
/* MIXED_PRECISION */
# define sround4( x ) (kiss_fft_scalar)( ( (x) + ((SAMPPROD)1<<(FRACBITS-1)) ) >> (FRACBITS+2) )
# define S_MUL(a,b) sround( smul(a,b) )
# define C_MUL(m,a,b) \
do{ (m).r = sround( smul((a).r,(b).r) - smul((a).i,(b).i) ); \
(m).i = sround( smul((a).r,(b).i) + smul((a).i,(b).r) ); }while(0)
# define C_MULC(m,a,b) \
do{ (m).r = sround( smul((a).r,(b).r) + smul((a).i,(b).i) ); \
(m).i = sround( smul((a).i,(b).r) - smul((a).r,(b).i) ); }while(0)
# define C_MUL4(m,a,b) \
do{ (m).r = sround4( smul((a).r,(b).r) - smul((a).i,(b).i) ); \
(m).i = sround4( smul((a).r,(b).i) + smul((a).i,(b).r) ); }while(0)
# define C_MULBYSCALAR( c, s ) \
do{ (c).r = sround( smul( (c).r , s ) ) ;\
(c).i = sround( smul( (c).i , s ) ) ; }while(0)
# define DIVSCALAR(x,k) \
(x) = sround( smul( x, SAMP_MAX/k ) )
# define C_FIXDIV(c,div) \
do { DIVSCALAR( (c).r , div); \
DIVSCALAR( (c).i , div); }while (0)
#endif
/* !MIXED_PRECISION */
...
...
libcelt/kiss_fft.c
View file @
f81a60ca
...
...
@@ -569,7 +569,7 @@ int kf_factor(int n,int * facbuf)
static
void
compute_twiddles
(
kiss_twiddle_cpx
*
twiddles
,
int
nfft
)
{
int
i
;
#if
def
ined(
FIXED_POINT
) && (!defined(DOUBLE_PRECISION) || defined(MIXED_PRECISION))
#ifdef
FIXED_POINT
for
(
i
=
0
;
i
<
nfft
;
++
i
)
{
celt_word32
phase
=
-
i
;
kf_cexp2
(
twiddles
+
i
,
DIV32
(
SHL32
(
phase
,
17
),
nfft
));
...
...
libcelt/kiss_fft.h
View file @
f81a60ca
...
...
@@ -51,6 +51,8 @@ extern "C" {
#ifdef FIXED_POINT
#include
"arch.h"
#define DOUBLE_PRECISION
#ifdef DOUBLE_PRECISION
# define kiss_fft_scalar celt_int32
# define kiss_twiddle_scalar celt_int32
...
...
libcelt/mdct.c
View file @
f81a60ca
...
...
@@ -83,13 +83,8 @@ void clt_mdct_init(mdct_lookup *l,int N, int maxshift)
return
;
/* We have enough points that sine isn't necessary */
#if defined(FIXED_POINT)
#if defined(DOUBLE_PRECISION) & !defined(MIXED_PRECISION)
for
(
i
=
0
;
i
<=
N4
;
i
++
)
l
->
trig
[
i
]
=
SAMP_MAX
*
cos
(
2
*
M_PI
*
i
/
N
);
#else
for
(
i
=
0
;
i
<=
N4
;
i
++
)
l
->
trig
[
i
]
=
TRIG_UPSCALE
*
celt_cos_norm
(
DIV32
(
ADD32
(
SHL32
(
EXTEND32
(
i
),
17
),
N2
),
N
));
#endif
#else
for
(
i
=
0
;
i
<=
N4
;
i
++
)
l
->
trig
[
i
]
=
cos
(
2
*
M_PI
*
i
/
N
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment