1
// (C) Copyright John Maddock 2008.
2
// Use, modification and distribution are subject to the
3
// Boost Software License, Version 1.0. (See accompanying file
4
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
// These are the headers included by the Boost.TR1 implementation,
7
// by including these directly we probe for problems with cyclic
8
// dependencies when the TR1 headers are in the include search path.
10
#ifdef TEST_STD_HEADERS
13
#include <boost/tr1/cmath.hpp>
16
#include "verify_return.hpp"
18
int main(int argc, const char* [])
29
const char* nan_str = "";
30
#ifdef BOOST_HAS_LONG_LONG
33
verify_return_type((std::tr1::acosh)(d), d);
34
verify_return_type((std::tr1::acosh)(f), f);
35
verify_return_type((std::tr1::acosh)(ld), ld);
36
verify_return_type((std::tr1::acoshf)(f), f);
37
verify_return_type((std::tr1::acoshl)(ld), ld);
38
verify_return_type((std::tr1::asinh)(d), d);
39
verify_return_type((std::tr1::asinh)(f), f);
40
verify_return_type((std::tr1::asinh)(ld), ld);
41
verify_return_type((std::tr1::asinhf)(f), f);
42
verify_return_type((std::tr1::asinhl)(ld), ld);
43
verify_return_type((std::tr1::atanh)(d), d);
44
verify_return_type((std::tr1::atanh)(f), f);
45
verify_return_type((std::tr1::atanh)(ld), ld);
46
verify_return_type((std::tr1::atanhf)(f), f);
47
verify_return_type((std::tr1::atanhl)(ld), ld);
48
verify_return_type((std::tr1::cbrt)(d), d);
49
verify_return_type((std::tr1::cbrt)(f), f);
50
verify_return_type((std::tr1::cbrt)(ld), ld);
51
verify_return_type((std::tr1::cbrtf)(f), f);
52
verify_return_type((std::tr1::cbrtl)(ld), ld);
53
verify_return_type((std::tr1::copysign)(d, d), d);
54
verify_return_type((std::tr1::copysign)(f, f), f);
55
verify_return_type((std::tr1::copysign)(ld, ld), ld);
56
verify_return_type((std::tr1::copysignf)(f, f), f);
57
verify_return_type((std::tr1::copysignl)(ld, ld), ld);
58
verify_return_type((std::tr1::erf)(d), d);
59
verify_return_type((std::tr1::erf)(f), f);
60
verify_return_type((std::tr1::erf)(ld), ld);
61
verify_return_type((std::tr1::erff)(f), f);
62
verify_return_type((std::tr1::erfl)(ld), ld);
63
verify_return_type((std::tr1::erfc)(d), d);
64
verify_return_type((std::tr1::erfc)(f), f);
65
verify_return_type((std::tr1::erfc)(ld), ld);
66
verify_return_type((std::tr1::erfcf)(f), f);
67
verify_return_type((std::tr1::erfcl)(ld), ld);
68
verify_return_type((std::tr1::exp2)(d), d);
69
verify_return_type((std::tr1::exp2)(f), f);
70
verify_return_type((std::tr1::exp2)(ld), ld);
71
verify_return_type((std::tr1::exp2f)(f), f);
72
verify_return_type((std::tr1::exp2l)(ld), ld);
73
verify_return_type((std::tr1::expm1)(d), d);
74
verify_return_type((std::tr1::expm1)(f), f);
75
verify_return_type((std::tr1::expm1)(ld), ld);
76
verify_return_type((std::tr1::expm1f)(f), f);
77
verify_return_type((std::tr1::expm1l)(ld), ld);
78
verify_return_type((std::tr1::fdim)(d, d), d);
79
verify_return_type((std::tr1::fdim)(f, f), f);
80
verify_return_type((std::tr1::fdim)(ld, ld), ld);
81
verify_return_type((std::tr1::fdimf)(f, f), f);
82
verify_return_type((std::tr1::fdiml)(ld, ld), ld);
83
verify_return_type((std::tr1::fma)(d, d, d), d);
84
verify_return_type((std::tr1::fma)(f, f, f), f);
85
verify_return_type((std::tr1::fma)(ld, ld, ld), ld);
86
verify_return_type((std::tr1::fmaf)(f, f, f), f);
87
verify_return_type((std::tr1::fmal)(ld, ld, ld), ld);
88
verify_return_type((std::tr1::fmax)(d, d), d);
89
verify_return_type((std::tr1::fmax)(f, f), f);
90
verify_return_type((std::tr1::fmax)(ld, ld), ld);
91
verify_return_type((std::tr1::fmaxf)(f, f), f);
92
verify_return_type((std::tr1::fmaxl)(ld, ld), ld);
93
verify_return_type((std::tr1::fmin)(d, d), d);
94
verify_return_type((std::tr1::fmin)(f, f), f);
95
verify_return_type((std::tr1::fmin)(ld, ld), ld);
96
verify_return_type((std::tr1::fminf)(f, f), f);
97
verify_return_type((std::tr1::fminl)(ld, ld), ld);
98
verify_return_type((std::tr1::hypot)(d, d), d);
99
verify_return_type((std::tr1::hypot)(f, f), f);
100
verify_return_type((std::tr1::hypot)(ld, ld), ld);
101
verify_return_type((std::tr1::hypotf)(f, f), f);
102
verify_return_type((std::tr1::hypotl)(ld, ld), ld);
103
verify_return_type((std::tr1::ilogb)(d), d);
104
verify_return_type((std::tr1::ilogb)(f), f);
105
verify_return_type((std::tr1::ilogb)(ld), ld);
106
verify_return_type((std::tr1::ilogbf)(f), f);
107
verify_return_type((std::tr1::ilogbl)(ld), ld);
108
verify_return_type((std::tr1::lgamma)(d), d);
109
verify_return_type((std::tr1::lgamma)(f), f);
110
verify_return_type((std::tr1::lgamma)(ld), ld);
111
verify_return_type((std::tr1::lgammaf)(f), f);
112
verify_return_type((std::tr1::lgammal)(ld), ld);
113
verify_return_type((std::tr1::llrint)(d), d);
114
verify_return_type((std::tr1::llrint)(f), f);
115
verify_return_type((std::tr1::llrint)(ld), ld);
116
verify_return_type((std::tr1::llrintf)(f), f);
117
verify_return_type((std::tr1::llrintl)(ld), ld);
118
#ifdef BOOST_HAS_LONG_LONG
119
verify_return_type((std::tr1::llround)(d), lli);
120
verify_return_type((std::tr1::llround)(f), lli);
121
verify_return_type((std::tr1::llround)(ld), lli);
122
verify_return_type((std::tr1::llroundf)(f), lli);
123
verify_return_type((std::tr1::llroundl)(ld), lli);
125
verify_return_type((std::tr1::log1p)(d), d);
126
verify_return_type((std::tr1::log1p)(f), f);
127
verify_return_type((std::tr1::log1p)(ld), ld);
128
verify_return_type((std::tr1::log1pf)(f), f);
129
verify_return_type((std::tr1::log1pl)(ld), ld);
130
verify_return_type((std::tr1::log2)(d), d);
131
verify_return_type((std::tr1::log2)(f), f);
132
verify_return_type((std::tr1::log2)(ld), ld);
133
verify_return_type((std::tr1::log2f)(f), f);
134
verify_return_type((std::tr1::log2l)(ld), ld);
135
verify_return_type((std::tr1::logb)(d), d);
136
verify_return_type((std::tr1::logb)(f), f);
137
verify_return_type((std::tr1::logb)(ld), ld);
138
verify_return_type((std::tr1::logbf)(f), f);
139
verify_return_type((std::tr1::logbl)(ld), ld);
140
verify_return_type((std::tr1::lrint)(d), d);
141
verify_return_type((std::tr1::lrint)(f), f);
142
verify_return_type((std::tr1::lrint)(ld), ld);
143
verify_return_type((std::tr1::lrintf)(f), f);
144
verify_return_type((std::tr1::lrintl)(ld), ld);
145
verify_return_type((std::tr1::lround)(d), li);
146
verify_return_type((std::tr1::lround)(f), li);
147
verify_return_type((std::tr1::lround)(ld), li);
148
verify_return_type((std::tr1::lroundf)(f), li);
149
verify_return_type((std::tr1::lroundl)(ld), li);
150
verify_return_type((std::tr1::nan)(nan_str), d);
151
verify_return_type((std::tr1::nanf)(nan_str), f);
152
verify_return_type((std::tr1::nanl)(nan_str), ld);
153
verify_return_type((std::tr1::nearbyint)(d), d);
154
verify_return_type((std::tr1::nearbyint)(f), f);
155
verify_return_type((std::tr1::nearbyint)(ld), ld);
156
verify_return_type((std::tr1::nearbyintf)(f), f);
157
verify_return_type((std::tr1::nearbyintl)(ld), ld);
158
verify_return_type((std::tr1::nextafter)(d, d), d);
159
verify_return_type((std::tr1::nextafter)(f, f), f);
160
verify_return_type((std::tr1::nextafter)(ld, ld), ld);
161
verify_return_type((std::tr1::nextafterf)(f, f), f);
162
verify_return_type((std::tr1::nextafterl)(ld, ld), ld);
163
verify_return_type((std::tr1::nexttoward)(d, ld), d);
164
verify_return_type((std::tr1::nexttoward)(f, ld), f);
165
verify_return_type((std::tr1::nexttoward)(ld, ld), ld);
166
verify_return_type((std::tr1::nexttowardf)(f, ld), f);
167
verify_return_type((std::tr1::nexttowardl)(ld, ld), ld);
168
verify_return_type((std::tr1::remainder)(d, d), d);
169
verify_return_type((std::tr1::remainder)(f, f), f);
170
verify_return_type((std::tr1::remainder)(ld, ld), ld);
171
verify_return_type((std::tr1::remainderf)(f, f), f);
172
verify_return_type((std::tr1::remainderl)(ld, ld), ld);
173
verify_return_type((std::tr1::remquo)(d, d, &i), d);
174
verify_return_type((std::tr1::remquo)(f, f, &i), f);
175
verify_return_type((std::tr1::remquo)(ld, ld, &i), ld);
176
verify_return_type((std::tr1::remquof)(f, f, &i), f);
177
verify_return_type((std::tr1::remquol)(ld, ld, &i), ld);
178
verify_return_type((std::tr1::rint)(d), d);
179
verify_return_type((std::tr1::rint)(f), f);
180
verify_return_type((std::tr1::rint)(ld), ld);
181
verify_return_type((std::tr1::rintf)(f), f);
182
verify_return_type((std::tr1::rintl)(ld), ld);
183
verify_return_type((std::tr1::round)(d), d);
184
verify_return_type((std::tr1::round)(f), f);
185
verify_return_type((std::tr1::round)(ld), ld);
186
verify_return_type((std::tr1::roundf)(f), f);
187
verify_return_type((std::tr1::roundl)(ld), ld);
188
verify_return_type((std::tr1::scalbln)(d, li), d);
189
verify_return_type((std::tr1::scalbln)(f, li), f);
190
verify_return_type((std::tr1::scalbln)(ld, li), ld);
191
verify_return_type((std::tr1::scalblnf)(f, li), f);
192
verify_return_type((std::tr1::scalblnl)(ld, li), ld);
193
verify_return_type((std::tr1::scalbn)(d, i), d);
194
verify_return_type((std::tr1::scalbn)(f, i), f);
195
verify_return_type((std::tr1::scalbn)(ld, i), ld);
196
verify_return_type((std::tr1::scalbnf)(f, i), f);
197
verify_return_type((std::tr1::scalbnl)(ld, i), ld);
198
verify_return_type((std::tr1::tgamma)(d), d);
199
verify_return_type((std::tr1::tgamma)(f), f);
200
verify_return_type((std::tr1::tgamma)(ld), ld);
201
verify_return_type((std::tr1::tgammaf)(f), f);
202
verify_return_type((std::tr1::tgammal)(ld), ld);
203
verify_return_type((std::tr1::trunc)(d), d);
204
verify_return_type((std::tr1::trunc)(f), f);
205
verify_return_type((std::tr1::trunc)(ld), ld);
206
verify_return_type((std::tr1::truncf)(f), f);
207
verify_return_type((std::tr1::truncl)(ld), ld);
208
verify_return_type((std::tr1::signbit)(d), b);
209
verify_return_type((std::tr1::signbit)(f), b);
210
verify_return_type((std::tr1::signbit)(ld), b);
211
verify_return_type((std::tr1::fpclassify)(d), i);
212
verify_return_type((std::tr1::fpclassify)(f), i);
213
verify_return_type((std::tr1::fpclassify)(ld), i);
214
verify_return_type((std::tr1::isfinite)(d), b);
215
verify_return_type((std::tr1::isfinite)(f), b);
216
verify_return_type((std::tr1::isfinite)(ld), b);
217
verify_return_type((std::tr1::isinf)(d), b);
218
verify_return_type((std::tr1::isinf)(f), b);
219
verify_return_type((std::tr1::isinf)(ld), b);
220
verify_return_type((std::tr1::isnan)(d), b);
221
verify_return_type((std::tr1::isnan)(f), b);
222
verify_return_type((std::tr1::isnan)(ld), b);
223
verify_return_type((std::tr1::isnormal)(d), b);
224
verify_return_type((std::tr1::isnormal)(f), b);
225
verify_return_type((std::tr1::isnormal)(ld), b);
226
verify_return_type((std::tr1::isgreater)(d, d), b);
227
verify_return_type((std::tr1::isgreater)(f, f), b);
228
verify_return_type((std::tr1::isgreater)(ld, ld), b);
229
verify_return_type((std::tr1::isgreaterequal)(d, d), b);
230
verify_return_type((std::tr1::isgreaterequal)(f, f), b);
231
verify_return_type((std::tr1::isgreaterequal)(ld, ld), b);
232
verify_return_type((std::tr1::isless)(d, d), b);
233
verify_return_type((std::tr1::isless)(f, f), b);
234
verify_return_type((std::tr1::isless)(ld, ld), b);
235
verify_return_type((std::tr1::islessequal)(d, d), b);
236
verify_return_type((std::tr1::islessequal)(f, f), b);
237
verify_return_type((std::tr1::islessequal)(ld, ld), b);
238
verify_return_type((std::tr1::islessgreater)(d, d), b);
239
verify_return_type((std::tr1::islessgreater)(f, f), b);
240
verify_return_type((std::tr1::islessgreater)(ld, ld), b);
241
verify_return_type((std::tr1::isunordered)(d, d), b);
242
verify_return_type((std::tr1::isunordered)(f, f), b);
243
verify_return_type((std::tr1::isunordered)(ld, ld), b);
245
// [5.2.1.1] associated Laguerre polynomials:
246
verify_return_type((std::tr1::assoc_laguerre)(ui, ui, d), d);
247
verify_return_type((std::tr1::assoc_laguerre)(ui, ui, f), f);
248
verify_return_type((std::tr1::assoc_laguerre)(ui, ui, ld), ld);
249
verify_return_type((std::tr1::assoc_laguerref)(ui, ui, f), f);
250
verify_return_type((std::tr1::assoc_laguerrel)(ui, ui, ld), ld);
251
// [5.2.1.2] associated Legendre functions:
252
verify_return_type((std::tr1::assoc_legendre)(ui, ui, d), d);
253
verify_return_type((std::tr1::assoc_legendre)(ui, ui, f), f);
254
verify_return_type((std::tr1::assoc_legendre)(ui, ui, ld), ld);
255
verify_return_type((std::tr1::assoc_legendref)(ui, ui, f), f);
256
verify_return_type((std::tr1::assoc_legendrel)(ui, ui, ld), ld);
257
// [5.2.1.3] beta function:
258
verify_return_type((std::tr1::beta)(d, d), d);
259
verify_return_type((std::tr1::beta)(f, f), f);
260
verify_return_type((std::tr1::beta)(ld, ld), ld);
261
verify_return_type((std::tr1::betaf)(f, f), f);
262
verify_return_type((std::tr1::betal)(ld, ld), ld);
263
// [5.2.1.4] (complete) elliptic integral of the first kind:
264
verify_return_type((std::tr1::comp_ellint_1)(d), d);
265
verify_return_type((std::tr1::comp_ellint_1)(f), f);
266
verify_return_type((std::tr1::comp_ellint_1)(ld), ld);
267
verify_return_type((std::tr1::comp_ellint_1f)(f), f);
268
verify_return_type((std::tr1::comp_ellint_1l)(ld), ld);
269
// [5.2.1.5] (complete) elliptic integral of the second kind:
270
verify_return_type((std::tr1::comp_ellint_2)(d), d);
271
verify_return_type((std::tr1::comp_ellint_2)(f), f);
272
verify_return_type((std::tr1::comp_ellint_2)(ld), ld);
273
verify_return_type((std::tr1::comp_ellint_2f)(f), f);
274
verify_return_type((std::tr1::comp_ellint_2l)(ld), ld);
275
// [5.2.1.6] (complete) elliptic integral of the third kind:
276
verify_return_type((std::tr1::comp_ellint_3)(d, d), d);
277
verify_return_type((std::tr1::comp_ellint_3)(f, f), f);
278
verify_return_type((std::tr1::comp_ellint_3)(ld, ld), ld);
279
verify_return_type((std::tr1::comp_ellint_3f)(f, f), f);
280
verify_return_type((std::tr1::comp_ellint_3l)(ld, ld), ld);
281
// [5.2.1.7] confluent hypergeometric functions:
282
verify_return_type((std::tr1::conf_hyperg)(d, d, d), d);
283
verify_return_type((std::tr1::conf_hyperg)(f, f, f), f);
284
verify_return_type((std::tr1::conf_hyperg)(ld, ld, ld), ld);
285
verify_return_type((std::tr1::conf_hypergf)(f, f, f), f);
286
verify_return_type((std::tr1::conf_hypergl)(ld, ld, ld), ld);
287
// [5.2.1.8] regular modified cylindrical Bessel functions:
288
verify_return_type((std::tr1::cyl_bessel_i)(d, d), d);
289
verify_return_type((std::tr1::cyl_bessel_i)(f, f), f);
290
verify_return_type((std::tr1::cyl_bessel_i)(ld, ld), ld);
291
verify_return_type((std::tr1::cyl_bessel_if)(f, f), f);
292
verify_return_type((std::tr1::cyl_bessel_il)(ld, ld), ld);
293
// [5.2.1.9] cylindrical Bessel functions (of the first kind):
294
verify_return_type((std::tr1::cyl_bessel_j)(d, d), d);
295
verify_return_type((std::tr1::cyl_bessel_j)(f, f), f);
296
verify_return_type((std::tr1::cyl_bessel_j)(ld, ld), ld);
297
verify_return_type((std::tr1::cyl_bessel_jf)(f, f), f);
298
verify_return_type((std::tr1::cyl_bessel_jl)(ld, ld), ld);
299
// [5.2.1.10] irregular modified cylindrical Bessel functions:
300
verify_return_type((std::tr1::cyl_bessel_k)(d, d), d);
301
verify_return_type((std::tr1::cyl_bessel_k)(f, f), f);
302
verify_return_type((std::tr1::cyl_bessel_k)(ld, ld), ld);
303
verify_return_type((std::tr1::cyl_bessel_kf)(f, f), f);
304
verify_return_type((std::tr1::cyl_bessel_kl)(ld, ld), ld);
305
// [5.2.1.11] cylindrical Neumann functions;
306
// cylindrical Bessel functions (of the second kind):
307
verify_return_type((std::tr1::cyl_neumann)(d, d), d);
308
verify_return_type((std::tr1::cyl_neumann)(f, f), f);
309
verify_return_type((std::tr1::cyl_neumann)(ld, ld), ld);
310
verify_return_type((std::tr1::cyl_neumannf)(f, f), f);
311
verify_return_type((std::tr1::cyl_neumannl)(ld, ld), ld);
312
// [5.2.1.12] (incomplete) elliptic integral of the first kind:
313
verify_return_type((std::tr1::ellint_1)(d, d), d);
314
verify_return_type((std::tr1::ellint_1)(f, f), f);
315
verify_return_type((std::tr1::ellint_1)(ld, ld), ld);
316
verify_return_type((std::tr1::ellint_1f)(f, f), f);
317
verify_return_type((std::tr1::ellint_1l)(ld, ld), ld);
318
// [5.2.1.13] (incomplete) elliptic integral of the second kind:
319
verify_return_type((std::tr1::ellint_2)(d, d), d);
320
verify_return_type((std::tr1::ellint_2)(f, f), f);
321
verify_return_type((std::tr1::ellint_2)(ld, ld), ld);
322
verify_return_type((std::tr1::ellint_2f)(f, f), f);
323
verify_return_type((std::tr1::ellint_2l)(ld, ld), ld);
324
// [5.2.1.14] (incomplete) elliptic integral of the third kind:
325
verify_return_type((std::tr1::ellint_3)(d, d, d), d);
326
verify_return_type((std::tr1::ellint_3)(f, f, f), f);
327
verify_return_type((std::tr1::ellint_3)(ld, ld, ld), ld);
328
verify_return_type((std::tr1::ellint_3f)(f, f, f), f);
329
verify_return_type((std::tr1::ellint_3l)(ld, ld, ld), ld);
330
// [5.2.1.15] exponential integral:
331
verify_return_type((std::tr1::expint)(d), d);
332
verify_return_type((std::tr1::expint)(f), f);
333
verify_return_type((std::tr1::expint)(ld), ld);
334
verify_return_type((std::tr1::expintf)(f), f);
335
verify_return_type((std::tr1::expintl)(ld), ld);
336
// [5.2.1.16] Hermite polynomials:
337
verify_return_type((std::tr1::hermite)(ui, d), d);
338
verify_return_type((std::tr1::hermite)(ui, f), f);
339
verify_return_type((std::tr1::hermite)(ui, ld), ld);
340
verify_return_type((std::tr1::hermitef)(ui, f), f);
341
verify_return_type((std::tr1::hermitel)(ui, ld), ld);
342
// [5.2.1.17] hypergeometric functions:
343
verify_return_type((std::tr1::hyperg)(d, d, d, d), d);
344
verify_return_type((std::tr1::hyperg)(f, f, f, f), f);
345
verify_return_type((std::tr1::hyperg)(ld, ld, ld, ld), ld);
346
verify_return_type((std::tr1::hypergf)(f, f, f, f), f);
347
verify_return_type((std::tr1::hypergl)(ld, ld, ld, ld), ld);
348
// [5.2.1.18] Laguerre polynomials:
349
verify_return_type((std::tr1::laguerre)(ui, d), d);
350
verify_return_type((std::tr1::laguerre)(ui, f), f);
351
verify_return_type((std::tr1::laguerre)(ui, ld), ld);
352
verify_return_type((std::tr1::laguerref)(ui, f), f);
353
verify_return_type((std::tr1::laguerrel)(ui, ld), ld);
354
// [5.2.1.19] Legendre polynomials:
355
verify_return_type((std::tr1::legendre)(ui, d), d);
356
verify_return_type((std::tr1::legendre)(ui, f), f);
357
verify_return_type((std::tr1::legendre)(ui, ld), ld);
358
verify_return_type((std::tr1::legendref)(ui, f), f);
359
verify_return_type((std::tr1::legendrel)(ui, ld), ld);
360
// [5.2.1.20] Riemann zeta function:
361
verify_return_type((std::tr1::riemann_zeta)(d), d);
362
verify_return_type((std::tr1::riemann_zeta)(f), f);
363
verify_return_type((std::tr1::riemann_zeta)(ld), ld);
364
verify_return_type((std::tr1::riemann_zetaf)(f), f);
365
verify_return_type((std::tr1::riemann_zetal)(ld), ld);
366
// [5.2.1.21] spherical Bessel functions (of the first kind):
367
verify_return_type((std::tr1::sph_bessel)(ui, d), d);
368
verify_return_type((std::tr1::sph_bessel)(ui, f), f);
369
verify_return_type((std::tr1::sph_bessel)(ui, ld), ld);
370
verify_return_type((std::tr1::sph_besself)(ui, f), f);
371
verify_return_type((std::tr1::sph_bessell)(ui, ld), ld);
372
// [5.2.1.22] spherical associated Legendre functions:
373
verify_return_type((std::tr1::sph_legendre)(ui, ui, d), d);
374
verify_return_type((std::tr1::sph_legendre)(ui, ui, f), f);
375
verify_return_type((std::tr1::sph_legendre)(ui, ui, ld), ld);
376
verify_return_type((std::tr1::sph_legendref)(ui, ui, f), f);
377
verify_return_type((std::tr1::sph_legendrel)(ui, ui, ld), ld);
378
// [5.2.1.23] spherical Neumann functions;
379
// spherical Bessel functions (of the second kind):
380
verify_return_type((std::tr1::sph_neumann)(ui, d), d);
381
verify_return_type((std::tr1::sph_neumann)(ui, f), f);
382
verify_return_type((std::tr1::sph_neumann)(ui, ld), ld);
383
verify_return_type((std::tr1::sph_neumannf)(ui, f), f);
384
verify_return_type((std::tr1::sph_neumannl)(ui, ld), ld);