OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [libstdc++-v3/] [include/] [tr1/] [cmath] - Blame information for rev 424

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 424 jeremybenn
// TR1 cmath -*- C++ -*-
2
 
3
// Copyright (C) 2006, 2007, 2008, 2009 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
// .
24
 
25
/** @file tr1/cmath
26
 *  This is a TR1 C++ Library header.
27
 */
28
 
29
#ifndef _GLIBCXX_TR1_CMATH
30
#define _GLIBCXX_TR1_CMATH 1
31
 
32
#pragma GCC system_header
33
 
34
#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
35
#  error TR1 header cannot be included from C++0x header
36
#endif
37
 
38
#include 
39
 
40
#if defined(_GLIBCXX_INCLUDE_AS_TR1)
41
#  include 
42
#else
43
#  define _GLIBCXX_INCLUDE_AS_TR1
44
#  define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
45
#  define _GLIBCXX_END_NAMESPACE_TR1 }
46
#  define _GLIBCXX_TR1 tr1::
47
#  include 
48
#  undef _GLIBCXX_TR1
49
#  undef _GLIBCXX_END_NAMESPACE_TR1
50
#  undef _GLIBCXX_BEGIN_NAMESPACE_TR1
51
#  undef _GLIBCXX_INCLUDE_AS_TR1
52
#endif
53
 
54
namespace std
55
{
56
namespace tr1
57
{
58
  // DR 550. What should the return type of pow(float,int) be?
59
  // NB: C++0x and TR1 != C++03.
60
  inline double
61
  pow(double __x, double __y)
62
  { return std::pow(__x, __y); }
63
 
64
  inline float
65
  pow(float __x, float __y)
66
  { return std::pow(__x, __y); }
67
 
68
  inline long double
69
  pow(long double __x, long double __y)
70
  { return std::pow(__x, __y); }
71
 
72
  template
73
    inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
74
    pow(_Tp __x, _Up __y)
75
    {
76
      typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
77
      return std::pow(__type(__x), __type(__y));
78
    }
79
}
80
}
81
 
82
#include 
83
#include 
84
#include 
85
 
86
#include 
87
#include 
88
#include 
89
#include 
90
#include 
91
#include 
92
#include 
93
#include 
94
#include 
95
#include 
96
#include 
97
 
98
namespace std
99
{
100
namespace tr1
101
{
102
  /**
103
   * @defgroup tr1_math_spec_func Mathematical Special Functions
104
   * @ingroup numerics
105
   *
106
   * A collection of advanced mathematical special functions.
107
   * @{
108
   */
109
 
110
  inline float
111
  assoc_laguerref(unsigned int __n, unsigned int __m, float __x)
112
  { return __detail::__assoc_laguerre(__n, __m, __x); }
113
 
114
  inline long double
115
  assoc_laguerrel(unsigned int __n, unsigned int __m, long double __x)
116
  {
117
    return __detail::__assoc_laguerre(__n, __m, __x);
118
  }
119
 
120
  ///  5.2.1.1  Associated Laguerre polynomials.
121
  template
122
    inline typename __gnu_cxx::__promote<_Tp>::__type
123
    assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x)
124
    {
125
      typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
126
      return __detail::__assoc_laguerre<__type>(__n, __m, __x);
127
    }
128
 
129
  inline float
130
  assoc_legendref(unsigned int __l, unsigned int __m, float __x)
131
  { return __detail::__assoc_legendre_p(__l, __m, __x); }
132
 
133
  inline long double
134
  assoc_legendrel(unsigned int __l, unsigned int __m, long double __x)
135
  { return __detail::__assoc_legendre_p(__l, __m, __x); }
136
 
137
  ///  5.2.1.2  Associated Legendre functions.
138
  template
139
    inline typename __gnu_cxx::__promote<_Tp>::__type
140
    assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x)
141
    {
142
      typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
143
      return __detail::__assoc_legendre_p<__type>(__l, __m, __x);
144
    }
145
 
146
  inline float
147
  betaf(float __x, float __y)
148
  { return __detail::__beta(__x, __y); }
149
 
150
  inline long double
151
  betal(long double __x, long double __y)
152
  { return __detail::__beta(__x, __y); }
153
 
154
  ///  5.2.1.3  Beta functions.
155
  template
