1 // Copyright (C) 2016-2018 Free Software Foundation, Inc. 2 // 3 // This file is part of the GNU ISO C++ Library. This library is free 4 // software; you can redistribute it and/or modify it under the 5 // terms of the GNU General Public License as published by the 6 // Free Software Foundation; either version 3, or (at your option) 7 // any later version. 8 9 // This 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 12 // GNU General Public License for more details. 13 14 // You should have received a copy of the GNU General Public License along 15 // with this library; see the file COPYING3. If not see 16 // <http://www.gnu.org/licenses/>. 17 18 // { dg-do compile { target c++11 } } 19 20 // PR libstdc++/60401 21 22 #include <math.h> 23 24 namespace test 25 { 26 template<typename T> 27 using F = T*; 28 29 F<float(float)>abs = ::abs; 30 31 #ifdef _GLIBCXX_USE_C99_MATH_TR1 32 F<float(float)> acosh = ::acosh; 33 F<float(float)> asinh = ::asinh; 34 F<float(float)> atanh = ::atanh; 35 F<float(float)> cbrt = ::cbrt; 36 F<float(float, float)> copysign = ::copysign; 37 F<float(float)> erf = ::erf; 38 F<float(float)> erfc = ::erfc; 39 F<float(float)> exp2 = ::exp2; 40 F<float(float)> expm1 = ::expm1; 41 F<float(float, float)> fdim = ::fdim; 42 F<float(float, float, float)> fma = ::fma; 43 F<float(float, float)> fmax = ::fmax; 44 F<float(float, float)> fmin = ::fmin; 45 F<float(float, float)> hypot = ::hypot; 46 F<int(float)> ilogb = ::ilogb; 47 F<float(float)> lgamma = ::lgamma; 48 F<long long(float)> llrint = ::llrint; 49 F<long long(float)> llround = ::llround; 50 F<float(float)> log1p = ::log1p; 51 F<float(float)> log2 = ::log2; 52 F<float(float)> logb = ::logb; 53 F<long(float)> lrint = ::lrint; 54 F<long(float)> lround = ::lround; 55 F<float(float)> nearbyint = ::nearbyint; 56 F<float(float, float)> nextafter = ::nextafter; 57 F<float(float, long double)> nexttoward = ::nexttoward; 58 F<float(float, float)> remainder = ::remainder; 59 F<float(float, float, int*)> remquo = ::remquo; 60 F<float(float)> rint = ::rint; 61 F<float(float)> round = ::round; 62 F<float(float, long)> scalbln = ::scalbln; 63 F<float(float, int)> scalbn = ::scalbn; 64 F<float(float)> tgamma = ::tgamma; 65 F<float(float)> trunc = ::trunc; 66 #endif 67 } 68