OSDN Git Service

2008-12-08 Paolo Carlini <paolo.carlini@oracle.com>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / testsuite / tr1 / 8_c_compatibility / cmath / functions.cc
1 // { dg-do compile }
2
3 // 2006-02-07  Paolo Carlini  <pcarlini@suse.de>
4 //
5 // Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
6 //
7 // This file is part of the GNU ISO C++ Library.  This library is free
8 // software; you can redistribute it and/or modify it under the
9 // terms of the GNU General Public License as published by the
10 // Free Software Foundation; either version 2, or (at your option)
11 // any later version.
12 //
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 // GNU General Public License for more details.
17 //
18 // You should have received a copy of the GNU General Public License along
19 // with this library; see the file COPYING.  If not, write to the Free
20 // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
21 // USA.
22
23 // 8.16 Additions to header <cmath>
24
25 #include <tr1/cmath>
26
27 void test01()
28 {
29 #if _GLIBCXX_USE_C99_MATH_TR1
30
31   double d0 = 0.0;
32   float f0 = 0.0f;
33   long double ld0 = 0.0l;
34   const char* str = "NAN";
35   int* pquo = 0;
36   long lex = 0l;
37   int ex = 0;
38
39   double ret;
40   float fret;
41   long double ldret;
42   int iret;
43   long lret;
44   long long llret;
45
46   ret = std::tr1::acosh(d0);
47   fret = std::tr1::acoshf(f0);
48   ldret = std::tr1::acoshl(ld0);
49
50   ret = std::tr1::asinh(d0);
51   fret = std::tr1::asinhf(f0);
52   ldret = std::tr1::asinhl(ld0);
53
54   ret = std::tr1::atanh(d0);
55   fret = std::tr1::atanhf(f0);
56   ldret = std::tr1::atanhl(ld0);
57
58   ret = std::tr1::cbrt(d0);
59   fret = std::tr1::cbrtf(f0);
60   ldret = std::tr1::cbrtl(ld0);
61
62   ret = std::tr1::copysign(d0, d0);
63   fret = std::tr1::copysignf(f0, f0);
64   ldret = std::tr1::copysignl(ld0, ld0);
65
66   ret = std::tr1::erf(d0);
67   fret = std::tr1::erff(f0);
68   ldret = std::tr1::erfl(ld0);
69
70   ret = std::tr1::erfc(d0);
71   fret = std::tr1::erfcf(f0);
72   ldret = std::tr1::erfcl(ld0);
73
74   ret = std::tr1::exp2(d0);
75   fret = std::tr1::exp2f(f0);
76   ldret = std::tr1::exp2l(ld0);
77
78   ret = std::tr1::expm1(d0);
79   fret = std::tr1::expm1f(f0);
80   ldret = std::tr1::expm1l(ld0);
81
82   ret = std::tr1::fdim(d0, d0);
83   fret = std::tr1::fdimf(f0, f0);
84   ldret = std::tr1::fdiml(ld0, ld0);
85
86   ret = std::tr1::fma(d0, d0, d0);
87   fret = std::tr1::fmaf(f0, f0, f0);
88   ldret = std::tr1::fmal(ld0, ld0, ld0);
89
90   ret = std::tr1::fmax(d0, d0);
91   fret = std::tr1::fmaxf(f0, f0);
92   ldret = std::tr1::fmaxl(ld0, ld0);
93
94   ret = std::tr1::fmin(d0, d0);
95   fret = std::tr1::fminf(f0, f0);
96   ldret = std::tr1::fminl(ld0, ld0);
97
98   ret = std::tr1::hypot(d0, d0);
99   fret = std::tr1::hypotf(f0, f0);
100   ldret = std::tr1::hypotl(ld0, ld0);
101
102   iret = std::tr1::ilogb(d0);
103   iret = std::tr1::ilogbf(f0);
104   iret = std::tr1::ilogbl(ld0);
105
106   ret = std::tr1::lgamma(d0);
107   fret = std::tr1::lgammaf(f0);
108   ldret = std::tr1::lgammal(ld0);
109
110   llret = std::tr1::llrint(d0);
111   llret = std::tr1::llrintf(f0);
112   llret = std::tr1::llrintl(ld0);
113
114   llret = std::tr1::llround(d0);
115   llret = std::tr1::llroundf(f0);
116   llret = std::tr1::llroundl(ld0);
117
118   ret = std::tr1::log1p(d0);
119   fret = std::tr1::log1pf(f0);
120   ldret = std::tr1::log1pl(ld0);
121
122   ret = std::tr1::log2(d0);
123   fret = std::tr1::log2f(f0);
124   ldret = std::tr1::log2l(ld0);
125
126   ret = std::tr1::logb(d0);
127   fret = std::tr1::logbf(f0);
128   ldret = std::tr1::logbl(ld0);
129
130   lret = std::tr1::lrint(d0);
131   lret = std::tr1::lrintf(f0);
132   lret = std::tr1::lrintl(ld0);
133
134   lret = std::tr1::lround(d0);
135   lret = std::tr1::lroundf(f0);
136   lret = std::tr1::lroundl(ld0);
137
138   ret = std::tr1::nan(str);
139   fret = std::tr1::nanf(str);
140   ldret = std::tr1::nanl(str);
141
142   ret = std::tr1::nearbyint(d0);
143   fret = std::tr1::nearbyintf(f0);
144   ldret = std::tr1::nearbyintl(ld0);
145
146   ret = std::tr1::nextafter(d0, d0);
147   fret = std::tr1::nextafterf(f0, f0);
148   ldret = std::tr1::nextafterl(ld0, ld0);
149
150   ret = std::tr1::nexttoward(d0, ld0);
151   fret = std::tr1::nexttowardf(f0, ld0);
152   ldret = std::tr1::nexttowardl(ld0, ld0);
153
154   ret = std::tr1::remainder(d0, d0);
155   fret = std::tr1::remainderf(f0, f0);
156   ldret = std::tr1::remainderl(ld0, ld0);
157
158   ret = std::tr1::remquo(d0, d0, pquo);
159   fret = std::tr1::remquof(f0, f0, pquo);
160   ldret = std::tr1::remquol(ld0, ld0, pquo);
161
162   ret = std::tr1::rint(d0);
163   fret = std::tr1::rintf(f0);
164   ldret = std::tr1::rintl(ld0);
165
166   ret = std::tr1::round(d0);
167   fret = std::tr1::roundf(f0);
168   ldret = std::tr1::roundl(ld0);
169
170   ret = std::tr1::scalbln(d0, lex);
171   fret = std::tr1::scalblnf(f0, lex);
172   ldret = std::tr1::scalblnl(ld0, lex);
173
174   ret = std::tr1::scalbn(d0, ex);
175   fret = std::tr1::scalbnf(f0, ex);
176   ldret = std::tr1::scalbnl(ld0, ex);
177
178   ret = std::tr1::tgamma(d0);
179   fret = std::tr1::tgammaf(f0);
180   ldret = std::tr1::tgammal(ld0);
181
182   ret = std::tr1::trunc(d0);
183   fret = std::tr1::truncf(f0);
184   ldret = std::tr1::truncl(ld0);
185   
186 #endif
187 }