156
    inline typename __gnu_cxx::__promote_2<_Tpx, _Tpy>::__type
157
    beta(_Tpx __x, _Tpy __y)
158
    {
159
      typedef typename __gnu_cxx::__promote_2<_Tpx, _Tpy>::__type __type;
160
      return __detail::__beta<__type>(__x, __y);
161
    }
162
 
163
  inline float
164
  comp_ellint_1f(float __k)
165
  { return __detail::__comp_ellint_1(__k); }
166
 
167
  inline long double
168
  comp_ellint_1l(long double __k)
169
  { return __detail::__comp_ellint_1(__k); }
170
 
171
  ///  5.2.1.4  Complete elliptic integrals of the first kind.
172
  template
173
    inline typename __gnu_cxx::__promote<_Tp>::__type
174
    comp_ellint_1(_Tp __k)
175
    {
176
      typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
177
      return __detail::__comp_ellint_1<__type>(__k);
178
    }
179
 
180
  inline float
181
  comp_ellint_2f(float __k)
182
  { return __detail::__comp_ellint_2(__k); }
183
 
184
  inline long double
185
  comp_ellint_2l(long double __k)
186
  { return __detail::__comp_ellint_2(__k); }
187
 
188
  ///  5.2.1.5  Complete elliptic integrals of the second kind.
189
  template
190
    inline typename __gnu_cxx::__promote<_Tp>::__type
191
    comp_ellint_2(_Tp __k)
192
    {
193
      typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
194
      return __detail::__comp_ellint_2<__type>(__k);
195
    }
196
 
197
  inline float
198
  comp_ellint_3f(float __k, float __nu)
199
  { return __detail::__comp_ellint_3(__k, __nu); }
200
 
201
  inline long double
202
  comp_ellint_3l(long double __k, long double __nu)
203
  { return __detail::__comp_ellint_3(__k, __nu); }
204
 
205
  ///  5.2.1.6  Complete elliptic integrals of the third kind.
206
  template
207
    inline typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type
208
    comp_ellint_3(_Tp __k, _Tpn __nu)
209
    {
210
      typedef typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type __type;
211
      return __detail::__comp_ellint_3<__type>(__k, __nu);
212
    }
213
 
214
  inline float
215
  conf_hypergf(float __a, float __c, float __x)
216
  { return __detail::__conf_hyperg(__a, __c, __x); }
217
 
218
  inline long double
219
  conf_hypergl(long double __a, long double __c, long double __x)
220
  { return __detail::__conf_hyperg(__a, __c, __x); }
221
 
222
  ///  5.2.1.7  Confluent hypergeometric functions.
223
  template
224
    inline typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type
225
    conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x)
226
    {
227
      typedef typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type __type;
228
      return __detail::__conf_hyperg<__type>(__a, __c, __x);
229
    }
230
 
231
  inline float
232
  cyl_bessel_if(float __nu, float __x)
233
  { return __detail::__cyl_bessel_i(__nu, __x); }
234
 
235
  inline long double
236
  cyl_bessel_il(long double __nu, long double __x)
237
  { return __detail::__cyl_bessel_i(__nu, __x); }
238
 
239
  ///  5.2.1.8  Regular modified cylindrical Bessel functions.
240
  template
241
    inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
242
    cyl_bessel_i(_Tpnu __nu, _Tp __x)
243
    {
244
      typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
245
      return __detail::__cyl_bessel_i<__type>(__nu, __x);
246
    }
247
 
248
  inline float
249
  cyl_bessel_jf(float __nu, float __x)
250
  { return __detail::__cyl_bessel_j(__nu, __x); }
251
 
252
  inline long double
253
  cyl_bessel_jl(long double __nu, long double __x)
254
  { return __detail::__cyl_bessel_j(__nu, __x); }
255
 
256
  ///  5.2.1.9  Cylindrical Bessel functions (of the first kind).
257
  template
258
    inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
259
    cyl_bessel_j(_Tpnu __nu, _Tp __x)
260
    {
261
      typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
262
      return __detail::__cyl_bessel_j<__type>(__nu, __x);
263
    }
264
 
265
  inline float
266
  cyl_bessel_kf(float __nu, float __x)
267
  { return __detail::__cyl_bessel_k(__nu, __x); }
268
 
