17f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* 27f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 37f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * 47f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 57f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * you may not use this file except in compliance with the License. 67f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * You may obtain a copy of the License at 77f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * 87f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 97f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * 107f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 117f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 127f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * See the License for the specific language governing permissions and 147f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * limitations under the License. 157f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 167f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 177f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#ifndef bbs_MATH_EM_H 187f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#define bbs_MATH_EM_H 197f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 207f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** 217f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * This files contains mathematical functions. 227f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 237f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 247f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- includes ----------------------------------------------------------- */ 257f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 267f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#include "b_BasicEm/Basic.h" 277f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#ifdef HW_TMS320C5x 287f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#include "Dsplib.h" 297f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#endif 307f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 317f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- related objects --------------------------------------------------- */ 327f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 337f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- typedefs ----------------------------------------------------------- */ 347f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 357f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- constants ---------------------------------------------------------- */ 367f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 377f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- macros ------------------------------------------------------------- */ 387f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 397f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** computes the maximum of two variables */ 407f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#define bbs_max( val1A, val2A ) ( ( val1A ) > ( val2A ) ? ( val1A ) : ( val2A ) ) 417f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 427f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** computes the minimum of two variables */ 437f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#define bbs_min( val1A, val2A ) ( ( val1A ) < ( val2A ) ? ( val1A ) : ( val2A ) ) 447f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 457f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** computes the absolute value */ 467f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#define bbs_abs( valA ) ( ( valA ) > 0 ? ( valA ) : -( valA ) ) 477f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 487f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- external functions ------------------------------------------------- */ 497f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 507f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** 517f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Computes square root from 32 bit value. 527f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * The return value 'r' is the largest possible integer that 537f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * satisfies r * r <= valA. 547f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * This behavior is identical with (uint16)sqrt( valA ). 557f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * C6201: 162 cycles 567f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 577f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint16 bbs_sqrt32( uint32 valA ); 587f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 597f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** 607f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Computes square root from 16 bit value. 617f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * The return value 'r' is the largest possible integer that 627f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * satisfies r * r <= valA. 637f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * This behavior is identical with (uint8)sqrt( valA ). 647f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 657f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint8 bbs_sqrt16( uint16 valA ); 667f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 677f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** Sqrt approximation */ 687f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint16 bbs_fastSqrt32( uint32 valA ); 697f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 707f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** sqrt(1/x) approximation 717f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * return format 1.31 727f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 737f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint32 bbs_invSqrt32( uint32 valA ); 747f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 757f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** 1/x approximation 767f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * return format 2.30 777f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 787f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectint32 bbs_inv32( int32 valA ); 797f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 807f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** Returns integer log2 of valA 817f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * C6201: 24 cycles 827f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 837f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint32 bbs_intLog2( uint32 valA ); 847f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 857f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** 867f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Returns (2^x) - 1 for a value range of [0,1[ 877f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Format of valA: 0.32 887f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Format of return value: 0.32 897f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 907f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint32 bbs_pow2M1( uint32 valA ); 917f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 927f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** 937f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Returns (2^x) for a value range of [-16,16[ 947f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Format of valA: 5.27 957f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Format of return value: 16.16 967f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 977f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint32 bbs_pow2( int32 valA ); 987f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 997f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1007f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** 1017f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Returns (e^x) for a value range of [-11.0903,11.0903] 1027f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * If valA is smaller than -11.0903, the function returns 0 1037f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * If valA is larger than 11.0903, the function returns ( 2^32 - 1 ) / ( 2^16 ) 1047f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Format of valA: 5.27 1057f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Format of return value: 16.16 1067f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * C6201: 72 cycles 1077f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 1087f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint32 bbs_exp( int32 valA ); 1097f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1107f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** saturates a signed 32 bit value to signed 16 bit */ 1117f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectint16 bbs_satS16( int32 valA ); 1127f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1137f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** 1147f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Returns the value after rounding to the nearest integer. 1157f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 1167f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* int32 bbs_round( int32 valA, int32 bbpA ); */ 1177f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1187f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** 1197f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Computes the dot product of vec1A with vec2A, both of size sizeA. 1207f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * (no overflow handling, slow for sizeA < 32 ) 1217f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 1227f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectint32 bbs_dotProductInt16( const int16* vec1A, const int16* vec2A, uint32 sizeA ); 1237f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1247f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** Fermi function ( 1.0 / ( 1.0 + exp( -valA ) ) ) 1257f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Format valA: 16.16 1267f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Format return: 2.30 1277f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 1287f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectint32 bbs_fermi( int32 valA ); 1297f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1307f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** reduces uint32 to N bits; if it has already <= N bits, nothing happens */ 1317f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectvoid bbs_uint32ReduceToNBits( uint32* argPtrA, int32* bbpPtrA, uint32 nBitsA ); 1327f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1337f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** reduces int32 to N bits; if it has already <= N bits, nothing happens */ 1347f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectvoid bbs_int32ReduceToNBits( int32* argPtrA, int32* bbpPtrA, uint32 nBitsA ); 1357f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1367f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** converts a number with source bbp to a 32 bit number with dst bbp; 1377f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * applies appropriate shifting, rounding and saturation to minimize overflow-damage 1387f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 1397f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint32 bbs_convertU32( uint32 srcA, int32 srcBbpA, int32 dstBbpA ); 1407f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1417f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** converts a number with source bbp to a 32 bit number with dst bbp; 1427f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * applies appropriate shifting, rounding and saturation to minimize overflow-damage 1437f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 1447f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectint32 bbs_convertS32( int32 srcA, int32 srcBbpA, int32 dstBbpA ); 1457f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1467f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** vector power return val = sum(xA_i^2), input 1.15, output 1.30 */ 1477f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectint32 bbs_vecPowerFlt16( const int16 *xA, int16 nxA ); 1487f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1497f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** returns floating point squared norm of 32 bit vector (maximum accuracy - overflow-safe); 1507f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Function is slow 1517f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * returned square norm = man * 2^exp 1527f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * The returned exponent is always even 1537f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 1547f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectvoid bbs_vecSqrNorm32( const int32* vecA, uint32 sizeA, uint32* manPtrA, uint32* expPtrA ); 1557f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1567f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** returns floating point squared norm of 16 bit vector (maximum accuracy - overflow-safe); 1577f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * returned square norm = man * 2^exp 1587f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * The returned exponent is always even 1597f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 1607f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectvoid bbs_vecSqrNorm16( const int16* vecA, uint32 sizeA, uint32* manPtrA, uint32* expPtrA ); 1617f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1627f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** returns the norm of a 16 bit vector; 1637f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * overflow-safe when sizeA < 65535 1647f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 1657f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint32 bbs_vecNorm16( const int16* vecA, uint32 sizeA ); 1667f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1677f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** multiplies two unsigned 32 bit values and returns product decomposed to mantisse and exponent 1687f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * maximum accuracy - overflow-safe 1697f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * exponent is always >= 0 1707f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 1717f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectvoid bbs_mulU32( uint32 v1A, uint32 v2A, uint32* manPtrA, int32* expPtrA ); 1727f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1737f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** multiplies two signed 32 bit values and returns product decomposed to mantisse and exponent 1747f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * maximum accuracy - overflow-safe 1757f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * exponent is always >= 0 1767f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 1777f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectvoid bbs_mulS32( int32 v1A, int32 v2A, int32* manPtrA, int32* expPtrA ); 1787f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1797f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** matrix multiply rA = x1A * x2A, input/output 1.15, no overflow protection, in-place not allowed */ 1807f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectvoid bbs_matMultiplyFlt16( const int16 *x1A, int16 row1A, int16 col1A, 1817f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project const int16 *x2A, int16 col2A, int16 *rA ); 1827f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1837f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** matrix multiply rA = x1A * transposed( x2A ), input/output 1.15, no overflow protection, in-place not allowed */ 1847f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectvoid bbs_matMultiplyTranspFlt16( const int16 *x1A, int16 row1A, int16 col1A, 1857f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project const int16 *x2A, int16 row2A, int16 *rA ); 1867f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1877f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* 1887f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#ifdef mtrans 1897f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#define bbs_matTrans mtrans 1907f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#else 1917f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint16 bbs_matTrans( int16 *xA, int16 rowA, int16 colA, int16 *rA ); 1927f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#endif 1937f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1947f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#ifdef atan2_16 1957f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#define bbs_vecPhase atan2_16 1967f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#else 1977f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint16 bbs_vecPhase( int16* reA, int16* imA, int16* phaseA, uint16 sizeA ); 1987f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#endif 1997f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project*/ 2007f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2017f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#endif /* bbs_MATH_EM_H */ 2027f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 203