diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-03 17:39:24 -0700 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-03 17:39:24 -0700 |
commit | a6c1ed4716cf02626ea035beb6dd4a921642ba80 (patch) | |
tree | ef582c1b52819e27bdd16097ec03b69799d04ede /newlib/libm/mathfp/sf_asine.c | |
parent | f6c9a624fa8a6878a7fb2b02f55e4990a20feb59 (diff) |
Use libc from agbcc instead of standalone newlib\nYou must have AGBCC commit 80d029caec189587f8b9294b6c8a5a489b8f5f88 in order to compile pmd_red.gbalibc
Diffstat (limited to 'newlib/libm/mathfp/sf_asine.c')
-rw-r--r-- | newlib/libm/mathfp/sf_asine.c | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/newlib/libm/mathfp/sf_asine.c b/newlib/libm/mathfp/sf_asine.c deleted file mode 100644 index 12ba289..0000000 --- a/newlib/libm/mathfp/sf_asine.c +++ /dev/null @@ -1,105 +0,0 @@ - -/* @(#)z_asinef.c 1.0 98/08/13 */ -/****************************************************************** - * The following routines are coded directly from the algorithms - * and coefficients given in "Software Manual for the Elementary - * Functions" by William J. Cody, Jr. and William Waite, Prentice - * Hall, 1980. - ******************************************************************/ -/****************************************************************** - * Arcsine - * - * Input: - * x - floating point value - * acosine - indicates acos calculation - * - * Output: - * Arcsine of x. - * - * Description: - * This routine calculates arcsine / arccosine. - * - *****************************************************************/ - -#include "fdlibm.h" -#include "zmath.h" - -static const float p[] = { 0.933935835, -0.504400557 }; -static const float q[] = { 0.560363004e+1, -0.554846723e+1 }; -static const float a[] = { 0.0, 0.785398163 }; -static const float b[] = { 1.570796326, 0.785398163 }; - -float -_DEFUN (asinef, (float, int), - float x _AND - int acosine) -{ - int flag, i; - int branch = 0; - float g, res, R, P, Q, y; - - /* Check for special values. */ - i = numtestf (x); - if (i == NAN || i == INF) - { - errno = EDOM; - if (i == NAN) - return (x); - else - return (z_infinity_f.f); - } - - y = fabsf (x); - flag = acosine; - - if (y > 0.5) - { - i = 1 - flag; - - /* Check for range error. */ - if (y > 1.0) - { - errno = ERANGE; - return (z_notanum_f.f); - } - - g = (1 - y) / 2.0; - y = -2 * sqrt (g); - branch = 1; - } - else - { - i = flag; - if (y < z_rooteps_f) - res = y; - else - g = y * y; - } - - if (y >= z_rooteps_f || branch == 1) - { - /* Calculate the Taylor series. */ - P = (p[1] * g + p[0]) * g; - Q = (g + q[1]) * g + q[0]; - R = P / Q; - - res = y + y * R; - } - - /* Calculate asine or acose. */ - if (flag == 0) - { - res = (a[i] + res) + a[i]; - if (x < 0.0) - res = -res; - } - else - { - if (x < 0.0) - res = (b[i] + res) + b[i]; - else - res = (a[i] - res) + a[i]; - } - - return (res); -} |