diff options
Diffstat (limited to 'media/libeffects/lvm/lib/Common/src/LVM_Power10.c')
-rwxr-xr-x | media/libeffects/lvm/lib/Common/src/LVM_Power10.c | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/media/libeffects/lvm/lib/Common/src/LVM_Power10.c b/media/libeffects/lvm/lib/Common/src/LVM_Power10.c new file mode 100755 index 0000000..9a3f632 --- /dev/null +++ b/media/libeffects/lvm/lib/Common/src/LVM_Power10.c @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2004-2010 NXP Software + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/************************************************************************/ +/* */ +/* Project:: */ +/* $Author: beq07716 $*/ +/* $Revision: 1000 $*/ +/* $Date: 2010-06-28 13:08:20 +0200 (Mon, 28 Jun 2010) $*/ +/* */ +/************************************************************************/ + +#include "LVM_Types.h" +#include "LVM_Macros.h" +#include "ScalarArithmetic.h" +#include "Filter.h" + + +/*-------------------------------------------------------------------------*/ +/* FUNCTION: */ +/* LVM_Power10 */ +/* */ +/* DESCRIPTION: */ +/* This function calculates 10X using an 11th order polynomial. It uses */ +/* the following table of 32-bit integer polynomial coefficients: */ +/* */ +/* Coefficient Value */ +/* A0 67102543 */ +/* A1 309032995 */ +/* A2 712096127 */ +/* A3 1092797331 */ +/* A4 1251625137 */ +/* A5 1154649460 */ +/* A6 915654800 */ +/* A7 597883683 */ +/* A8 284378230 */ +/* A9 150262097 */ +/* A10 124894471 */ +/* A11 50477244 */ +/* A12 -2 */ +/* */ +/* Y = (A0 + A1*X + A2*X2 + A3*X3 + ….. + AN*xN) << AN+1 */ +/* */ +/* */ +/* PARAMETERS: */ +/* */ +/* X is the input variable in Q2.30 format */ +/* */ +/* RETURNS: */ +/* The result of the 10x expansion in Q8.24 format */ +/*-------------------------------------------------------------------------*/ + +LVM_INT32 LVM_Power10(LVM_INT32 X) +{ + LVM_INT32 Y,Coefficients[13]={ 16775636, + 77258249, + 178024032, + 273199333, + 312906284, + 288662365, + 228913700, + 149470921, + 71094558, + 37565524, + 31223618, + 12619311, + 0}; + Y=LVM_Polynomial((LVM_UINT16)11, + Coefficients, + X); + return Y; +} + |