269
  inline long double
270
  cyl_bessel_kl(long double __nu, long double __x)
271
  { return __detail::__cyl_bessel_k(__nu, __x); }
272
 
273
  ///  5.2.1.10  Irregular modified cylindrical Bessel functions.
274
  template
275
    inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
276
    cyl_bessel_k(_Tpnu __nu, _Tp __x)
277
    {
278
      typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
279
      return __detail::__cyl_bessel_k<__type>(__nu, __x);
280
    }
281
 
282
  inline float
283
  cyl_neumannf(float __nu, float __x)
284
  { return __detail::__cyl_neumann_n(__nu, __x); }
285
 
286
  inline long double
287
  cyl_neumannl(long double __nu, long double __x)
288
  { return __detail::__cyl_neumann_n(__nu, __x); }
289
 
290
  ///  5.2.1.11  Cylindrical Neumann functions.
291
  template
292
    inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
293
    cyl_neumann(_Tpnu __nu, _Tp __x)
294
    {
295
      typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
296
      return __detail::__cyl_neumann_n<__type>(__nu, __x);
297
    }
298
 
299
  inline float
300
  ellint_1f(float __k, float __phi)
301
  { return __detail::__ellint_1(__k, __phi); }
302
 
303
  inline long double
304
  ellint_1l(long double __k, long double __phi)
305
  { return __detail::__ellint_1(__k, __phi); }
306
 
307
  ///  5.2.1.12  Incomplete elliptic integrals of the first kind.
308
  template
309
    inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type
310
    ellint_1(_Tp __k, _Tpp __phi)
311
    {
312
      typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type;
313
      return __detail::__ellint_1<__type>(__k, __phi);
314
    }
315
 
316
  inline float
317
  ellint_2f(float __k, float __phi)
318
  { return __detail::__ellint_2(__k, __phi); }
319
 
320
  inline long double
321
  ellint_2l(long double __k, long double __phi)
322
  { return __detail::__ellint_2(__k, __phi); }
323
 
324
  ///  5.2.1.13  Incomplete elliptic integrals of the second kind.
325
  template
326
    inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type
327
    ellint_2(_Tp __k, _Tpp __phi)
328
    {
329
      typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type;
330
      return __detail::__ellint_2<__type>(__k, __phi);
331
    }
332
 
333
  inline float
334
  ellint_3f(float __k, float __nu, float __phi)
335
  { return __detail::__ellint_3(__k, __nu, __phi); }
336
 
337
  inline long double
338
  ellint_3l(long double __k, long double __nu, long double __phi)
339
  { return __detail::__ellint_3(__k, __nu, __phi); }
340
 
341
  ///  5.2.1.14  Incomplete elliptic integrals of the third kind.
342
  template
343
    inline typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type
344
    ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi)
345
    {
346
      typedef typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type __type;
347
      return __detail::__ellint_3<__type>(__k, __nu, __phi);
348
    }
349
 
350
  inline float
351
  expintf(float __x)
352
  { return __detail::__expint(__x); }
353
 
354
  inline long double
355
  expintl(long double __x)
356
  { return __detail::__expint(__x); }
357
 
358
  ///  5.2.1.15  Exponential integrals.
359
  template
360
    inline typename __gnu_cxx::__promote<_Tp>::__type
361
    expint(_Tp __x)
362
    {
363
      typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
364
      return __detail::__expint<__type>(__x);
365
    }
366
 
367
  inline float
368
  hermitef(unsigned int __n, float __x)
369
  { return __detail::__poly_hermite(__n, __x); }
370
 
371
  inline long double
372
  hermitel(unsigned int __n, long double __x)
373
  { return __detail::__poly_hermite(__n, __x); }
374
 
375
  ///  5.2.1.16  Hermite polynomials.
376
  template
377
    inline typename __gnu_cxx::__promote<_Tp>::__type
378
    hermite(unsigned int __n, _Tp __x)
379
    {
380
      typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
381
      return __detail::__poly_hermite<__type>(__n, __x);
382
    }
383
 
384
  inline float
385
  hypergf(float __a, float __b, float __c, float __x)
386
  { return __detail::__hyperg(__a, __b, __c, __x); }
387
 
388
  inline long double
389
  hypergl(long double __a, long double __b, long double __c, long double __x)
