1 /* Copyright (C
) 2004-2018 Free Software Foundation
, Inc.
3 This file is part of GCC.
5 GCC is free software
; you can redistribute it and
/or modify it under
6 the terms of the GNU General Public License as published by the Free
7 Software Foundation
; either version
3, or (at your option
) any later
10 GCC is distributed in the hope that it will be useful
, but WITHOUT ANY
11 WARRANTY
; without even the implied warranty of MERCHANTABILITY or
12 FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 You should have received a copy of the GNU General Public License
16 along with GCC
; see the file COPYING3. If not see
17 <http
://www.gnu.org
/licenses
/>.
*/
19 /* DEFINE_MATH_BUILTIN (CODE
, NAME
, ARGTYPE
)
20 NAME The name of the builtin
21 SNAME The name of the builtin as a string
22 ARGTYPE The type of the arguments. See f95
-lang.c
24 Use DEFINE_MATH_BUILTIN_C if the complex versions of the builtin are
26 DEFINE_MATH_BUILTIN_C (ACOS
, "acos", 0)
27 DEFINE_MATH_BUILTIN_C (ACOSH
, "acosh", 0)
28 DEFINE_MATH_BUILTIN_C (ASIN
, "asin", 0)
29 DEFINE_MATH_BUILTIN_C (ASINH
, "asinh", 0)
30 DEFINE_MATH_BUILTIN_C (ATAN
, "atan", 0)
31 DEFINE_MATH_BUILTIN_C (ATANH
, "atanh", 0)
32 DEFINE_MATH_BUILTIN (ATAN2
, "atan2", 1)
33 DEFINE_MATH_BUILTIN_C (COS
, "cos", 0)
34 DEFINE_MATH_BUILTIN_C (COSH
, "cosh", 0)
35 DEFINE_MATH_BUILTIN_C (EXP
, "exp", 0)
36 DEFINE_MATH_BUILTIN_C (LOG
, "log", 0)
37 DEFINE_MATH_BUILTIN_C (LOG10
, "log10", 0)
38 DEFINE_MATH_BUILTIN_C (SIN
, "sin", 0)
39 DEFINE_MATH_BUILTIN_C (SINH
, "sinh", 0)
40 DEFINE_MATH_BUILTIN_C (SQRT
, "sqrt", 0)
41 DEFINE_MATH_BUILTIN_C (TAN
, "tan", 0)
42 DEFINE_MATH_BUILTIN_C (TANH
, "tanh", 0)
43 DEFINE_MATH_BUILTIN (J0
, "j0", 0)
44 DEFINE_MATH_BUILTIN (J1
, "j1", 0)
45 DEFINE_MATH_BUILTIN (JN
, "jn", 5)
46 DEFINE_MATH_BUILTIN (Y0
, "y0", 0)
47 DEFINE_MATH_BUILTIN (Y1
, "y1", 0)
48 DEFINE_MATH_BUILTIN (YN
, "yn", 5)
49 DEFINE_MATH_BUILTIN (ERF
, "erf", 0)
50 DEFINE_MATH_BUILTIN (ERFC
, "erfc", 0)
51 DEFINE_MATH_BUILTIN (TGAMMA
,"tgamma", 0)
52 DEFINE_MATH_BUILTIN (LGAMMA
,"lgamma", 0)
53 DEFINE_MATH_BUILTIN (HYPOT
, "hypot", 1)
55 /* OTHER_BUILTIN (CODE
, NAME
, PROTOTYPE_TYPE
, CONST)
56 For floating
-point builtins that do not directly correspond to a
57 Fortran intrinsic. This is used to map the different
variants (float
,
58 double and long double
) and to build the quad
-precision decls.
*/
59 OTHER_BUILTIN (CABS
, "cabs", cabs
, true
)
60 OTHER_BUILTIN (COPYSIGN
, "copysign", 2, true
)
61 OTHER_BUILTIN (CPOW
, "cpow", cpow
, true
)
62 OTHER_BUILTIN (FABS
, "fabs", 1, true
)
63 OTHER_BUILTIN (FMOD
, "fmod", 2, true
)
64 OTHER_BUILTIN (FREXP
, "frexp", frexp
, false
)
65 OTHER_BUILTIN (LOGB
, "logb", 1, true
)
66 OTHER_BUILTIN (LLROUND
, "llround", llround
, true
)
67 OTHER_BUILTIN (LROUND
, "lround", lround
, true
)
68 OTHER_BUILTIN (IROUND
, "iround", iround
, true
)
69 OTHER_BUILTIN (NEXTAFTER
, "nextafter", 2, true
)
70 OTHER_BUILTIN (POW
, "pow", 2, true
)
71 OTHER_BUILTIN (REMAINDER
, "remainder", 2, true
)
72 OTHER_BUILTIN (RINT
, "rint", 1, true
)
73 OTHER_BUILTIN (ROUND
, "round", 1, true
)
74 OTHER_BUILTIN (SCALBN
, "scalbn", scalbn
, true
)
75 OTHER_BUILTIN (TRUNC, "trunc", 1, true
)