]>
git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_nan.cc
1 // { dg-require-c-std "" }
2 // { dg-add-options ieee }
4 // 2007-01-10 Edward Smith-Rowland <3dw4rd@verizon.net>
6 // Copyright (C) 2007-2014 Free Software Foundation, Inc.
8 // This file is part of the GNU ISO C++ Library. This library is free
9 // software; you can redistribute it and/or modify it under the
10 // terms of the GNU General Public License as published by the
11 // Free Software Foundation; either version 3, or (at your option)
14 // This library is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 // GNU General Public License for more details.
19 // You should have received a copy of the GNU General Public License along
20 // with this library; see the file COPYING3. If not see
21 // <http://www.gnu.org/licenses/>.
26 #include <testsuite_hooks.h>
31 float af
= std::numeric_limits
<float>::quiet_NaN();
32 double ad
= std::numeric_limits
<double>::quiet_NaN();
33 long double al
= std::numeric_limits
<long double>::quiet_NaN();
37 long double bl
= 10.0L;
41 long double cl
= 3.0L;
45 long double xl
= 0.5L;
47 float a
= std::tr1::hyperg(af
, bf
, cf
, xf
);
48 float b
= std::tr1::hypergf(af
, bf
, cf
, xf
);
49 double c
= std::tr1::hyperg(ad
, bd
, cd
, xd
);
50 long double d
= std::tr1::hyperg(al
, bl
, cl
, xl
);
51 long double e
= std::tr1::hypergl(al
, bl
, cl
, xl
);
53 VERIFY(std::tr1::isnan
<float>(a
));
54 VERIFY(std::tr1::isnan
<float>(b
));
55 VERIFY(std::tr1::isnan
<double>(c
));
56 VERIFY(std::tr1::isnan
<long double>(d
));
57 VERIFY(std::tr1::isnan
<long double>(e
));
67 long double al
= 2.0L;
69 float bf
= std::numeric_limits
<float>::quiet_NaN();
70 double bd
= std::numeric_limits
<double>::quiet_NaN();
71 long double bl
= std::numeric_limits
<long double>::quiet_NaN();
75 long double cl
= 3.0L;
79 long double xl
= 0.5L;
81 float a
= std::tr1::hyperg(af
, bf
, cf
, xf
);
82 float b
= std::tr1::hypergf(af
, bf
, cf
, xf
);
83 double c
= std::tr1::hyperg(ad
, bd
, cd
, xd
);
84 long double d
= std::tr1::hyperg(al
, bl
, cl
, xl
);
85 long double e
= std::tr1::hypergl(al
, bl
, cl
, xl
);
87 VERIFY(std::tr1::isnan
<float>(a
));
88 VERIFY(std::tr1::isnan
<float>(b
));
89 VERIFY(std::tr1::isnan
<double>(c
));
90 VERIFY(std::tr1::isnan
<long double>(d
));
91 VERIFY(std::tr1::isnan
<long double>(e
));
101 long double al
= 2.0L;
105 long double bl
= 10.0L;
107 float cf
= std::numeric_limits
<float>::quiet_NaN();
108 double cd
= std::numeric_limits
<double>::quiet_NaN();
109 long double cl
= std::numeric_limits
<long double>::quiet_NaN();
113 long double xl
= 0.5L;
115 float a
= std::tr1::hyperg(af
, bf
, cf
, xf
);
116 float b
= std::tr1::hypergf(af
, bf
, cf
, xf
);
117 double c
= std::tr1::hyperg(ad
, bd
, cd
, xd
);
118 long double d
= std::tr1::hyperg(al
, bl
, cl
, xl
);
119 long double e
= std::tr1::hypergl(al
, bl
, cl
, xl
);
121 VERIFY(std::tr1::isnan
<float>(a
));
122 VERIFY(std::tr1::isnan
<float>(b
));
123 VERIFY(std::tr1::isnan
<double>(c
));
124 VERIFY(std::tr1::isnan
<long double>(d
));
125 VERIFY(std::tr1::isnan
<long double>(e
));
135 long double al
= 2.0L;
139 long double bl
= 10.0L;
143 long double cl
= 3.0L;
145 float xf
= std::numeric_limits
<float>::quiet_NaN();
146 double xd
= std::numeric_limits
<double>::quiet_NaN();
147 long double xl
= std::numeric_limits
<long double>::quiet_NaN();
149 float a
= std::tr1::hyperg(af
, bf
, cf
, xf
);
150 float b
= std::tr1::hypergf(af
, bf
, cf
, xf
);
151 double c
= std::tr1::hyperg(ad
, bd
, cd
, xd
);
152 long double d
= std::tr1::hyperg(al
, bl
, cl
, xl
);
153 long double e
= std::tr1::hypergl(al
, bl
, cl
, xl
);
155 VERIFY(std::tr1::isnan
<float>(a
));
156 VERIFY(std::tr1::isnan
<float>(b
));
157 VERIFY(std::tr1::isnan
<double>(c
));
158 VERIFY(std::tr1::isnan
<long double>(d
));
159 VERIFY(std::tr1::isnan
<long double>(e
));