390
  { return __detail::__hyperg(__a, __b, __c, __x); }
391
 
392
  ///  5.2.1.17  Hypergeometric functions.
393
  template
394
    inline typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type
395
    hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x)
396
    {
397
      typedef typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type __type;
398
      return __detail::__hyperg<__type>(__a, __b, __c, __x);
399
    }
400
 
401
  inline float
402
  laguerref(unsigned int __n, float __x)
403
  { return __detail::__laguerre(__n, __x); }
404
 
405
  inline long double
406
  laguerrel(unsigned int __n, long double __x)
407
  { return __detail::__laguerre(__n, __x); }
408
 
409
  ///  5.2.1.18  Laguerre polynomials.
410
  template
411
    inline typename __gnu_cxx::__promote<_Tp>::__type
412
    laguerre(unsigned int __n, _Tp __x)
413
    {
414
      typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
415
      return __detail::__laguerre<__type>(__n, __x);
416
    }
417
 
418
  inline float
419
  legendref(unsigned int __n, float __x)
420
  { return __detail::__poly_legendre_p(__n, __x); }
421
 
422
  inline long double
423
  legendrel(unsigned int __n, long double __x)
424
  { return __detail::__poly_legendre_p(__n, __x); }
425
 
426
  ///  5.2.1.19  Legendre polynomials.
427
  template
428
    inline typename __gnu_cxx::__promote<_Tp>::__type
429
    legendre(unsigned int __n, _Tp __x)
430
    {
431
      typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
432
      return __detail::__poly_legendre_p<__type>(__n, __x);
433
    }
434
 
435
  inline float
436
  riemann_zetaf(float __x)
437
  { return __detail::__riemann_zeta(__x); }
438
 
439
  inline long double
440
  riemann_zetal(long double __x)
441
  { return __detail::__riemann_zeta(__x); }
442
 
443
  ///  5.2.1.20  Riemann zeta function.
444
  template
445
    inline typename __gnu_cxx::__promote<_Tp>::__type
446
    riemann_zeta(_Tp __x)
447
    {
448
      typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
449
      return __detail::__riemann_zeta<__type>(__x);
450
    }
451
 
452
  inline float
453
  sph_besself(unsigned int __n, float __x)
454
  { return __detail::__sph_bessel(__n, __x); }
455
 
456
  inline long double
457
  sph_bessell(unsigned int __n, long double __x)
458
  { return __detail::__sph_bessel(__n, __x); }
459
 
460
  ///  5.2.1.21  Spherical Bessel functions.
461
  template
462
    inline typename __gnu_cxx::__promote<_Tp>::__type
463
    sph_bessel(unsigned int __n, _Tp __x)
464
    {
465
      typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
466
      return __detail::__sph_bessel<__type>(__n, __x);
467
    }
468
 
469
  inline float
470
  sph_legendref(unsigned int __l, unsigned int __m, float __theta)
471
  { return __detail::__sph_legendre(__l, __m, __theta); }
472
 
473
  inline long double
474
  sph_legendrel(unsigned int __l, unsigned int __m, long double __theta)
475
  { return __detail::__sph_legendre(__l, __m, __theta); }
476
 
477
  ///  5.2.1.22  Spherical associated Legendre functions.
478
  template
479
    inline typename __gnu_cxx::__promote<_Tp>::__type
480
    sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta)
481
    {
482
      typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
483
      return __detail::__sph_legendre<__type>(__l, __m, __theta);
484
    }
485
 
486
  inline float
487
  sph_neumannf(unsigned int __n, float __x)
488
  { return __detail::__sph_neumann(__n, __x); }
489
 
490
  inline long double
491
  sph_neumannl(unsigned int __n, long double __x)
492
  { return __detail::__sph_neumann(__n, __x); }
493
 
494
  ///  5.2.1.23  Spherical Neumann functions.
495
  template
496
    inline typename __gnu_cxx::__promote<_Tp>::__type
497
    sph_neumann(unsigned int __n, _Tp __x)
498
    {
499
      typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
500
      return __detail::__sph_neumann<__type>(__n, __x);
501
    }
502
 
503
  /* @} */ // tr1_math_spec_func
504
}
505
}
506
 
507
#endif // _GLIBCXX_TR1_CMATH

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.