diff options
Diffstat (limited to 'newlib/libm/machine/spu/headers/atanf.h')
-rw-r--r-- | newlib/libm/machine/spu/headers/atanf.h | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/newlib/libm/machine/spu/headers/atanf.h b/newlib/libm/machine/spu/headers/atanf.h deleted file mode 100644 index ec01c1ec8..000000000 --- a/newlib/libm/machine/spu/headers/atanf.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - (C) Copyright 2001,2006, - International Business Machines Corporation, - Sony Computer Entertainment, Incorporated, - Toshiba Corporation, - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the names of the copyright holders nor the names of their - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ -#ifndef _ATANF_H_ -#define _ATANF_H_ 1 - -#ifndef M_PI_2 -#define M_PI_2 1.5707963267949f -#endif /* M_PI_2 */ - -/* - * FUNCTION - * float _atanf(float x) - * - * DESCRIPTION - * _atanf computes the arc tangent of the value x; that is the value - * whose tangent is x. - * - * _atanf returns the arc tangent in radians and the value is - * mathematically defined to be in the range -PI/2 to PI/2. - * - * The arc tangent function is computed using a polynomial approximation - * (B. Carlson, M. Goldstein, Los Alamos Scientific Laboratiry, 1955). - * __8__ - * \ - * \ - * atanf(x) = / Ci*x^(2*i+1) - * /____ - * i=0 - * - * for x in the range -1 to 1. The remaining regions are defined to be: - * - * [1, infinity] : PI/2 + atanf(-1/x) - * [-infinity, -1] : -PI/2 + atanf(-1/x) - */ - -static __inline float _atanf(float x) -{ - float xabs; - float bias; - float x2, x3, x4, x8, x9; - float hi, lo; - float result; - - bias = 0.0f; - xabs = (x < 0.0f) ? -x : x; - - if (xabs >= 1.0f) { - bias = M_PI_2; - if (x < 0.0f) { - bias = -bias; - } - x = -1.0f / x; - } - /* Instruction counts can be reduced if the polynomial was - * computed entirely from nested (dependent) fma's. However, - * to reduce the number of pipeline stalls, the polygon is evaluated - * in two halves(hi and lo). - */ - bias += x; - - x2 = x * x; - x3 = x2 * x; - x4 = x2 * x2; - x8 = x4 * x4; - x9 = x8 * x; - hi = 0.0028662257f * x2 - 0.0161657367f; - hi = hi * x2 + 0.0429096138f; - hi = hi * x2 - 0.0752896400f; - hi = hi * x2 + 0.1065626393f; - lo = -0.1420889944f * x2 + 0.1999355085f; - lo = lo * x2 - 0.3333314528f; - lo = lo * x3 + bias; - - result = hi * x9 + lo; - - return (result); -} - -#endif /* _ATANF_H_ */ - - - |