1// -*- C++ -*- compatibility header. 
2 
3// Copyright (C) 2002-2019 Free Software Foundation, Inc. 
4// 
5// This file is part of the GNU ISO C++ Library. This library is free 
6// software; you can redistribute it and/or modify it under the 
7// terms of the GNU General Public License as published by the 
8// Free Software Foundation; either version 3, or (at your option) 
9// any later version. 
10 
11// This library is distributed in the hope that it will be useful, 
12// but WITHOUT ANY WARRANTY; without even the implied warranty of 
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
14// GNU General Public License for more details. 
15 
16// Under Section 7 of GPL version 3, you are granted additional 
17// permissions described in the GCC Runtime Library Exception, version 
18// 3.1, as published by the Free Software Foundation. 
19 
20// You should have received a copy of the GNU General Public License and 
21// a copy of the GCC Runtime Library Exception along with this program; 
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 
23// <http://www.gnu.org/licenses/>. 
24 
25/** @file math.h 
26 * This is a Standard C++ Library header. 
27 */ 
28 
29#if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS 
30# include_next <math.h> 
31#else 
32 
33#ifndef _GLIBCXX_MATH_H 
34#define _GLIBCXX_MATH_H 1 
35 
36# include <cmath> 
37 
38using std::abs; 
39using std::acos; 
40using std::asin; 
41using std::atan; 
42using std::atan2; 
43using std::cos; 
44using std::sin; 
45using std::tan; 
46using std::cosh; 
47using std::sinh; 
48using std::tanh; 
49using std::exp; 
50using std::frexp; 
51using std::ldexp; 
52using std::log; 
53using std::log10; 
54using std::modf; 
55using std::pow; 
56using std::sqrt; 
57using std::ceil; 
58using std::fabs; 
59using std::floor; 
60using std::fmod; 
61 
62#if _GLIBCXX_USE_C99_MATH 
63using std::fpclassify; 
64using std::isfinite; 
65using std::isinf; 
66using std::isnan; 
67using std::isnormal; 
68using std::signbit; 
69using std::isgreater; 
70using std::isgreaterequal; 
71using std::isless; 
72using std::islessequal; 
73using std::islessgreater; 
74using std::isunordered; 
75#endif 
76 
77#if __cplusplus >= 201103L && defined(_GLIBCXX_USE_C99_MATH_TR1) 
78using std::acosh; 
79using std::asinh; 
80using std::atanh; 
81using std::cbrt; 
82using std::copysign; 
83using std::erf; 
84using std::erfc; 
85using std::exp2; 
86using std::expm1; 
87using std::fdim; 
88using std::fma; 
89using std::fmax; 
90using std::fmin; 
91using std::hypot; 
92using std::ilogb; 
93using std::lgamma; 
94using std::llrint; 
95using std::llround; 
96using std::log1p; 
97using std::log2; 
98using std::logb; 
99using std::lrint; 
100using std::lround; 
101using std::nearbyint; 
102using std::nextafter; 
103using std::nexttoward; 
104using std::remainder; 
105using std::remquo; 
106using std::rint; 
107using std::round; 
108using std::scalbln; 
109using std::scalbn; 
110using std::tgamma; 
111using std::trunc; 
112#endif // C++11 && _GLIBCXX_USE_C99_MATH_TR1 
113 
114// The mathematical special functions are only added to the global namespace 
115// by IS 29124, but not by C++17. 
116#if __cplusplus >= 201103L && __STDCPP_WANT_MATH_SPEC_FUNCS__ != 0 
117using std::assoc_laguerref; 
118using std::assoc_laguerrel; 
119using std::assoc_laguerre; 
120using std::assoc_legendref; 
121using std::assoc_legendrel; 
122using std::assoc_legendre; 
123using std::betaf; 
124using std::betal; 
125using std::beta; 
126using std::comp_ellint_1f; 
127using std::comp_ellint_1l; 
128using std::comp_ellint_1; 
129using std::comp_ellint_2f; 
130using std::comp_ellint_2l; 
131using std::comp_ellint_2; 
132using std::comp_ellint_3f; 
133using std::comp_ellint_3l; 
134using std::comp_ellint_3; 
135using std::cyl_bessel_if; 
136using std::cyl_bessel_il; 
137using std::cyl_bessel_i; 
138using std::cyl_bessel_jf; 
139using std::cyl_bessel_jl; 
140using std::cyl_bessel_j; 
141using std::cyl_bessel_kf; 
142using std::cyl_bessel_kl; 
143using std::cyl_bessel_k; 
144using std::cyl_neumannf; 
145using std::cyl_neumannl; 
146using std::cyl_neumann; 
147using std::ellint_1f; 
148using std::ellint_1l; 
149using std::ellint_1; 
150using std::ellint_2f; 
151using std::ellint_2l; 
152using std::ellint_2; 
153using std::ellint_3f; 
154using std::ellint_3l; 
155using std::ellint_3; 
156using std::expintf; 
157using std::expintl; 
158using std::expint; 
159using std::hermitef; 
160using std::hermitel; 
161using std::hermite; 
162using std::laguerref; 
163using std::laguerrel; 
164using std::laguerre; 
165using std::legendref; 
166using std::legendrel; 
167using std::legendre; 
168using std::riemann_zetaf; 
169using std::riemann_zetal; 
170using std::riemann_zeta; 
171using std::sph_besself; 
172using std::sph_bessell; 
173using std::sph_bessel; 
174using std::sph_legendref; 
175using std::sph_legendrel; 
176using std::sph_legendre; 
177using std::sph_neumannf; 
178using std::sph_neumannl; 
179using std::sph_neumann; 
180#endif // _GLIBCXX_USE_STD_SPEC_FUNCS 
181 
182#if __cplusplus > 201703L 
183using std::lerp; 
184#endif // C++20 
185 
186#endif // _GLIBCXX_MATH_H 
187#endif // __cplusplus 
188