diff options
Diffstat (limited to 'libFDK/src')
-rw-r--r-- | libFDK/src/fixpoint_math.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libFDK/src/fixpoint_math.cpp b/libFDK/src/fixpoint_math.cpp index 000820c..7d5fbb5 100644 --- a/libFDK/src/fixpoint_math.cpp +++ b/libFDK/src/fixpoint_math.cpp @@ -443,6 +443,15 @@ FIXP_DBL sqrtFixp(FIXP_DBL op) *****************************************************************************/ +#if defined(__x86__) +FIXP_DBL schur_div(FIXP_DBL num, FIXP_DBL denum, INT count) +{ + INT64 tmp=(INT64)num<<31; + LONG div=(tmp/denum)>>(DFRACT_BITS-count); + return (FIXP_DBL)(div) << (DFRACT_BITS-count); +} + +#else FIXP_DBL schur_div(FIXP_DBL num, FIXP_DBL denum, INT count) { @@ -469,6 +478,7 @@ FIXP_DBL schur_div(FIXP_DBL num, FIXP_DBL denum, INT count) return (FIXP_DBL)(div << (DFRACT_BITS - count)); } +#endif #endif /* !defined(FUNCTION_schur_div) */ |