Remove "Contributed by" lines
[platform/upstream/glibc.git] / math / w_jn_compat.c
1 /* Copyright (C) 2011-2021 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, see
16    <https://www.gnu.org/licenses/>.  */
17
18 #include <fenv.h>
19 #include <math.h>
20 #include <math_private.h>
21 #include <math-svid-compat.h>
22 #include <libm-alias-double.h>
23
24
25 #if LIBM_SVID_COMPAT
26 /* wrapper jn */
27 double
28 __jn (int n, double x)
29 {
30   if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0)
31       && _LIB_VERSION != _IEEE_ && _LIB_VERSION != _POSIX_)
32     /* jn(n,|x|>X_TLOSS) */
33     return __kernel_standard (n, x, 38);
34
35   return __ieee754_jn (n, x);
36 }
37 libm_alias_double (__jn, jn)
38
39
40 /* wrapper yn */
41 double
42 __yn (int n, double x)
43 {
44   if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0)
45       && _LIB_VERSION != _IEEE_)
46     {
47       if (x < 0.0)
48         {
49           /* d = zero/(x-x) */
50           __feraiseexcept (FE_INVALID);
51           return __kernel_standard (n, x, 13);
52         }
53       else if (x == 0.0)
54         {
55           /* d = -one/(x-x) */
56           __feraiseexcept (FE_DIVBYZERO);
57           return __kernel_standard (n, x, 12);
58         }
59       else if (_LIB_VERSION != _POSIX_)
60         /* yn(n,x>X_TLOSS) */
61         return __kernel_standard (n, x, 39);
62     }
63
64   return __ieee754_yn (n, x);
65 }
66 libm_alias_double (__yn, yn)
67 #endif