aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/libstdc++-v3/include/tr1
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.4.3/libstdc++-v3/include/tr1')
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/array54
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/bessel_function.tcc627
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/beta_function.tcc197
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/ccomplex34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/cctype49
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/cfenv53
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/cfloat42
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/cinttypes63
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/climits46
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/cmath507
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/complex91
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/complex.h34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/cstdarg34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/cstdbool40
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/cstdint76
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/cstdio54
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/cstdlib54
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/ctgmath34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/ctime34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/ctype.h34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/cwchar54
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/cwctype54
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/ell_integral.tcc750
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/exp_integral.tcc524
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/fenv.h34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/float.h34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/functional63
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/functional_hash.h53
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/gamma.tcc471
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/hashtable.h53
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/hypergeometric.tcc774
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/inttypes.h34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/legendre_function.tcc305
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/limits.h34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/math.h186
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/memory67
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/modified_bessel_func.tcc436
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/poly_hermite.tcc124
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/poly_laguerre.tcc329
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/random66
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/regex64
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/riemann_zeta.tcc435
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/shared_ptr.h1020
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/special_function_util.h144
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/stdarg.h34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/stdbool.h34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/stdint.h34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/stdio.h34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/stdlib.h52
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/tgmath.h34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/tuple422
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/type_traits249
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/unordered_map61
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/unordered_set61
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/utility56
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/wchar.h34
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/tr1/wctype.h34
57 files changed, 0 insertions, 9404 deletions
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/array b/gcc-4.4.3/libstdc++-v3/include/tr1/array
deleted file mode 100644
index 17cf5d290..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/array
+++ /dev/null
@@ -1,54 +0,0 @@
-// class template array -*- C++ -*-
-
-// Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/array
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_ARRAY
-#define _GLIBCXX_TR1_ARRAY 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <bits/stl_algobase.h>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/array>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/array>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_ARRAY
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/bessel_function.tcc b/gcc-4.4.3/libstdc++-v3/include/tr1/bessel_function.tcc
deleted file mode 100644
index 25102151b..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/bessel_function.tcc
+++ /dev/null
@@ -1,627 +0,0 @@
-// Special functions -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/bessel_function.tcc
- * This is an internal header file, included by other library headers.
- * You should not attempt to use it directly.
- */
-
-//
-// ISO C++ 14882 TR1: 5.2 Special functions
-//
-
-// Written by Edward Smith-Rowland.
-//
-// References:
-// (1) Handbook of Mathematical Functions,
-// ed. Milton Abramowitz and Irene A. Stegun,
-// Dover Publications,
-// Section 9, pp. 355-434, Section 10 pp. 435-478
-// (2) The Gnu Scientific Library, http://www.gnu.org/software/gsl
-// (3) Numerical Recipes in C, by W. H. Press, S. A. Teukolsky,
-// W. T. Vetterling, B. P. Flannery, Cambridge University Press (1992),
-// 2nd ed, pp. 240-245
-
-#ifndef _GLIBCXX_TR1_BESSEL_FUNCTION_TCC
-#define _GLIBCXX_TR1_BESSEL_FUNCTION_TCC 1
-
-#include "special_function_util.h"
-
-namespace std
-{
-namespace tr1
-{
-
- // [5.2] Special functions
-
- // Implementation-space details.
- namespace __detail
- {
-
- /**
- * @brief Compute the gamma functions required by the Temme series
- * expansions of @f$ N_\nu(x) @f$ and @f$ K_\nu(x) @f$.
- * @f[
- * \Gamma_1 = \frac{1}{2\mu}
- * [\frac{1}{\Gamma(1 - \mu)} - \frac{1}{\Gamma(1 + \mu)}]
- * @f]
- * and
- * @f[
- * \Gamma_2 = \frac{1}{2}
- * [\frac{1}{\Gamma(1 - \mu)} + \frac{1}{\Gamma(1 + \mu)}]
- * @f]
- * where @f$ -1/2 <= \mu <= 1/2 @f$ is @f$ \mu = \nu - N @f$ and @f$ N @f$.
- * is the nearest integer to @f$ \nu @f$.
- * The values of \f$ \Gamma(1 + \mu) \f$ and \f$ \Gamma(1 - \mu) \f$
- * are returned as well.
- *
- * The accuracy requirements on this are exquisite.
- *
- * @param __mu The input parameter of the gamma functions.
- * @param __gam1 The output function \f$ \Gamma_1(\mu) \f$
- * @param __gam2 The output function \f$ \Gamma_2(\mu) \f$
- * @param __gampl The output function \f$ \Gamma(1 + \mu) \f$
- * @param __gammi The output function \f$ \Gamma(1 - \mu) \f$
- */
- template <typename _Tp>
- void
- __gamma_temme(const _Tp __mu,
- _Tp & __gam1, _Tp & __gam2, _Tp & __gampl, _Tp & __gammi)
- {
-#if _GLIBCXX_USE_C99_MATH_TR1
- __gampl = _Tp(1) / std::tr1::tgamma(_Tp(1) + __mu);
- __gammi = _Tp(1) / std::tr1::tgamma(_Tp(1) - __mu);
-#else
- __gampl = _Tp(1) / __gamma(_Tp(1) + __mu);
- __gammi = _Tp(1) / __gamma(_Tp(1) - __mu);
-#endif
-
- if (std::abs(__mu) < std::numeric_limits<_Tp>::epsilon())
- __gam1 = -_Tp(__numeric_constants<_Tp>::__gamma_e());
- else
- __gam1 = (__gammi - __gampl) / (_Tp(2) * __mu);
-
- __gam2 = (__gammi + __gampl) / (_Tp(2));
-
- return;
- }
-
-
- /**
- * @brief Compute the Bessel @f$ J_\nu(x) @f$ and Neumann
- * @f$ N_\nu(x) @f$ functions and their first derivatives
- * @f$ J'_\nu(x) @f$ and @f$ N'_\nu(x) @f$ respectively.
- * These four functions are computed together for numerical
- * stability.
- *
- * @param __nu The order of the Bessel functions.
- * @param __x The argument of the Bessel functions.
- * @param __Jnu The output Bessel function of the first kind.
- * @param __Nnu The output Neumann function (Bessel function of the second kind).
- * @param __Jpnu The output derivative of the Bessel function of the first kind.
- * @param __Npnu The output derivative of the Neumann function.
- */
- template <typename _Tp>
- void
- __bessel_jn(const _Tp __nu, const _Tp __x,
- _Tp & __Jnu, _Tp & __Nnu, _Tp & __Jpnu, _Tp & __Npnu)
- {
- if (__x == _Tp(0))
- {
- if (__nu == _Tp(0))
- {
- __Jnu = _Tp(1);
- __Jpnu = _Tp(0);
- }
- else if (__nu == _Tp(1))
- {
- __Jnu = _Tp(0);
- __Jpnu = _Tp(0.5L);
- }
- else
- {
- __Jnu = _Tp(0);
- __Jpnu = _Tp(0);
- }
- __Nnu = -std::numeric_limits<_Tp>::infinity();
- __Npnu = std::numeric_limits<_Tp>::infinity();
- return;
- }
-
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
- // When the multiplier is N i.e.
- // fp_min = N * min()
- // Then J_0 and N_0 tank at x = 8 * N (J_0 = 0 and N_0 = nan)!
- //const _Tp __fp_min = _Tp(20) * std::numeric_limits<_Tp>::min();
- const _Tp __fp_min = std::sqrt(std::numeric_limits<_Tp>::min());
- const int __max_iter = 15000;
- const _Tp __x_min = _Tp(2);
-
- const int __nl = (__x < __x_min
- ? static_cast<int>(__nu + _Tp(0.5L))
- : std::max(0, static_cast<int>(__nu - __x + _Tp(1.5L))));
-
- const _Tp __mu = __nu - __nl;
- const _Tp __mu2 = __mu * __mu;
- const _Tp __xi = _Tp(1) / __x;
- const _Tp __xi2 = _Tp(2) * __xi;
- _Tp __w = __xi2 / __numeric_constants<_Tp>::__pi();
- int __isign = 1;
- _Tp __h = __nu * __xi;
- if (__h < __fp_min)
- __h = __fp_min;
- _Tp __b = __xi2 * __nu;
- _Tp __d = _Tp(0);
- _Tp __c = __h;
- int __i;
- for (__i = 1; __i <= __max_iter; ++__i)
- {
- __b += __xi2;
- __d = __b - __d;
- if (std::abs(__d) < __fp_min)
- __d = __fp_min;
- __c = __b - _Tp(1) / __c;
- if (std::abs(__c) < __fp_min)
- __c = __fp_min;
- __d = _Tp(1) / __d;
- const _Tp __del = __c * __d;
- __h *= __del;
- if (__d < _Tp(0))
- __isign = -__isign;
- if (std::abs(__del - _Tp(1)) < __eps)
- break;
- }
- if (__i > __max_iter)
- std::__throw_runtime_error(__N("Argument x too large in __bessel_jn; "
- "try asymptotic expansion."));
- _Tp __Jnul = __isign * __fp_min;
- _Tp __Jpnul = __h * __Jnul;
- _Tp __Jnul1 = __Jnul;
- _Tp __Jpnu1 = __Jpnul;
- _Tp __fact = __nu * __xi;
- for ( int __l = __nl; __l >= 1; --__l )
- {
- const _Tp __Jnutemp = __fact * __Jnul + __Jpnul;
- __fact -= __xi;
- __Jpnul = __fact * __Jnutemp - __Jnul;
- __Jnul = __Jnutemp;
- }
- if (__Jnul == _Tp(0))
- __Jnul = __eps;
- _Tp __f= __Jpnul / __Jnul;
- _Tp __Nmu, __Nnu1, __Npmu, __Jmu;
- if (__x < __x_min)
- {
- const _Tp __x2 = __x / _Tp(2);
- const _Tp __pimu = __numeric_constants<_Tp>::__pi() * __mu;
- _Tp __fact = (std::abs(__pimu) < __eps
- ? _Tp(1) : __pimu / std::sin(__pimu));
- _Tp __d = -std::log(__x2);
- _Tp __e = __mu * __d;
- _Tp __fact2 = (std::abs(__e) < __eps
- ? _Tp(1) : std::sinh(__e) / __e);
- _Tp __gam1, __gam2, __gampl, __gammi;
- __gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi);
- _Tp __ff = (_Tp(2) / __numeric_constants<_Tp>::__pi())
- * __fact * (__gam1 * std::cosh(__e) + __gam2 * __fact2 * __d);
- __e = std::exp(__e);
- _Tp __p = __e / (__numeric_constants<_Tp>::__pi() * __gampl);
- _Tp __q = _Tp(1) / (__e * __numeric_constants<_Tp>::__pi() * __gammi);
- const _Tp __pimu2 = __pimu / _Tp(2);
- _Tp __fact3 = (std::abs(__pimu2) < __eps
- ? _Tp(1) : std::sin(__pimu2) / __pimu2 );
- _Tp __r = __numeric_constants<_Tp>::__pi() * __pimu2 * __fact3 * __fact3;
- _Tp __c = _Tp(1);
- __d = -__x2 * __x2;
- _Tp __sum = __ff + __r * __q;
- _Tp __sum1 = __p;
- for (__i = 1; __i <= __max_iter; ++__i)
- {
- __ff = (__i * __ff + __p + __q) / (__i * __i - __mu2);
- __c *= __d / _Tp(__i);
- __p /= _Tp(__i) - __mu;
- __q /= _Tp(__i) + __mu;
- const _Tp __del = __c * (__ff + __r * __q);
- __sum += __del;
- const _Tp __del1 = __c * __p - __i * __del;
- __sum1 += __del1;
- if ( std::abs(__del) < __eps * (_Tp(1) + std::abs(__sum)) )
- break;
- }
- if ( __i > __max_iter )
- std::__throw_runtime_error(__N("Bessel y series failed to converge "
- "in __bessel_jn."));
- __Nmu = -__sum;
- __Nnu1 = -__sum1 * __xi2;
- __Npmu = __mu * __xi * __Nmu - __Nnu1;
- __Jmu = __w / (__Npmu - __f * __Nmu);
- }
- else
- {
- _Tp __a = _Tp(0.25L) - __mu2;
- _Tp __q = _Tp(1);
- _Tp __p = -__xi / _Tp(2);
- _Tp __br = _Tp(2) * __x;
- _Tp __bi = _Tp(2);
- _Tp __fact = __a * __xi / (__p * __p + __q * __q);
- _Tp __cr = __br + __q * __fact;
- _Tp __ci = __bi + __p * __fact;
- _Tp __den = __br * __br + __bi * __bi;
- _Tp __dr = __br / __den;
- _Tp __di = -__bi / __den;
- _Tp __dlr = __cr * __dr - __ci * __di;
- _Tp __dli = __cr * __di + __ci * __dr;
- _Tp __temp = __p * __dlr - __q * __dli;
- __q = __p * __dli + __q * __dlr;
- __p = __temp;
- int __i;
- for (__i = 2; __i <= __max_iter; ++__i)
- {
- __a += _Tp(2 * (__i - 1));
- __bi += _Tp(2);
- __dr = __a * __dr + __br;
- __di = __a * __di + __bi;
- if (std::abs(__dr) + std::abs(__di) < __fp_min)
- __dr = __fp_min;
- __fact = __a / (__cr * __cr + __ci * __ci);
- __cr = __br + __cr * __fact;
- __ci = __bi - __ci * __fact;
- if (std::abs(__cr) + std::abs(__ci) < __fp_min)
- __cr = __fp_min;
- __den = __dr * __dr + __di * __di;
- __dr /= __den;
- __di /= -__den;
- __dlr = __cr * __dr - __ci * __di;
- __dli = __cr * __di + __ci * __dr;
- __temp = __p * __dlr - __q * __dli;
- __q = __p * __dli + __q * __dlr;
- __p = __temp;
- if (std::abs(__dlr - _Tp(1)) + std::abs(__dli) < __eps)
- break;
- }
- if (__i > __max_iter)
- std::__throw_runtime_error(__N("Lentz's method failed "
- "in __bessel_jn."));
- const _Tp __gam = (__p - __f) / __q;
- __Jmu = std::sqrt(__w / ((__p - __f) * __gam + __q));
-#if _GLIBCXX_USE_C99_MATH_TR1
- __Jmu = std::tr1::copysign(__Jmu, __Jnul);
-#else
- if (__Jmu * __Jnul < _Tp(0))
- __Jmu = -__Jmu;
-#endif
- __Nmu = __gam * __Jmu;
- __Npmu = (__p + __q / __gam) * __Nmu;
- __Nnu1 = __mu * __xi * __Nmu - __Npmu;
- }
- __fact = __Jmu / __Jnul;
- __Jnu = __fact * __Jnul1;
- __Jpnu = __fact * __Jpnu1;
- for (__i = 1; __i <= __nl; ++__i)
- {
- const _Tp __Nnutemp = (__mu + __i) * __xi2 * __Nnu1 - __Nmu;
- __Nmu = __Nnu1;
- __Nnu1 = __Nnutemp;
- }
- __Nnu = __Nmu;
- __Npnu = __nu * __xi * __Nmu - __Nnu1;
-
- return;
- }
-
-
- /**
- * @brief This routine computes the asymptotic cylindrical Bessel
- * and Neumann functions of order nu: \f$ J_{\nu} \f$,
- * \f$ N_{\nu} \f$.
- *
- * References:
- * (1) Handbook of Mathematical Functions,
- * ed. Milton Abramowitz and Irene A. Stegun,
- * Dover Publications,
- * Section 9 p. 364, Equations 9.2.5-9.2.10
- *
- * @param __nu The order of the Bessel functions.
- * @param __x The argument of the Bessel functions.
- * @param __Jnu The output Bessel function of the first kind.
- * @param __Nnu The output Neumann function (Bessel function of the second kind).
- */
- template <typename _Tp>
- void
- __cyl_bessel_jn_asymp(const _Tp __nu, const _Tp __x,
- _Tp & __Jnu, _Tp & __Nnu)
- {
- const _Tp __coef = std::sqrt(_Tp(2)
- / (__numeric_constants<_Tp>::__pi() * __x));
- const _Tp __mu = _Tp(4) * __nu * __nu;
- const _Tp __mum1 = __mu - _Tp(1);
- const _Tp __mum9 = __mu - _Tp(9);
- const _Tp __mum25 = __mu - _Tp(25);
- const _Tp __mum49 = __mu - _Tp(49);
- const _Tp __xx = _Tp(64) * __x * __x;
- const _Tp __P = _Tp(1) - __mum1 * __mum9 / (_Tp(2) * __xx)
- * (_Tp(1) - __mum25 * __mum49 / (_Tp(12) * __xx));
- const _Tp __Q = __mum1 / (_Tp(8) * __x)
- * (_Tp(1) - __mum9 * __mum25 / (_Tp(6) * __xx));
-
- const _Tp __chi = __x - (__nu + _Tp(0.5L))
- * __numeric_constants<_Tp>::__pi_2();
- const _Tp __c = std::cos(__chi);
- const _Tp __s = std::sin(__chi);
-
- __Jnu = __coef * (__c * __P - __s * __Q);
- __Nnu = __coef * (__s * __P + __c * __Q);
-
- return;
- }
-
-
- /**
- * @brief This routine returns the cylindrical Bessel functions
- * of order \f$ \nu \f$: \f$ J_{\nu} \f$ or \f$ I_{\nu} \f$
- * by series expansion.
- *
- * The modified cylindrical Bessel function is:
- * @f[
- * Z_{\nu}(x) = \sum_{k=0}^{\infty}
- * \frac{\sigma^k (x/2)^{\nu + 2k}}{k!\Gamma(\nu+k+1)}
- * @f]
- * where \f$ \sigma = +1 \f$ or\f$ -1 \f$ for
- * \f$ Z = I \f$ or \f$ J \f$ respectively.
- *
- * See Abramowitz & Stegun, 9.1.10
- * Abramowitz & Stegun, 9.6.7
- * (1) Handbook of Mathematical Functions,
- * ed. Milton Abramowitz and Irene A. Stegun,
- * Dover Publications,
- * Equation 9.1.10 p. 360 and Equation 9.6.10 p. 375
- *
- * @param __nu The order of the Bessel function.
- * @param __x The argument of the Bessel function.
- * @param __sgn The sign of the alternate terms
- * -1 for the Bessel function of the first kind.
- * +1 for the modified Bessel function of the first kind.
- * @return The output Bessel function.
- */
- template <typename _Tp>
- _Tp
- __cyl_bessel_ij_series(const _Tp __nu, const _Tp __x, const _Tp __sgn,
- const unsigned int __max_iter)
- {
-
- const _Tp __x2 = __x / _Tp(2);
- _Tp __fact = __nu * std::log(__x2);
-#if _GLIBCXX_USE_C99_MATH_TR1
- __fact -= std::tr1::lgamma(__nu + _Tp(1));
-#else
- __fact -= __log_gamma(__nu + _Tp(1));
-#endif
- __fact = std::exp(__fact);
- const _Tp __xx4 = __sgn * __x2 * __x2;
- _Tp __Jn = _Tp(1);
- _Tp __term = _Tp(1);
-
- for (unsigned int __i = 1; __i < __max_iter; ++__i)
- {
- __term *= __xx4 / (_Tp(__i) * (__nu + _Tp(__i)));
- __Jn += __term;
- if (std::abs(__term / __Jn) < std::numeric_limits<_Tp>::epsilon())
- break;
- }
-
- return __fact * __Jn;
- }
-
-
- /**
- * @brief Return the Bessel function of order \f$ \nu \f$:
- * \f$ J_{\nu}(x) \f$.
- *
- * The cylindrical Bessel function is:
- * @f[
- * J_{\nu}(x) = \sum_{k=0}^{\infty}
- * \frac{(-1)^k (x/2)^{\nu + 2k}}{k!\Gamma(\nu+k+1)}
- * @f]
- *
- * @param __nu The order of the Bessel function.
- * @param __x The argument of the Bessel function.
- * @return The output Bessel function.
- */
- template<typename _Tp>
- _Tp
- __cyl_bessel_j(const _Tp __nu, const _Tp __x)
- {
- if (__nu < _Tp(0) || __x < _Tp(0))
- std::__throw_domain_error(__N("Bad argument "
- "in __cyl_bessel_j."));
- else if (__isnan(__nu) || __isnan(__x))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (__x * __x < _Tp(10) * (__nu + _Tp(1)))
- return __cyl_bessel_ij_series(__nu, __x, -_Tp(1), 200);
- else if (__x > _Tp(1000))
- {
- _Tp __J_nu, __N_nu;
- __cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu);
- return __J_nu;
- }
- else
- {
- _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu;
- __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu);
- return __J_nu;
- }
- }
-
-
- /**
- * @brief Return the Neumann function of order \f$ \nu \f$:
- * \f$ N_{\nu}(x) \f$.
- *
- * The Neumann function is defined by:
- * @f[
- * N_{\nu}(x) = \frac{J_{\nu}(x) \cos \nu\pi - J_{-\nu}(x)}
- * {\sin \nu\pi}
- * @f]
- * where for integral \f$ \nu = n \f$ a limit is taken:
- * \f$ lim_{\nu \to n} \f$.
- *
- * @param __nu The order of the Neumann function.
- * @param __x The argument of the Neumann function.
- * @return The output Neumann function.
- */
- template<typename _Tp>
- _Tp
- __cyl_neumann_n(const _Tp __nu, const _Tp __x)
- {
- if (__nu < _Tp(0) || __x < _Tp(0))
- std::__throw_domain_error(__N("Bad argument "
- "in __cyl_neumann_n."));
- else if (__isnan(__nu) || __isnan(__x))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (__x > _Tp(1000))
- {
- _Tp __J_nu, __N_nu;
- __cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu);
- return __N_nu;
- }
- else
- {
- _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu;
- __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu);
- return __N_nu;
- }
- }
-
-
- /**
- * @brief Compute the spherical Bessel @f$ j_n(x) @f$
- * and Neumann @f$ n_n(x) @f$ functions and their first
- * derivatives @f$ j'_n(x) @f$ and @f$ n'_n(x) @f$
- * respectively.
- *
- * @param __n The order of the spherical Bessel function.
- * @param __x The argument of the spherical Bessel function.
- * @param __j_n The output spherical Bessel function.
- * @param __n_n The output spherical Neumann function.
- * @param __jp_n The output derivative of the spherical Bessel function.
- * @param __np_n The output derivative of the spherical Neumann function.
- */
- template <typename _Tp>
- void
- __sph_bessel_jn(const unsigned int __n, const _Tp __x,
- _Tp & __j_n, _Tp & __n_n, _Tp & __jp_n, _Tp & __np_n)
- {
- const _Tp __nu = _Tp(__n) + _Tp(0.5L);
-
- _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu;
- __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu);
-
- const _Tp __factor = __numeric_constants<_Tp>::__sqrtpio2()
- / std::sqrt(__x);
-
- __j_n = __factor * __J_nu;
- __n_n = __factor * __N_nu;
- __jp_n = __factor * __Jp_nu - __j_n / (_Tp(2) * __x);
- __np_n = __factor * __Np_nu - __n_n / (_Tp(2) * __x);
-
- return;
- }
-
-
- /**
- * @brief Return the spherical Bessel function
- * @f$ j_n(x) @f$ of order n.
- *
- * The spherical Bessel function is defined by:
- * @f[
- * j_n(x) = \left( \frac{\pi}{2x} \right) ^{1/2} J_{n+1/2}(x)
- * @f]
- *
- * @param __n The order of the spherical Bessel function.
- * @param __x The argument of the spherical Bessel function.
- * @return The output spherical Bessel function.
- */
- template <typename _Tp>
- _Tp
- __sph_bessel(const unsigned int __n, const _Tp __x)
- {
- if (__x < _Tp(0))
- std::__throw_domain_error(__N("Bad argument "
- "in __sph_bessel."));
- else if (__isnan(__x))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (__x == _Tp(0))
- {
- if (__n == 0)
- return _Tp(1);
- else
- return _Tp(0);
- }
- else
- {
- _Tp __j_n, __n_n, __jp_n, __np_n;
- __sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n);
- return __j_n;
- }
- }
-
-
- /**
- * @brief Return the spherical Neumann function
- * @f$ n_n(x) @f$.
- *
- * The spherical Neumann function is defined by:
- * @f[
- * n_n(x) = \left( \frac{\pi}{2x} \right) ^{1/2} N_{n+1/2}(x)
- * @f]
- *
- * @param __n The order of the spherical Neumann function.
- * @param __x The argument of the spherical Neumann function.
- * @return The output spherical Neumann function.
- */
- template <typename _Tp>
- _Tp
- __sph_neumann(const unsigned int __n, const _Tp __x)
- {
- if (__x < _Tp(0))
- std::__throw_domain_error(__N("Bad argument "
- "in __sph_neumann."));
- else if (__isnan(__x))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (__x == _Tp(0))
- return -std::numeric_limits<_Tp>::infinity();
- else
- {
- _Tp __j_n, __n_n, __jp_n, __np_n;
- __sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n);
- return __n_n;
- }
- }
-
- } // namespace std::tr1::__detail
-}
-}
-
-#endif // _GLIBCXX_TR1_BESSEL_FUNCTION_TCC
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/beta_function.tcc b/gcc-4.4.3/libstdc++-v3/include/tr1/beta_function.tcc
deleted file mode 100644
index f9d18604d..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/beta_function.tcc
+++ /dev/null
@@ -1,197 +0,0 @@
-// Special functions -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/beta_function.tcc
- * This is an internal header file, included by other library headers.
- * You should not attempt to use it directly.
- */
-
-//
-// ISO C++ 14882 TR1: 5.2 Special functions
-//
-
-// Written by Edward Smith-Rowland based on:
-// (1) Handbook of Mathematical Functions,
-// ed. Milton Abramowitz and Irene A. Stegun,
-// Dover Publications,
-// Section 6, pp. 253-266
-// (2) The Gnu Scientific Library, http://www.gnu.org/software/gsl
-// (3) Numerical Recipes in C, by W. H. Press, S. A. Teukolsky,
-// W. T. Vetterling, B. P. Flannery, Cambridge University Press (1992),
-// 2nd ed, pp. 213-216
-// (4) Gamma, Exploring Euler's Constant, Julian Havil,
-// Princeton, 2003.
-
-#ifndef _GLIBCXX_TR1_BETA_FUNCTION_TCC
-#define _GLIBCXX_TR1_BETA_FUNCTION_TCC 1
-
-namespace std
-{
-namespace tr1
-{
-
- // [5.2] Special functions
-
- // Implementation-space details.
- namespace __detail
- {
-
- /**
- * @brief Return the beta function: \f$B(x,y)\f$.
- *
- * The beta function is defined by
- * @f[
- * B(x,y) = \frac{\Gamma(x)\Gamma(y)}{\Gamma(x+y)}
- * @f]
- *
- * @param __x The first argument of the beta function.
- * @param __y The second argument of the beta function.
- * @return The beta function.
- */
- template<typename _Tp>
- _Tp
- __beta_gamma(_Tp __x, _Tp __y)
- {
-
- _Tp __bet;
-#if _GLIBCXX_USE_C99_MATH_TR1
- if (__x > __y)
- {
- __bet = std::tr1::tgamma(__x)
- / std::tr1::tgamma(__x + __y);
- __bet *= std::tr1::tgamma(__y);
- }
- else
- {
- __bet = std::tr1::tgamma(__y)
- / std::tr1::tgamma(__x + __y);
- __bet *= std::tr1::tgamma(__x);
- }
-#else
- if (__x > __y)
- {
- __bet = __gamma(__x) / __gamma(__x + __y);
- __bet *= __gamma(__y);
- }
- else
- {
- __bet = __gamma(__y) / __gamma(__x + __y);
- __bet *= __gamma(__x);
- }
-#endif
-
- return __bet;
- }
-
- /**
- * @brief Return the beta function \f$B(x,y)\f$ using
- * the log gamma functions.
- *
- * The beta function is defined by
- * @f[
- * B(x,y) = \frac{\Gamma(x)\Gamma(y)}{\Gamma(x+y)}
- * @f]
- *
- * @param __x The first argument of the beta function.
- * @param __y The second argument of the beta function.
- * @return The beta function.
- */
- template<typename _Tp>
- _Tp
- __beta_lgamma(_Tp __x, _Tp __y)
- {
-#if _GLIBCXX_USE_C99_MATH_TR1
- _Tp __bet = std::tr1::lgamma(__x)
- + std::tr1::lgamma(__y)
- - std::tr1::lgamma(__x + __y);
-#else
- _Tp __bet = __log_gamma(__x)
- + __log_gamma(__y)
- - __log_gamma(__x + __y);
-#endif
- __bet = std::exp(__bet);
- return __bet;
- }
-
-
- /**
- * @brief Return the beta function \f$B(x,y)\f$ using
- * the product form.
- *
- * The beta function is defined by
- * @f[
- * B(x,y) = \frac{\Gamma(x)\Gamma(y)}{\Gamma(x+y)}
- * @f]
- *
- * @param __x The first argument of the beta function.
- * @param __y The second argument of the beta function.
- * @return The beta function.
- */
- template<typename _Tp>
- _Tp
- __beta_product(_Tp __x, _Tp __y)
- {
-
- _Tp __bet = (__x + __y) / (__x * __y);
-
- unsigned int __max_iter = 1000000;
- for (unsigned int __k = 1; __k < __max_iter; ++__k)
- {
- _Tp __term = (_Tp(1) + (__x + __y) / __k)
- / ((_Tp(1) + __x / __k) * (_Tp(1) + __y / __k));
- __bet *= __term;
- }
-
- return __bet;
- }
-
-
- /**
- * @brief Return the beta function \f$ B(x,y) \f$.
- *
- * The beta function is defined by
- * @f[
- * B(x,y) = \frac{\Gamma(x)\Gamma(y)}{\Gamma(x+y)}
- * @f]
- *
- * @param __x The first argument of the beta function.
- * @param __y The second argument of the beta function.
- * @return The beta function.
- */
- template<typename _Tp>
- inline _Tp
- __beta(_Tp __x, _Tp __y)
- {
- if (__isnan(__x) || __isnan(__y))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else
- return __beta_lgamma(__x, __y);
- }
-
- } // namespace std::tr1::__detail
-}
-}
-
-#endif // __GLIBCXX_TR1_BETA_FUNCTION_TCC
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/ccomplex b/gcc-4.4.3/libstdc++-v3/include/tr1/ccomplex
deleted file mode 100644
index a0ae33e0c..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/ccomplex
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 ccomplex -*- C++ -*-
-
-// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/ccomplex
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CCOMPLEX
-#define _GLIBCXX_TR1_CCOMPLEX 1
-
-#include <tr1/complex>
-
-#endif // _GLIBCXX_TR1_CCOMPLEX
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/cctype b/gcc-4.4.3/libstdc++-v3/include/tr1/cctype
deleted file mode 100644
index 93e864eb8..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/cctype
+++ /dev/null
@@ -1,49 +0,0 @@
-// TR1 cctype -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/cctype
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CCTYPE
-#define _GLIBCXX_TR1_CCTYPE 1
-
-#include <bits/c++config.h>
-#include <cctype>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/cctype>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/cctype>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_CCTYPE
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/cfenv b/gcc-4.4.3/libstdc++-v3/include/tr1/cfenv
deleted file mode 100644
index e4c4facaa..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/cfenv
+++ /dev/null
@@ -1,53 +0,0 @@
-// TR1 cfenv -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/cfenv
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CFENV
-#define _GLIBCXX_TR1_CFENV 1
-
-#pragma GCC system_header
-
-#include <bits/c++config.h>
-#if _GLIBCXX_HAVE_FENV_H
-# include <fenv.h>
-#endif
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/cfenv>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/cfenv>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_CFENV
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/cfloat b/gcc-4.4.3/libstdc++-v3/include/tr1/cfloat
deleted file mode 100644
index 801cfc39e..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/cfloat
+++ /dev/null
@@ -1,42 +0,0 @@
-// TR1 cfloat -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/cfloat
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CFLOAT
-#define _GLIBCXX_TR1_CFLOAT 1
-
-#include <cfloat>
-
-#ifndef DECIMAL_DIG
-#define DECIMAL_DIG __DECIMAL_DIG__
-#endif
-
-#ifndef FLT_EVAL_METHOD
-#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
-#endif
-
-#endif //_GLIBCXX_TR1_CFLOAT
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/cinttypes b/gcc-4.4.3/libstdc++-v3/include/tr1/cinttypes
deleted file mode 100644
index 71fd545d2..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/cinttypes
+++ /dev/null
@@ -1,63 +0,0 @@
-// TR1 cinttypes -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/cinttypes
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CINTTYPES
-#define _GLIBCXX_TR1_CINTTYPES 1
-
-#pragma GCC system_header
-
-#include <tr1/cstdint>
-
-// For 8.11.1/1 (see C99, Note 184)
-#if _GLIBCXX_HAVE_INTTYPES_H
-# ifndef __STDC_FORMAT_MACROS
-# define _UNDEF__STDC_FORMAT_MACROS
-# define __STDC_FORMAT_MACROS
-# endif
-# include <inttypes.h>
-# ifdef _UNDEF__STDC_FORMAT_MACROS
-# undef __STDC_FORMAT_MACROS
-# undef _UNDEF__STDC_FORMAT_MACROS
-# endif
-#endif
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/cinttypes>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/cinttypes>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_CINTTYPES
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/climits b/gcc-4.4.3/libstdc++-v3/include/tr1/climits
deleted file mode 100644
index 91af96bae..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/climits
+++ /dev/null
@@ -1,46 +0,0 @@
-// TR1 climits -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/climits
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CLIMITS
-#define _GLIBCXX_TR1_CLIMITS 1
-
-#include <climits>
-
-#ifndef LLONG_MIN
-#define LLONG_MIN (-__LONG_LONG_MAX__ - 1)
-#endif
-
-#ifndef LLONG_MAX
-#define LLONG_MAX __LONG_LONG_MAX__
-#endif
-
-#ifndef ULLONG_MAX
-#define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1)
-#endif
-
-#endif // _GLIBCXX_TR1_CLIMITS
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/cmath b/gcc-4.4.3/libstdc++-v3/include/tr1/cmath
deleted file mode 100644
index a9fbf2b6b..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/cmath
+++ /dev/null
@@ -1,507 +0,0 @@
-// TR1 cmath -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/cmath
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CMATH
-#define _GLIBCXX_TR1_CMATH 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <cmath>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/cmath>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/cmath>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-namespace std
-{
-namespace tr1
-{
- // DR 550. What should the return type of pow(float,int) be?
- // NB: C++0x and TR1 != C++03.
- inline double
- pow(double __x, double __y)
- { return std::pow(__x, __y); }
-
- inline float
- pow(float __x, float __y)
- { return std::pow(__x, __y); }
-
- inline long double
- pow(long double __x, long double __y)
- { return std::pow(__x, __y); }
-
- template<typename _Tp, typename _Up>
- inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
- pow(_Tp __x, _Up __y)
- {
- typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
- return std::pow(__type(__x), __type(__y));
- }
-}
-}
-
-#include <bits/stl_algobase.h>
-#include <limits>
-#include <tr1/type_traits>
-
-#include <tr1/gamma.tcc>
-#include <tr1/bessel_function.tcc>
-#include <tr1/beta_function.tcc>
-#include <tr1/ell_integral.tcc>
-#include <tr1/exp_integral.tcc>
-#include <tr1/hypergeometric.tcc>
-#include <tr1/legendre_function.tcc>
-#include <tr1/modified_bessel_func.tcc>
-#include <tr1/poly_hermite.tcc>
-#include <tr1/poly_laguerre.tcc>
-#include <tr1/riemann_zeta.tcc>
-
-namespace std
-{
-namespace tr1
-{
- /**
- * @defgroup tr1_math_spec_func Mathematical Special Functions
- * @ingroup numerics
- *
- * A collection of advanced mathematical special functions.
- * @{
- */
-
- inline float
- assoc_laguerref(unsigned int __n, unsigned int __m, float __x)
- { return __detail::__assoc_laguerre<float>(__n, __m, __x); }
-
- inline long double
- assoc_laguerrel(unsigned int __n, unsigned int __m, long double __x)
- {
- return __detail::__assoc_laguerre<long double>(__n, __m, __x);
- }
-
- /// 5.2.1.1 Associated Laguerre polynomials.
- template<typename _Tp>
- inline typename __gnu_cxx::__promote<_Tp>::__type
- assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x)
- {
- typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
- return __detail::__assoc_laguerre<__type>(__n, __m, __x);
- }
-
- inline float
- assoc_legendref(unsigned int __l, unsigned int __m, float __x)
- { return __detail::__assoc_legendre_p<float>(__l, __m, __x); }
-
- inline long double
- assoc_legendrel(unsigned int __l, unsigned int __m, long double __x)
- { return __detail::__assoc_legendre_p<long double>(__l, __m, __x); }
-
- /// 5.2.1.2 Associated Legendre functions.
- template<typename _Tp>
- inline typename __gnu_cxx::__promote<_Tp>::__type
- assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x)
- {
- typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
- return __detail::__assoc_legendre_p<__type>(__l, __m, __x);
- }
-
- inline float
- betaf(float __x, float __y)
- { return __detail::__beta<float>(__x, __y); }
-
- inline long double
- betal(long double __x, long double __y)
- { return __detail::__beta<long double>(__x, __y); }
-
- /// 5.2.1.3 Beta functions.
- template<typename _Tpx, typename _Tpy>
- inline typename __gnu_cxx::__promote_2<_Tpx, _Tpy>::__type
- beta(_Tpx __x, _Tpy __y)
- {
- typedef typename __gnu_cxx::__promote_2<_Tpx, _Tpy>::__type __type;
- return __detail::__beta<__type>(__x, __y);
- }
-
- inline float
- comp_ellint_1f(float __k)
- { return __detail::__comp_ellint_1<float>(__k); }
-
- inline long double
- comp_ellint_1l(long double __k)
- { return __detail::__comp_ellint_1<long double>(__k); }
-
- /// 5.2.1.4 Complete elliptic integrals of the first kind.
- template<typename _Tp>
- inline typename __gnu_cxx::__promote<_Tp>::__type
- comp_ellint_1(_Tp __k)
- {
- typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
- return __detail::__comp_ellint_1<__type>(__k);
- }
-
- inline float
- comp_ellint_2f(float __k)
- { return __detail::__comp_ellint_2<float>(__k); }
-
- inline long double
- comp_ellint_2l(long double __k)
- { return __detail::__comp_ellint_2<long double>(__k); }
-
- /// 5.2.1.5 Complete elliptic integrals of the second kind.
- template<typename _Tp>
- inline typename __gnu_cxx::__promote<_Tp>::__type
- comp_ellint_2(_Tp __k)
- {
- typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
- return __detail::__comp_ellint_2<__type>(__k);
- }
-
- inline float
- comp_ellint_3f(float __k, float __nu)
- { return __detail::__comp_ellint_3<float>(__k, __nu); }
-
- inline long double
- comp_ellint_3l(long double __k, long double __nu)
- { return __detail::__comp_ellint_3<long double>(__k, __nu); }
-
- /// 5.2.1.6 Complete elliptic integrals of the third kind.
- template<typename _Tp, typename _Tpn>
- inline typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type
- comp_ellint_3(_Tp __k, _Tpn __nu)
- {
- typedef typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type __type;
- return __detail::__comp_ellint_3<__type>(__k, __nu);
- }
-
- inline float
- conf_hypergf(float __a, float __c, float __x)
- { return __detail::__conf_hyperg<float>(__a, __c, __x); }
-
- inline long double
- conf_hypergl(long double __a, long double __c, long double __x)
- { return __detail::__conf_hyperg<long double>(__a, __c, __x); }
-
- /// 5.2.1.7 Confluent hypergeometric functions.
- template<typename _Tpa, typename _Tpc, typename _Tp>
- inline typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type
- conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x)
- {
- typedef typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type __type;
- return __detail::__conf_hyperg<__type>(__a, __c, __x);
- }
-
- inline float
- cyl_bessel_if(float __nu, float __x)
- { return __detail::__cyl_bessel_i<float>(__nu, __x); }
-
- inline long double
- cyl_bessel_il(long double __nu, long double __x)
- { return __detail::__cyl_bessel_i<long double>(__nu, __x); }
-
- /// 5.2.1.8 Regular modified cylindrical Bessel functions.
- template<typename _Tpnu, typename _Tp>
- inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
- cyl_bessel_i(_Tpnu __nu, _Tp __x)
- {
- typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
- return __detail::__cyl_bessel_i<__type>(__nu, __x);
- }
-
- inline float
- cyl_bessel_jf(float __nu, float __x)
- { return __detail::__cyl_bessel_j<float>(__nu, __x); }
-
- inline long double
- cyl_bessel_jl(long double __nu, long double __x)
- { return __detail::__cyl_bessel_j<long double>(__nu, __x); }
-
- /// 5.2.1.9 Cylindrical Bessel functions (of the first kind).
- template<typename _Tpnu, typename _Tp>
- inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
- cyl_bessel_j(_Tpnu __nu, _Tp __x)
- {
- typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
- return __detail::__cyl_bessel_j<__type>(__nu, __x);
- }
-
- inline float
- cyl_bessel_kf(float __nu, float __x)
- { return __detail::__cyl_bessel_k<float>(__nu, __x); }
-
- inline long double
- cyl_bessel_kl(long double __nu, long double __x)
- { return __detail::__cyl_bessel_k<long double>(__nu, __x); }
-
- /// 5.2.1.10 Irregular modified cylindrical Bessel functions.
- template<typename _Tpnu, typename _Tp>
- inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
- cyl_bessel_k(_Tpnu __nu, _Tp __x)
- {
- typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
- return __detail::__cyl_bessel_k<__type>(__nu, __x);
- }
-
- inline float
- cyl_neumannf(float __nu, float __x)
- { return __detail::__cyl_neumann_n<float>(__nu, __x); }
-
- inline long double
- cyl_neumannl(long double __nu, long double __x)
- { return __detail::__cyl_neumann_n<long double>(__nu, __x); }
-
- /// 5.2.1.11 Cylindrical Neumann functions.
- template<typename _Tpnu, typename _Tp>
- inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
- cyl_neumann(_Tpnu __nu, _Tp __x)
- {
- typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
- return __detail::__cyl_neumann_n<__type>(__nu, __x);
- }
-
- inline float
- ellint_1f(float __k, float __phi)
- { return __detail::__ellint_1<float>(__k, __phi); }
-
- inline long double
- ellint_1l(long double __k, long double __phi)
- { return __detail::__ellint_1<long double>(__k, __phi); }
-
- /// 5.2.1.12 Incomplete elliptic integrals of the first kind.
- template<typename _Tp, typename _Tpp>
- inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type
- ellint_1(_Tp __k, _Tpp __phi)
- {
- typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type;
- return __detail::__ellint_1<__type>(__k, __phi);
- }
-
- inline float
- ellint_2f(float __k, float __phi)
- { return __detail::__ellint_2<float>(__k, __phi); }
-
- inline long double
- ellint_2l(long double __k, long double __phi)
- { return __detail::__ellint_2<long double>(__k, __phi); }
-
- /// 5.2.1.13 Incomplete elliptic integrals of the second kind.
- template<typename _Tp, typename _Tpp>
- inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type
- ellint_2(_Tp __k, _Tpp __phi)
- {
- typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type;
- return __detail::__ellint_2<__type>(__k, __phi);
- }
-
- inline float
- ellint_3f(float __k, float __nu, float __phi)
- { return __detail::__ellint_3<float>(__k, __nu, __phi); }
-
- inline long double
- ellint_3l(long double __k, long double __nu, long double __phi)
- { return __detail::__ellint_3<long double>(__k, __nu, __phi); }
-
- /// 5.2.1.14 Incomplete elliptic integrals of the third kind.
- template<typename _Tp, typename _Tpn, typename _Tpp>
- inline typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type
- ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi)
- {
- typedef typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type __type;
- return __detail::__ellint_3<__type>(__k, __nu, __phi);
- }
-
- inline float
- expintf(float __x)
- { return __detail::__expint<float>(__x); }
-
- inline long double
- expintl(long double __x)
- { return __detail::__expint<long double>(__x); }
-
- /// 5.2.1.15 Exponential integrals.
- template<typename _Tp>
- inline typename __gnu_cxx::__promote<_Tp>::__type
- expint(_Tp __x)
- {
- typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
- return __detail::__expint<__type>(__x);
- }
-
- inline float
- hermitef(unsigned int __n, float __x)
- { return __detail::__poly_hermite<float>(__n, __x); }
-
- inline long double
- hermitel(unsigned int __n, long double __x)
- { return __detail::__poly_hermite<long double>(__n, __x); }
-
- /// 5.2.1.16 Hermite polynomials.
- template<typename _Tp>
- inline typename __gnu_cxx::__promote<_Tp>::__type
- hermite(unsigned int __n, _Tp __x)
- {
- typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
- return __detail::__poly_hermite<__type>(__n, __x);
- }
-
- inline float
- hypergf(float __a, float __b, float __c, float __x)
- { return __detail::__hyperg<float>(__a, __b, __c, __x); }
-
- inline long double
- hypergl(long double __a, long double __b, long double __c, long double __x)
- { return __detail::__hyperg<long double>(__a, __b, __c, __x); }
-
- /// 5.2.1.17 Hypergeometric functions.
- template<typename _Tpa, typename _Tpb, typename _Tpc, typename _Tp>
- inline typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type
- hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x)
- {
- typedef typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type __type;
- return __detail::__hyperg<__type>(__a, __b, __c, __x);
- }
-
- inline float
- laguerref(unsigned int __n, float __x)
- { return __detail::__laguerre<float>(__n, __x); }
-
- inline long double
- laguerrel(unsigned int __n, long double __x)
- { return __detail::__laguerre<long double>(__n, __x); }
-
- /// 5.2.1.18 Laguerre polynomials.
- template<typename _Tp>
- inline typename __gnu_cxx::__promote<_Tp>::__type
- laguerre(unsigned int __n, _Tp __x)
- {
- typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
- return __detail::__laguerre<__type>(__n, __x);
- }
-
- inline float
- legendref(unsigned int __n, float __x)
- { return __detail::__poly_legendre_p<float>(__n, __x); }
-
- inline long double
- legendrel(unsigned int __n, long double __x)
- { return __detail::__poly_legendre_p<long double>(__n, __x); }
-
- /// 5.2.1.19 Legendre polynomials.
- template<typename _Tp>
- inline typename __gnu_cxx::__promote<_Tp>::__type
- legendre(unsigned int __n, _Tp __x)
- {
- typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
- return __detail::__poly_legendre_p<__type>(__n, __x);
- }
-
- inline float
- riemann_zetaf(float __x)
- { return __detail::__riemann_zeta<float>(__x); }
-
- inline long double
- riemann_zetal(long double __x)
- { return __detail::__riemann_zeta<long double>(__x); }
-
- /// 5.2.1.20 Riemann zeta function.
- template<typename _Tp>
- inline typename __gnu_cxx::__promote<_Tp>::__type
- riemann_zeta(_Tp __x)
- {
- typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
- return __detail::__riemann_zeta<__type>(__x);
- }
-
- inline float
- sph_besself(unsigned int __n, float __x)
- { return __detail::__sph_bessel<float>(__n, __x); }
-
- inline long double
- sph_bessell(unsigned int __n, long double __x)
- { return __detail::__sph_bessel<long double>(__n, __x); }
-
- /// 5.2.1.21 Spherical Bessel functions.
- template<typename _Tp>
- inline typename __gnu_cxx::__promote<_Tp>::__type
- sph_bessel(unsigned int __n, _Tp __x)
- {
- typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
- return __detail::__sph_bessel<__type>(__n, __x);
- }
-
- inline float
- sph_legendref(unsigned int __l, unsigned int __m, float __theta)
- { return __detail::__sph_legendre<float>(__l, __m, __theta); }
-
- inline long double
- sph_legendrel(unsigned int __l, unsigned int __m, long double __theta)
- { return __detail::__sph_legendre<long double>(__l, __m, __theta); }
-
- /// 5.2.1.22 Spherical associated Legendre functions.
- template<typename _Tp>
- inline typename __gnu_cxx::__promote<_Tp>::__type
- sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta)
- {
- typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
- return __detail::__sph_legendre<__type>(__l, __m, __theta);
- }
-
- inline float
- sph_neumannf(unsigned int __n, float __x)
- { return __detail::__sph_neumann<float>(__n, __x); }
-
- inline long double
- sph_neumannl(unsigned int __n, long double __x)
- { return __detail::__sph_neumann<long double>(__n, __x); }
-
- /// 5.2.1.23 Spherical Neumann functions.
- template<typename _Tp>
- inline typename __gnu_cxx::__promote<_Tp>::__type
- sph_neumann(unsigned int __n, _Tp __x)
- {
- typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
- return __detail::__sph_neumann<__type>(__n, __x);
- }
-
- /* @} */ // tr1_math_spec_func
-}
-}
-
-#endif // _GLIBCXX_TR1_CMATH
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/complex b/gcc-4.4.3/libstdc++-v3/include/tr1/complex
deleted file mode 100644
index 3ed1eb97f..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/complex
+++ /dev/null
@@ -1,91 +0,0 @@
-// TR1 complex -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/complex
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_COMPLEX
-#define _GLIBCXX_TR1_COMPLEX 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <complex>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/complex>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/complex>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-namespace std
-{
-namespace tr1
-{
- using std::arg;
- using std::conj;
- using std::imag;
- using std::norm;
- using std::polar;
-
- template<typename _Tp, typename _Up>
- inline std::complex<typename __gnu_cxx::__promote_2<_Tp, _Up>::__type>
- polar(const _Tp& __rho, const _Up& __theta)
- {
- typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
- return std::polar(__type(__rho), __type(__theta));
- }
-
- using std::real;
-
- template<typename _Tp>
- inline std::complex<_Tp>
- pow(const std::complex<_Tp>& __x, const _Tp& __y)
- { return std::pow(__x, __y); }
-
- template<typename _Tp>
- inline std::complex<_Tp>
- pow(const _Tp& __x, const std::complex<_Tp>& __y)
- { return std::pow(__x, __y); }
-
- template<typename _Tp>
- inline std::complex<_Tp>
- pow(const std::complex<_Tp>& __x, const std::complex<_Tp>& __y)
- { return std::pow(__x, __y); }
-}
-}
-
-#endif // _GLIBCXX_TR1_COMPLEX
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/complex.h b/gcc-4.4.3/libstdc++-v3/include/tr1/complex.h
deleted file mode 100644
index 0f28810b7..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/complex.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 complex.h -*- C++ -*-
-
-// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/complex.h
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_COMPLEX_H
-#define _GLIBCXX_TR1_COMPLEX_H 1
-
-#include <tr1/ccomplex>
-
-#endif // _GLIBCXX_TR1_COMPLEX_H
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/cstdarg b/gcc-4.4.3/libstdc++-v3/include/tr1/cstdarg
deleted file mode 100644
index bc2e88153..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/cstdarg
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 cstdarg -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/cstdarg
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CSTDARG
-#define _GLIBCXX_TR1_CSTDARG 1
-
-#include <cstdarg>
-
-#endif // _GLIBCXX_TR1_CSTDARG
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/cstdbool b/gcc-4.4.3/libstdc++-v3/include/tr1/cstdbool
deleted file mode 100644
index d68e4b896..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/cstdbool
+++ /dev/null
@@ -1,40 +0,0 @@
-// TR1 cstdbool -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/cstdbool
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CSTDBOOL
-#define _GLIBCXX_TR1_CSTDBOOL 1
-
-#pragma GCC system_header
-
-#include <bits/c++config.h>
-
-#if _GLIBCXX_HAVE_STDBOOL_H
-#include <stdbool.h>
-#endif
-
-#endif // _GLIBCXX_TR1_CSTDBOOL
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/cstdint b/gcc-4.4.3/libstdc++-v3/include/tr1/cstdint
deleted file mode 100644
index 1e6cc3714..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/cstdint
+++ /dev/null
@@ -1,76 +0,0 @@
-// TR1 cstdint -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/cstdint
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CSTDINT
-#define _GLIBCXX_TR1_CSTDINT 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <bits/c++config.h>
-
-// For 8.22.1/1 (see C99, Notes 219, 220, 222)
-# if _GLIBCXX_HAVE_STDINT_H
-# ifndef __STDC_LIMIT_MACROS
-# define _UNDEF__STDC_LIMIT_MACROS
-# define __STDC_LIMIT_MACROS
-# endif
-# ifndef __STDC_CONSTANT_MACROS
-# define _UNDEF__STDC_CONSTANT_MACROS
-# define __STDC_CONSTANT_MACROS
-# endif
-# include <stdint.h>
-# ifdef _UNDEF__STDC_LIMIT_MACROS
-# undef __STDC_LIMIT_MACROS
-# undef _UNDEF__STDC_LIMIT_MACROS
-# endif
-# ifdef _UNDEF__STDC_CONSTANT_MACROS
-# undef __STDC_CONSTANT_MACROS
-# undef _UNDEF__STDC_CONSTANT_MACROS
-# endif
-# endif
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/cstdint>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/cstdint>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_CSTDINT
-
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/cstdio b/gcc-4.4.3/libstdc++-v3/include/tr1/cstdio
deleted file mode 100644
index cfcf31a3f..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/cstdio
+++ /dev/null
@@ -1,54 +0,0 @@
-// TR1 cstdio -*- C++ -*-
-
-// Copyright (C) 2006, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/cstdio
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CSTDIO
-#define _GLIBCXX_TR1_CSTDIO 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <cstdio>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/cstdio>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/cstdio>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_CSTDIO
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/cstdlib b/gcc-4.4.3/libstdc++-v3/include/tr1/cstdlib
deleted file mode 100644
index c9fab202d..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/cstdlib
+++ /dev/null
@@ -1,54 +0,0 @@
-// TR1 cstdlib -*- C++ -*-
-
-// Copyright (C) 2006, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/cstdlib
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CSTDLIB
-#define _GLIBCXX_TR1_CSTDLIB 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <cstdlib>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/cstdlib>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/cstdlib>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_CSTDLIB
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/ctgmath b/gcc-4.4.3/libstdc++-v3/include/tr1/ctgmath
deleted file mode 100644
index e82a9a15f..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/ctgmath
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 ctgmath -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/ctgmath
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CTGMATH
-#define _GLIBCXX_TR1_CTGMATH 1
-
-#include <tr1/cmath>
-
-#endif // _GLIBCXX_TR1_CTGMATH
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/ctime b/gcc-4.4.3/libstdc++-v3/include/tr1/ctime
deleted file mode 100644
index bf763377d..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/ctime
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 ctime -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/ctime
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CTIME
-#define _GLIBCXX_TR1_CTIME 1
-
-#include <ctime>
-
-#endif // _GLIBCXX_TR1_CTIME
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/ctype.h b/gcc-4.4.3/libstdc++-v3/include/tr1/ctype.h
deleted file mode 100644
index 712bedb67..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/ctype.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 ctype.h -*- C++ -*-
-
-// Copyright (C) 2006, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/ctype.h
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _TR1_CTYPE_H
-#define _TR1_CTYPE_H 1
-
-#include <tr1/cctype>
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/cwchar b/gcc-4.4.3/libstdc++-v3/include/tr1/cwchar
deleted file mode 100644
index a27ebc3b4..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/cwchar
+++ /dev/null
@@ -1,54 +0,0 @@
-// TR1 cwchar -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/cwchar
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CWCHAR
-#define _GLIBCXX_TR1_CWCHAR 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <cwchar>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/cwchar>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/cwchar>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_CWCHAR
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/cwctype b/gcc-4.4.3/libstdc++-v3/include/tr1/cwctype
deleted file mode 100644
index 77cbb14a1..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/cwctype
+++ /dev/null
@@ -1,54 +0,0 @@
-// TR1 cwctype -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/cwctype
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_CWCTYPE
-#define _GLIBCXX_TR1_CWCTYPE 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <cwctype>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/cwctype>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/cwctype>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_CWCTYPE
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/ell_integral.tcc b/gcc-4.4.3/libstdc++-v3/include/tr1/ell_integral.tcc
deleted file mode 100644
index 09bda9aa9..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/ell_integral.tcc
+++ /dev/null
@@ -1,750 +0,0 @@
-// Special functions -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/ell_integral.tcc
- * This is an internal header file, included by other library headers.
- * You should not attempt to use it directly.
- */
-
-//
-// ISO C++ 14882 TR1: 5.2 Special functions
-//
-
-// Written by Edward Smith-Rowland based on:
-// (1) B. C. Carlson Numer. Math. 33, 1 (1979)
-// (2) B. C. Carlson, Special Functions of Applied Mathematics (1977)
-// (3) The Gnu Scientific Library, http://www.gnu.org/software/gsl
-// (4) Numerical Recipes in C, 2nd ed, by W. H. Press, S. A. Teukolsky,
-// W. T. Vetterling, B. P. Flannery, Cambridge University Press
-// (1992), pp. 261-269
-
-#ifndef _GLIBCXX_TR1_ELL_INTEGRAL_TCC
-#define _GLIBCXX_TR1_ELL_INTEGRAL_TCC 1
-
-namespace std
-{
-namespace tr1
-{
-
- // [5.2] Special functions
-
- // Implementation-space details.
- namespace __detail
- {
-
- /**
- * @brief Return the Carlson elliptic function @f$ R_F(x,y,z) @f$
- * of the first kind.
- *
- * The Carlson elliptic function of the first kind is defined by:
- * @f[
- * R_F(x,y,z) = \frac{1}{2} \int_0^\infty
- * \frac{dt}{(t + x)^{1/2}(t + y)^{1/2}(t + z)^{1/2}}
- * @f]
- *
- * @param __x The first of three symmetric arguments.
- * @param __y The second of three symmetric arguments.
- * @param __z The third of three symmetric arguments.
- * @return The Carlson elliptic function of the first kind.
- */
- template<typename _Tp>
- _Tp
- __ellint_rf(const _Tp __x, const _Tp __y, const _Tp __z)
- {
- const _Tp __min = std::numeric_limits<_Tp>::min();
- const _Tp __max = std::numeric_limits<_Tp>::max();
- const _Tp __lolim = _Tp(5) * __min;
- const _Tp __uplim = __max / _Tp(5);
-
- if (__x < _Tp(0) || __y < _Tp(0) || __z < _Tp(0))
- std::__throw_domain_error(__N("Argument less than zero "
- "in __ellint_rf."));
- else if (__x + __y < __lolim || __x + __z < __lolim
- || __y + __z < __lolim)
- std::__throw_domain_error(__N("Argument too small in __ellint_rf"));
- else
- {
- const _Tp __c0 = _Tp(1) / _Tp(4);
- const _Tp __c1 = _Tp(1) / _Tp(24);
- const _Tp __c2 = _Tp(1) / _Tp(10);
- const _Tp __c3 = _Tp(3) / _Tp(44);
- const _Tp __c4 = _Tp(1) / _Tp(14);
-
- _Tp __xn = __x;
- _Tp __yn = __y;
- _Tp __zn = __z;
-
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
- const _Tp __errtol = std::pow(__eps, _Tp(1) / _Tp(6));
- _Tp __mu;
- _Tp __xndev, __yndev, __zndev;
-
- const unsigned int __max_iter = 100;
- for (unsigned int __iter = 0; __iter < __max_iter; ++__iter)
- {
- __mu = (__xn + __yn + __zn) / _Tp(3);
- __xndev = 2 - (__mu + __xn) / __mu;
- __yndev = 2 - (__mu + __yn) / __mu;
- __zndev = 2 - (__mu + __zn) / __mu;
- _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev));
- __epsilon = std::max(__epsilon, std::abs(__zndev));
- if (__epsilon < __errtol)
- break;
- const _Tp __xnroot = std::sqrt(__xn);
- const _Tp __ynroot = std::sqrt(__yn);
- const _Tp __znroot = std::sqrt(__zn);
- const _Tp __lambda = __xnroot * (__ynroot + __znroot)
- + __ynroot * __znroot;
- __xn = __c0 * (__xn + __lambda);
- __yn = __c0 * (__yn + __lambda);
- __zn = __c0 * (__zn + __lambda);
- }
-
- const _Tp __e2 = __xndev * __yndev - __zndev * __zndev;
- const _Tp __e3 = __xndev * __yndev * __zndev;
- const _Tp __s = _Tp(1) + (__c1 * __e2 - __c2 - __c3 * __e3) * __e2
- + __c4 * __e3;
-
- return __s / std::sqrt(__mu);
- }
- }
-
-
- /**
- * @brief Return the complete elliptic integral of the first kind
- * @f$ K(k) @f$ by series expansion.
- *
- * The complete elliptic integral of the first kind is defined as
- * @f[
- * K(k) = F(k,\pi/2) = \int_0^{\pi/2}\frac{d\theta}
- * {\sqrt{1 - k^2sin^2\theta}}
- * @f]
- *
- * This routine is not bad as long as |k| is somewhat smaller than 1
- * but is not is good as the Carlson elliptic integral formulation.
- *
- * @param __k The argument of the complete elliptic function.
- * @return The complete elliptic function of the first kind.
- */
- template<typename _Tp>
- _Tp
- __comp_ellint_1_series(const _Tp __k)
- {
-
- const _Tp __kk = __k * __k;
-
- _Tp __term = __kk / _Tp(4);
- _Tp __sum = _Tp(1) + __term;
-
- const unsigned int __max_iter = 1000;
- for (unsigned int __i = 2; __i < __max_iter; ++__i)
- {
- __term *= (2 * __i - 1) * __kk / (2 * __i);
- if (__term < std::numeric_limits<_Tp>::epsilon())
- break;
- __sum += __term;
- }
-
- return __numeric_constants<_Tp>::__pi_2() * __sum;
- }
-
-
- /**
- * @brief Return the complete elliptic integral of the first kind
- * @f$ K(k) @f$ using the Carlson formulation.
- *
- * The complete elliptic integral of the first kind is defined as
- * @f[
- * K(k) = F(k,\pi/2) = \int_0^{\pi/2}\frac{d\theta}
- * {\sqrt{1 - k^2 sin^2\theta}}
- * @f]
- * where @f$ F(k,\phi) @f$ is the incomplete elliptic integral of the
- * first kind.
- *
- * @param __k The argument of the complete elliptic function.
- * @return The complete elliptic function of the first kind.
- */
- template<typename _Tp>
- _Tp
- __comp_ellint_1(const _Tp __k)
- {
-
- if (__isnan(__k))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (std::abs(__k) >= _Tp(1))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else
- return __ellint_rf(_Tp(0), _Tp(1) - __k * __k, _Tp(1));
- }
-
-
- /**
- * @brief Return the incomplete elliptic integral of the first kind
- * @f$ F(k,\phi) @f$ using the Carlson formulation.
- *
- * The incomplete elliptic integral of the first kind is defined as
- * @f[
- * F(k,\phi) = \int_0^{\phi}\frac{d\theta}
- * {\sqrt{1 - k^2 sin^2\theta}}
- * @f]
- *
- * @param __k The argument of the elliptic function.
- * @param __phi The integral limit argument of the elliptic function.
- * @return The elliptic function of the first kind.
- */
- template<typename _Tp>
- _Tp
- __ellint_1(const _Tp __k, const _Tp __phi)
- {
-
- if (__isnan(__k) || __isnan(__phi))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (std::abs(__k) > _Tp(1))
- std::__throw_domain_error(__N("Bad argument in __ellint_1."));
- else
- {
- // Reduce phi to -pi/2 < phi < +pi/2.
- const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi()
- + _Tp(0.5L));
- const _Tp __phi_red = __phi
- - __n * __numeric_constants<_Tp>::__pi();
-
- const _Tp __s = std::sin(__phi_red);
- const _Tp __c = std::cos(__phi_red);
-
- const _Tp __F = __s
- * __ellint_rf(__c * __c,
- _Tp(1) - __k * __k * __s * __s, _Tp(1));
-
- if (__n == 0)
- return __F;
- else
- return __F + _Tp(2) * __n * __comp_ellint_1(__k);
- }
- }
-
-
- /**
- * @brief Return the complete elliptic integral of the second kind
- * @f$ E(k) @f$ by series expansion.
- *
- * The complete elliptic integral of the second kind is defined as
- * @f[
- * E(k,\pi/2) = \int_0^{\pi/2}\sqrt{1 - k^2 sin^2\theta}
- * @f]
- *
- * This routine is not bad as long as |k| is somewhat smaller than 1
- * but is not is good as the Carlson elliptic integral formulation.
- *
- * @param __k The argument of the complete elliptic function.
- * @return The complete elliptic function of the second kind.
- */
- template<typename _Tp>
- _Tp
- __comp_ellint_2_series(const _Tp __k)
- {
-
- const _Tp __kk = __k * __k;
-
- _Tp __term = __kk;
- _Tp __sum = __term;
-
- const unsigned int __max_iter = 1000;
- for (unsigned int __i = 2; __i < __max_iter; ++__i)
- {
- const _Tp __i2m = 2 * __i - 1;
- const _Tp __i2 = 2 * __i;
- __term *= __i2m * __i2m * __kk / (__i2 * __i2);
- if (__term < std::numeric_limits<_Tp>::epsilon())
- break;
- __sum += __term / __i2m;
- }
-
- return __numeric_constants<_Tp>::__pi_2() * (_Tp(1) - __sum);
- }
-
-
- /**
- * @brief Return the Carlson elliptic function of the second kind
- * @f$ R_D(x,y,z) = R_J(x,y,z,z) @f$ where
- * @f$ R_J(x,y,z,p) @f$ is the Carlson elliptic function
- * of the third kind.
- *
- * The Carlson elliptic function of the second kind is defined by:
- * @f[
- * R_D(x,y,z) = \frac{3}{2} \int_0^\infty
- * \frac{dt}{(t + x)^{1/2}(t + y)^{1/2}(t + z)^{3/2}}
- * @f]
- *
- * Based on Carlson's algorithms:
- * - B. C. Carlson Numer. Math. 33, 1 (1979)
- * - B. C. Carlson, Special Functions of Applied Mathematics (1977)
- * - Numerical Recipes in C, 2nd ed, pp. 261-269,
- * by Press, Teukolsky, Vetterling, Flannery (1992)
- *
- * @param __x The first of two symmetric arguments.
- * @param __y The second of two symmetric arguments.
- * @param __z The third argument.
- * @return The Carlson elliptic function of the second kind.
- */
- template<typename _Tp>
- _Tp
- __ellint_rd(const _Tp __x, const _Tp __y, const _Tp __z)
- {
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
- const _Tp __errtol = std::pow(__eps / _Tp(8), _Tp(1) / _Tp(6));
- const _Tp __min = std::numeric_limits<_Tp>::min();
- const _Tp __max = std::numeric_limits<_Tp>::max();
- const _Tp __lolim = _Tp(2) / std::pow(__max, _Tp(2) / _Tp(3));
- const _Tp __uplim = std::pow(_Tp(0.1L) * __errtol / __min, _Tp(2) / _Tp(3));
-
- if (__x < _Tp(0) || __y < _Tp(0))
- std::__throw_domain_error(__N("Argument less than zero "
- "in __ellint_rd."));
- else if (__x + __y < __lolim || __z < __lolim)
- std::__throw_domain_error(__N("Argument too small "
- "in __ellint_rd."));
- else
- {
- const _Tp __c0 = _Tp(1) / _Tp(4);
- const _Tp __c1 = _Tp(3) / _Tp(14);
- const _Tp __c2 = _Tp(1) / _Tp(6);
- const _Tp __c3 = _Tp(9) / _Tp(22);
- const _Tp __c4 = _Tp(3) / _Tp(26);
-
- _Tp __xn = __x;
- _Tp __yn = __y;
- _Tp __zn = __z;
- _Tp __sigma = _Tp(0);
- _Tp __power4 = _Tp(1);
-
- _Tp __mu;
- _Tp __xndev, __yndev, __zndev;
-
- const unsigned int __max_iter = 100;
- for (unsigned int __iter = 0; __iter < __max_iter; ++__iter)
- {
- __mu = (__xn + __yn + _Tp(3) * __zn) / _Tp(5);
- __xndev = (__mu - __xn) / __mu;
- __yndev = (__mu - __yn) / __mu;
- __zndev = (__mu - __zn) / __mu;
- _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev));
- __epsilon = std::max(__epsilon, std::abs(__zndev));
- if (__epsilon < __errtol)
- break;
- _Tp __xnroot = std::sqrt(__xn);
- _Tp __ynroot = std::sqrt(__yn);
- _Tp __znroot = std::sqrt(__zn);
- _Tp __lambda = __xnroot * (__ynroot + __znroot)
- + __ynroot * __znroot;
- __sigma += __power4 / (__znroot * (__zn + __lambda));
- __power4 *= __c0;
- __xn = __c0 * (__xn + __lambda);
- __yn = __c0 * (__yn + __lambda);
- __zn = __c0 * (__zn + __lambda);
- }
-
- // Note: __ea is an SPU badname.
- _Tp __eaa = __xndev * __yndev;
- _Tp __eb = __zndev * __zndev;
- _Tp __ec = __eaa - __eb;
- _Tp __ed = __eaa - _Tp(6) * __eb;
- _Tp __ef = __ed + __ec + __ec;
- _Tp __s1 = __ed * (-__c1 + __c3 * __ed
- / _Tp(3) - _Tp(3) * __c4 * __zndev * __ef
- / _Tp(2));
- _Tp __s2 = __zndev
- * (__c2 * __ef
- + __zndev * (-__c3 * __ec - __zndev * __c4 - __eaa));
-
- return _Tp(3) * __sigma + __power4 * (_Tp(1) + __s1 + __s2)
- / (__mu * std::sqrt(__mu));
- }
- }
-
-
- /**
- * @brief Return the complete elliptic integral of the second kind
- * @f$ E(k) @f$ using the Carlson formulation.
- *
- * The complete elliptic integral of the second kind is defined as
- * @f[
- * E(k,\pi/2) = \int_0^{\pi/2}\sqrt{1 - k^2 sin^2\theta}
- * @f]
- *
- * @param __k The argument of the complete elliptic function.
- * @return The complete elliptic function of the second kind.
- */
- template<typename _Tp>
- _Tp
- __comp_ellint_2(const _Tp __k)
- {
-
- if (__isnan(__k))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (std::abs(__k) == 1)
- return _Tp(1);
- else if (std::abs(__k) > _Tp(1))
- std::__throw_domain_error(__N("Bad argument in __comp_ellint_2."));
- else
- {
- const _Tp __kk = __k * __k;
-
- return __ellint_rf(_Tp(0), _Tp(1) - __kk, _Tp(1))
- - __kk * __ellint_rd(_Tp(0), _Tp(1) - __kk, _Tp(1)) / _Tp(3);
- }
- }
-
-
- /**
- * @brief Return the incomplete elliptic integral of the second kind
- * @f$ E(k,\phi) @f$ using the Carlson formulation.
- *
- * The incomplete elliptic integral of the second kind is defined as
- * @f[
- * E(k,\phi) = \int_0^{\phi} \sqrt{1 - k^2 sin^2\theta}
- * @f]
- *
- * @param __k The argument of the elliptic function.
- * @param __phi The integral limit argument of the elliptic function.
- * @return The elliptic function of the second kind.
- */
- template<typename _Tp>
- _Tp
- __ellint_2(const _Tp __k, const _Tp __phi)
- {
-
- if (__isnan(__k) || __isnan(__phi))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (std::abs(__k) > _Tp(1))
- std::__throw_domain_error(__N("Bad argument in __ellint_2."));
- else
- {
- // Reduce phi to -pi/2 < phi < +pi/2.
- const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi()
- + _Tp(0.5L));
- const _Tp __phi_red = __phi
- - __n * __numeric_constants<_Tp>::__pi();
-
- const _Tp __kk = __k * __k;
- const _Tp __s = std::sin(__phi_red);
- const _Tp __ss = __s * __s;
- const _Tp __sss = __ss * __s;
- const _Tp __c = std::cos(__phi_red);
- const _Tp __cc = __c * __c;
-
- const _Tp __E = __s
- * __ellint_rf(__cc, _Tp(1) - __kk * __ss, _Tp(1))
- - __kk * __sss
- * __ellint_rd(__cc, _Tp(1) - __kk * __ss, _Tp(1))
- / _Tp(3);
-
- if (__n == 0)
- return __E;
- else
- return __E + _Tp(2) * __n * __comp_ellint_2(__k);
- }
- }
-
-
- /**
- * @brief Return the Carlson elliptic function
- * @f$ R_C(x,y) = R_F(x,y,y) @f$ where @f$ R_F(x,y,z) @f$
- * is the Carlson elliptic function of the first kind.
- *
- * The Carlson elliptic function is defined by:
- * @f[
- * R_C(x,y) = \frac{1}{2} \int_0^\infty
- * \frac{dt}{(t + x)^{1/2}(t + y)}
- * @f]
- *
- * Based on Carlson's algorithms:
- * - B. C. Carlson Numer. Math. 33, 1 (1979)
- * - B. C. Carlson, Special Functions of Applied Mathematics (1977)
- * - Numerical Recipes in C, 2nd ed, pp. 261-269,
- * by Press, Teukolsky, Vetterling, Flannery (1992)
- *
- * @param __x The first argument.
- * @param __y The second argument.
- * @return The Carlson elliptic function.
- */
- template<typename _Tp>
- _Tp
- __ellint_rc(const _Tp __x, const _Tp __y)
- {
- const _Tp __min = std::numeric_limits<_Tp>::min();
- const _Tp __max = std::numeric_limits<_Tp>::max();
- const _Tp __lolim = _Tp(5) * __min;
- const _Tp __uplim = __max / _Tp(5);
-
- if (__x < _Tp(0) || __y < _Tp(0) || __x + __y < __lolim)
- std::__throw_domain_error(__N("Argument less than zero "
- "in __ellint_rc."));
- else
- {
- const _Tp __c0 = _Tp(1) / _Tp(4);
- const _Tp __c1 = _Tp(1) / _Tp(7);
- const _Tp __c2 = _Tp(9) / _Tp(22);
- const _Tp __c3 = _Tp(3) / _Tp(10);
- const _Tp __c4 = _Tp(3) / _Tp(8);
-
- _Tp __xn = __x;
- _Tp __yn = __y;
-
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
- const _Tp __errtol = std::pow(__eps / _Tp(30), _Tp(1) / _Tp(6));
- _Tp __mu;
- _Tp __sn;
-
- const unsigned int __max_iter = 100;
- for (unsigned int __iter = 0; __iter < __max_iter; ++__iter)
- {
- __mu = (__xn + _Tp(2) * __yn) / _Tp(3);
- __sn = (__yn + __mu) / __mu - _Tp(2);
- if (std::abs(__sn) < __errtol)
- break;
- const _Tp __lambda = _Tp(2) * std::sqrt(__xn) * std::sqrt(__yn)
- + __yn;
- __xn = __c0 * (__xn + __lambda);
- __yn = __c0 * (__yn + __lambda);
- }
-
- _Tp __s = __sn * __sn
- * (__c3 + __sn*(__c1 + __sn * (__c4 + __sn * __c2)));
-
- return (_Tp(1) + __s) / std::sqrt(__mu);
- }
- }
-
-
- /**
- * @brief Return the Carlson elliptic function @f$ R_J(x,y,z,p) @f$
- * of the third kind.
- *
- * The Carlson elliptic function of the third kind is defined by:
- * @f[
- * R_J(x,y,z,p) = \frac{3}{2} \int_0^\infty
- * \frac{dt}{(t + x)^{1/2}(t + y)^{1/2}(t + z)^{1/2}(t + p)}
- * @f]
- *
- * Based on Carlson's algorithms:
- * - B. C. Carlson Numer. Math. 33, 1 (1979)
- * - B. C. Carlson, Special Functions of Applied Mathematics (1977)
- * - Numerical Recipes in C, 2nd ed, pp. 261-269,
- * by Press, Teukolsky, Vetterling, Flannery (1992)
- *
- * @param __x The first of three symmetric arguments.
- * @param __y The second of three symmetric arguments.
- * @param __z The third of three symmetric arguments.
- * @param __p The fourth argument.
- * @return The Carlson elliptic function of the fourth kind.
- */
- template<typename _Tp>
- _Tp
- __ellint_rj(const _Tp __x, const _Tp __y, const _Tp __z, const _Tp __p)
- {
- const _Tp __min = std::numeric_limits<_Tp>::min();
- const _Tp __max = std::numeric_limits<_Tp>::max();
- const _Tp __lolim = std::pow(_Tp(5) * __min, _Tp(1)/_Tp(3));
- const _Tp __uplim = _Tp(0.3L)
- * std::pow(_Tp(0.2L) * __max, _Tp(1)/_Tp(3));
-
- if (__x < _Tp(0) || __y < _Tp(0) || __z < _Tp(0))
- std::__throw_domain_error(__N("Argument less than zero "
- "in __ellint_rj."));
- else if (__x + __y < __lolim || __x + __z < __lolim
- || __y + __z < __lolim || __p < __lolim)
- std::__throw_domain_error(__N("Argument too small "
- "in __ellint_rj"));
- else
- {
- const _Tp __c0 = _Tp(1) / _Tp(4);
- const _Tp __c1 = _Tp(3) / _Tp(14);
- const _Tp __c2 = _Tp(1) / _Tp(3);
- const _Tp __c3 = _Tp(3) / _Tp(22);
- const _Tp __c4 = _Tp(3) / _Tp(26);
-
- _Tp __xn = __x;
- _Tp __yn = __y;
- _Tp __zn = __z;
- _Tp __pn = __p;
- _Tp __sigma = _Tp(0);
- _Tp __power4 = _Tp(1);
-
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
- const _Tp __errtol = std::pow(__eps / _Tp(8), _Tp(1) / _Tp(6));
-
- _Tp __lambda, __mu;
- _Tp __xndev, __yndev, __zndev, __pndev;
-
- const unsigned int __max_iter = 100;
- for (unsigned int __iter = 0; __iter < __max_iter; ++__iter)
- {
- __mu = (__xn + __yn + __zn + _Tp(2) * __pn) / _Tp(5);
- __xndev = (__mu - __xn) / __mu;
- __yndev = (__mu - __yn) / __mu;
- __zndev = (__mu - __zn) / __mu;
- __pndev = (__mu - __pn) / __mu;
- _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev));
- __epsilon = std::max(__epsilon, std::abs(__zndev));
- __epsilon = std::max(__epsilon, std::abs(__pndev));
- if (__epsilon < __errtol)
- break;
- const _Tp __xnroot = std::sqrt(__xn);
- const _Tp __ynroot = std::sqrt(__yn);
- const _Tp __znroot = std::sqrt(__zn);
- const _Tp __lambda = __xnroot * (__ynroot + __znroot)
- + __ynroot * __znroot;
- const _Tp __alpha1 = __pn * (__xnroot + __ynroot + __znroot)
- + __xnroot * __ynroot * __znroot;
- const _Tp __alpha2 = __alpha1 * __alpha1;
- const _Tp __beta = __pn * (__pn + __lambda)
- * (__pn + __lambda);
- __sigma += __power4 * __ellint_rc(__alpha2, __beta);
- __power4 *= __c0;
- __xn = __c0 * (__xn + __lambda);
- __yn = __c0 * (__yn + __lambda);
- __zn = __c0 * (__zn + __lambda);
- __pn = __c0 * (__pn + __lambda);
- }
-
- // Note: __ea is an SPU badname.
- _Tp __eaa = __xndev * (__yndev + __zndev) + __yndev * __zndev;
- _Tp __eb = __xndev * __yndev * __zndev;
- _Tp __ec = __pndev * __pndev;
- _Tp __e2 = __eaa - _Tp(3) * __ec;
- _Tp __e3 = __eb + _Tp(2) * __pndev * (__eaa - __ec);
- _Tp __s1 = _Tp(1) + __e2 * (-__c1 + _Tp(3) * __c3 * __e2 / _Tp(4)
- - _Tp(3) * __c4 * __e3 / _Tp(2));
- _Tp __s2 = __eb * (__c2 / _Tp(2)
- + __pndev * (-__c3 - __c3 + __pndev * __c4));
- _Tp __s3 = __pndev * __eaa * (__c2 - __pndev * __c3)
- - __c2 * __pndev * __ec;
-
- return _Tp(3) * __sigma + __power4 * (__s1 + __s2 + __s3)
- / (__mu * std::sqrt(__mu));
- }
- }
-
-
- /**
- * @brief Return the complete elliptic integral of the third kind
- * @f$ \Pi(k,\nu) = \Pi(k,\nu,\pi/2) @f$ using the
- * Carlson formulation.
- *
- * The complete elliptic integral of the third kind is defined as
- * @f[
- * \Pi(k,\nu) = \int_0^{\pi/2}
- * \frac{d\theta}
- * {(1 - \nu \sin^2\theta)\sqrt{1 - k^2 \sin^2\theta}}
- * @f]
- *
- * @param __k The argument of the elliptic function.
- * @param __nu The second argument of the elliptic function.
- * @return The complete elliptic function of the third kind.
- */
- template<typename _Tp>
- _Tp
- __comp_ellint_3(const _Tp __k, const _Tp __nu)
- {
-
- if (__isnan(__k) || __isnan(__nu))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (__nu == _Tp(1))
- return std::numeric_limits<_Tp>::infinity();
- else if (std::abs(__k) > _Tp(1))
- std::__throw_domain_error(__N("Bad argument in __comp_ellint_3."));
- else
- {
- const _Tp __kk = __k * __k;
-
- return __ellint_rf(_Tp(0), _Tp(1) - __kk, _Tp(1))
- - __nu
- * __ellint_rj(_Tp(0), _Tp(1) - __kk, _Tp(1), _Tp(1) + __nu)
- / _Tp(3);
- }
- }
-
-
- /**
- * @brief Return the incomplete elliptic integral of the third kind
- * @f$ \Pi(k,\nu,\phi) @f$ using the Carlson formulation.
- *
- * The incomplete elliptic integral of the third kind is defined as
- * @f[
- * \Pi(k,\nu,\phi) = \int_0^{\phi}
- * \frac{d\theta}
- * {(1 - \nu \sin^2\theta)
- * \sqrt{1 - k^2 \sin^2\theta}}
- * @f]
- *
- * @param __k The argument of the elliptic function.
- * @param __nu The second argument of the elliptic function.
- * @param __phi The integral limit argument of the elliptic function.
- * @return The elliptic function of the third kind.
- */
- template<typename _Tp>
- _Tp
- __ellint_3(const _Tp __k, const _Tp __nu, const _Tp __phi)
- {
-
- if (__isnan(__k) || __isnan(__nu) || __isnan(__phi))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (std::abs(__k) > _Tp(1))
- std::__throw_domain_error(__N("Bad argument in __ellint_3."));
- else
- {
- // Reduce phi to -pi/2 < phi < +pi/2.
- const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi()
- + _Tp(0.5L));
- const _Tp __phi_red = __phi
- - __n * __numeric_constants<_Tp>::__pi();
-
- const _Tp __kk = __k * __k;
- const _Tp __s = std::sin(__phi_red);
- const _Tp __ss = __s * __s;
- const _Tp __sss = __ss * __s;
- const _Tp __c = std::cos(__phi_red);
- const _Tp __cc = __c * __c;
-
- const _Tp __Pi = __s
- * __ellint_rf(__cc, _Tp(1) - __kk * __ss, _Tp(1))
- - __nu * __sss
- * __ellint_rj(__cc, _Tp(1) - __kk * __ss, _Tp(1),
- _Tp(1) + __nu * __ss) / _Tp(3);
-
- if (__n == 0)
- return __Pi;
- else
- return __Pi + _Tp(2) * __n * __comp_ellint_3(__k, __nu);
- }
- }
-
- } // namespace std::tr1::__detail
-}
-}
-
-#endif // _GLIBCXX_TR1_ELL_INTEGRAL_TCC
-
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/exp_integral.tcc b/gcc-4.4.3/libstdc++-v3/include/tr1/exp_integral.tcc
deleted file mode 100644
index 5b3af5d8e..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/exp_integral.tcc
+++ /dev/null
@@ -1,524 +0,0 @@
-// Special functions -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/exp_integral.tcc
- * This is an internal header file, included by other library headers.
- * You should not attempt to use it directly.
- */
-
-//
-// ISO C++ 14882 TR1: 5.2 Special functions
-//
-
-// Written by Edward Smith-Rowland based on:
-//
-// (1) Handbook of Mathematical Functions,
-// Ed. by Milton Abramowitz and Irene A. Stegun,
-// Dover Publications, New-York, Section 5, pp. 228-251.
-// (2) The Gnu Scientific Library, http://www.gnu.org/software/gsl
-// (3) Numerical Recipes in C, by W. H. Press, S. A. Teukolsky,
-// W. T. Vetterling, B. P. Flannery, Cambridge University Press (1992),
-// 2nd ed, pp. 222-225.
-//
-
-#ifndef _GLIBCXX_TR1_EXP_INTEGRAL_TCC
-#define _GLIBCXX_TR1_EXP_INTEGRAL_TCC 1
-
-#include "special_function_util.h"
-
-namespace std
-{
-namespace tr1
-{
-
- // [5.2] Special functions
-
- // Implementation-space details.
- namespace __detail
- {
-
- /**
- * @brief Return the exponential integral @f$ E_1(x) @f$
- * by series summation. This should be good
- * for @f$ x < 1 @f$.
- *
- * The exponential integral is given by
- * \f[
- * E_1(x) = \int_{1}^{\infty} \frac{e^{-xt}}{t} dt
- * \f]
- *
- * @param __x The argument of the exponential integral function.
- * @return The exponential integral.
- */
- template<typename _Tp>
- _Tp
- __expint_E1_series(const _Tp __x)
- {
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
- _Tp __term = _Tp(1);
- _Tp __esum = _Tp(0);
- _Tp __osum = _Tp(0);
- const unsigned int __max_iter = 100;
- for (unsigned int __i = 1; __i < __max_iter; ++__i)
- {
- __term *= - __x / __i;
- if (std::abs(__term) < __eps)
- break;
- if (__term >= _Tp(0))
- __esum += __term / __i;
- else
- __osum += __term / __i;
- }
-
- return - __esum - __osum
- - __numeric_constants<_Tp>::__gamma_e() - std::log(__x);
- }
-
-
- /**
- * @brief Return the exponential integral @f$ E_1(x) @f$
- * by asymptotic expansion.
- *
- * The exponential integral is given by
- * \f[
- * E_1(x) = \int_{1}^\infty \frac{e^{-xt}}{t} dt
- * \f]
- *
- * @param __x The argument of the exponential integral function.
- * @return The exponential integral.
- */
- template<typename _Tp>
- _Tp
- __expint_E1_asymp(const _Tp __x)
- {
- _Tp __term = _Tp(1);
- _Tp __esum = _Tp(1);
- _Tp __osum = _Tp(0);
- const unsigned int __max_iter = 1000;
- for (unsigned int __i = 1; __i < __max_iter; ++__i)
- {
- _Tp __prev = __term;
- __term *= - __i / __x;
- if (std::abs(__term) > std::abs(__prev))
- break;
- if (__term >= _Tp(0))
- __esum += __term;
- else
- __osum += __term;
- }
-
- return std::exp(- __x) * (__esum + __osum) / __x;
- }
-
-
- /**
- * @brief Return the exponential integral @f$ E_n(x) @f$
- * by series summation.
- *
- * The exponential integral is given by
- * \f[
- * E_n(x) = \int_{1}^\infty \frac{e^{-xt}}{t^n} dt
- * \f]
- *
- * @param __n The order of the exponential integral function.
- * @param __x The argument of the exponential integral function.
- * @return The exponential integral.
- */
- template<typename _Tp>
- _Tp
- __expint_En_series(const unsigned int __n, const _Tp __x)
- {
- const unsigned int __max_iter = 100;
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
- const int __nm1 = __n - 1;
- _Tp __ans = (__nm1 != 0
- ? _Tp(1) / __nm1 : -std::log(__x)
- - __numeric_constants<_Tp>::__gamma_e());
- _Tp __fact = _Tp(1);
- for (int __i = 1; __i <= __max_iter; ++__i)
- {
- __fact *= -__x / _Tp(__i);
- _Tp __del;
- if ( __i != __nm1 )
- __del = -__fact / _Tp(__i - __nm1);
- else
- {
- _Tp __psi = -_TR1_GAMMA_TCC;
- for (int __ii = 1; __ii <= __nm1; ++__ii)
- __psi += _Tp(1) / _Tp(__ii);
- __del = __fact * (__psi - std::log(__x));
- }
- __ans += __del;
- if (std::abs(__del) < __eps * std::abs(__ans))
- return __ans;
- }
- std::__throw_runtime_error(__N("Series summation failed "
- "in __expint_En_series."));
- }
-
-
- /**
- * @brief Return the exponential integral @f$ E_n(x) @f$
- * by continued fractions.
- *
- * The exponential integral is given by
- * \f[
- * E_n(x) = \int_{1}^\infty \frac{e^{-xt}}{t^n} dt
- * \f]
- *
- * @param __n The order of the exponential integral function.
- * @param __x The argument of the exponential integral function.
- * @return The exponential integral.
- */
- template<typename _Tp>
- _Tp
- __expint_En_cont_frac(const unsigned int __n, const _Tp __x)
- {
- const unsigned int __max_iter = 100;
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
- const _Tp __fp_min = std::numeric_limits<_Tp>::min();
- const int __nm1 = __n - 1;
- _Tp __b = __x + _Tp(__n);
- _Tp __c = _Tp(1) / __fp_min;
- _Tp __d = _Tp(1) / __b;
- _Tp __h = __d;
- for ( unsigned int __i = 1; __i <= __max_iter; ++__i )
- {
- _Tp __a = -_Tp(__i * (__nm1 + __i));
- __b += _Tp(2);
- __d = _Tp(1) / (__a * __d + __b);
- __c = __b + __a / __c;
- const _Tp __del = __c * __d;
- __h *= __del;
- if (std::abs(__del - _Tp(1)) < __eps)
- {
- const _Tp __ans = __h * std::exp(-__x);
- return __ans;
- }
- }
- std::__throw_runtime_error(__N("Continued fraction failed "
- "in __expint_En_cont_frac."));
- }
-
-
- /**
- * @brief Return the exponential integral @f$ E_n(x) @f$
- * by recursion. Use upward recursion for @f$ x < n @f$
- * and downward recursion (Miller's algorithm) otherwise.
- *
- * The exponential integral is given by
- * \f[
- * E_n(x) = \int_{1}^\infty \frac{e^{-xt}}{t^n} dt
- * \f]
- *
- * @param __n The order of the exponential integral function.
- * @param __x The argument of the exponential integral function.
- * @return The exponential integral.
- */
- template<typename _Tp>
- _Tp
- __expint_En_recursion(const unsigned int __n, const _Tp __x)
- {
- _Tp __En;
- _Tp __E1 = __expint_E1(__x);
- if (__x < _Tp(__n))
- {
- // Forward recursion is stable only for n < x.
- __En = __E1;
- for (unsigned int __j = 2; __j < __n; ++__j)
- __En = (std::exp(-__x) - __x * __En) / _Tp(__j - 1);
- }
- else
- {
- // Backward recursion is stable only for n >= x.
- __En = _Tp(1);
- const int __N = __n + 20; // TODO: Check this starting number.
- _Tp __save = _Tp(0);
- for (int __j = __N; __j > 0; --__j)
- {
- __En = (std::exp(-__x) - __j * __En) / __x;
- if (__j == __n)
- __save = __En;
- }
- _Tp __norm = __En / __E1;
- __En /= __norm;
- }
-
- return __En;
- }
-
- /**
- * @brief Return the exponential integral @f$ Ei(x) @f$
- * by series summation.
- *
- * The exponential integral is given by
- * \f[
- * Ei(x) = -\int_{-x}^\infty \frac{e^t}{t} dt
- * \f]
- *
- * @param __x The argument of the exponential integral function.
- * @return The exponential integral.
- */
- template<typename _Tp>
- _Tp
- __expint_Ei_series(const _Tp __x)
- {
- _Tp __term = _Tp(1);
- _Tp __sum = _Tp(0);
- const unsigned int __max_iter = 1000;
- for (unsigned int __i = 1; __i < __max_iter; ++__i)
- {
- __term *= __x / __i;
- __sum += __term / __i;
- if (__term < std::numeric_limits<_Tp>::epsilon() * __sum)
- break;
- }
-
- return __numeric_constants<_Tp>::__gamma_e() + __sum + std::log(__x);
- }
-
-
- /**
- * @brief Return the exponential integral @f$ Ei(x) @f$
- * by asymptotic expansion.
- *
- * The exponential integral is given by
- * \f[
- * Ei(x) = -\int_{-x}^\infty \frac{e^t}{t} dt
- * \f]
- *
- * @param __x The argument of the exponential integral function.
- * @return The exponential integral.
- */
- template<typename _Tp>
- _Tp
- __expint_Ei_asymp(const _Tp __x)
- {
- _Tp __term = _Tp(1);
- _Tp __sum = _Tp(1);
- const unsigned int __max_iter = 1000;
- for (unsigned int __i = 1; __i < __max_iter; ++__i)
- {
- _Tp __prev = __term;
- __term *= __i / __x;
- if (__term < std::numeric_limits<_Tp>::epsilon())
- break;
- if (__term >= __prev)
- break;
- __sum += __term;
- }
-
- return std::exp(__x) * __sum / __x;
- }
-
-
- /**
- * @brief Return the exponential integral @f$ Ei(x) @f$.
- *
- * The exponential integral is given by
- * \f[
- * Ei(x) = -\int_{-x}^\infty \frac{e^t}{t} dt
- * \f]
- *
- * @param __x The argument of the exponential integral function.
- * @return The exponential integral.
- */
- template<typename _Tp>
- _Tp
- __expint_Ei(const _Tp __x)
- {
- if (__x < _Tp(0))
- return -__expint_E1(-__x);
- else if (__x < -std::log(std::numeric_limits<_Tp>::epsilon()))
- return __expint_Ei_series(__x);
- else
- return __expint_Ei_asymp(__x);
- }
-
-
- /**
- * @brief Return the exponential integral @f$ E_1(x) @f$.
- *
- * The exponential integral is given by
- * \f[
- * E_1(x) = \int_{1}^\infty \frac{e^{-xt}}{t} dt
- * \f]
- *
- * @param __x The argument of the exponential integral function.
- * @return The exponential integral.
- */
- template<typename _Tp>
- _Tp
- __expint_E1(const _Tp __x)
- {
- if (__x < _Tp(0))
- return -__expint_Ei(-__x);
- else if (__x < _Tp(1))
- return __expint_E1_series(__x);
- else if (__x < _Tp(100)) // TODO: Find a good asymptotic switch point.
- return __expint_En_cont_frac(1, __x);
- else
- return __expint_E1_asymp(__x);
- }
-
-
- /**
- * @brief Return the exponential integral @f$ E_n(x) @f$
- * for large argument.
- *
- * The exponential integral is given by
- * \f[
- * E_n(x) = \int_{1}^\infty \frac{e^{-xt}}{t^n} dt
- * \f]
- *
- * This is something of an extension.
- *
- * @param __n The order of the exponential integral function.
- * @param __x The argument of the exponential integral function.
- * @return The exponential integral.
- */
- template<typename _Tp>
- _Tp
- __expint_asymp(const unsigned int __n, const _Tp __x)
- {
- _Tp __term = _Tp(1);
- _Tp __sum = _Tp(1);
- for (unsigned int __i = 1; __i <= __n; ++__i)
- {
- _Tp __prev = __term;
- __term *= -(__n - __i + 1) / __x;
- if (std::abs(__term) > std::abs(__prev))
- break;
- __sum += __term;
- }
-
- return std::exp(-__x) * __sum / __x;
- }
-
-
- /**
- * @brief Return the exponential integral @f$ E_n(x) @f$
- * for large order.
- *
- * The exponential integral is given by
- * \f[
- * E_n(x) = \int_{1}^\infty \frac{e^{-xt}}{t^n} dt
- * \f]
- *
- * This is something of an extension.
- *
- * @param __n The order of the exponential integral function.
- * @param __x The argument of the exponential integral function.
- * @return The exponential integral.
- */
- template<typename _Tp>
- _Tp
- __expint_large_n(const unsigned int __n, const _Tp __x)
- {
- const _Tp __xpn = __x + __n;
- const _Tp __xpn2 = __xpn * __xpn;
- _Tp __term = _Tp(1);
- _Tp __sum = _Tp(1);
- for (unsigned int __i = 1; __i <= __n; ++__i)
- {
- _Tp __prev = __term;
- __term *= (__n - 2 * (__i - 1) * __x) / __xpn2;
- if (std::abs(__term) < std::numeric_limits<_Tp>::epsilon())
- break;
- __sum += __term;
- }
-
- return std::exp(-__x) * __sum / __xpn;
- }
-
-
- /**
- * @brief Return the exponential integral @f$ E_n(x) @f$.
- *
- * The exponential integral is given by
- * \f[
- * E_n(x) = \int_{1}^\infty \frac{e^{-xt}}{t^n} dt
- * \f]
- * This is something of an extension.
- *
- * @param __n The order of the exponential integral function.
- * @param __x The argument of the exponential integral function.
- * @return The exponential integral.
- */
- template<typename _Tp>
- _Tp
- __expint(const unsigned int __n, const _Tp __x)
- {
- // Return NaN on NaN input.
- if (__isnan(__x))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (__n <= 1 && __x == _Tp(0))
- return std::numeric_limits<_Tp>::infinity();
- else
- {
- _Tp __E0 = std::exp(__x) / __x;
- if (__n == 0)
- return __E0;
-
- _Tp __E1 = __expint_E1(__x);
- if (__n == 1)
- return __E1;
-
- if (__x == _Tp(0))
- return _Tp(1) / static_cast<_Tp>(__n - 1);
-
- _Tp __En = __expint_En_recursion(__n, __x);
-
- return __En;
- }
- }
-
-
- /**
- * @brief Return the exponential integral @f$ Ei(x) @f$.
- *
- * The exponential integral is given by
- * \f[
- * Ei(x) = -\int_{-x}^\infty \frac{e^t}{t} dt
- * \f]
- *
- * @param __x The argument of the exponential integral function.
- * @return The exponential integral.
- */
- template<typename _Tp>
- inline _Tp
- __expint(const _Tp __x)
- {
- if (__isnan(__x))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else
- return __expint_Ei(__x);
- }
-
- } // namespace std::tr1::__detail
-}
-}
-
-#endif // _GLIBCXX_TR1_EXP_INTEGRAL_TCC
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/fenv.h b/gcc-4.4.3/libstdc++-v3/include/tr1/fenv.h
deleted file mode 100644
index 118630e49..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/fenv.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 fenv.h -*- C++ -*-
-
-// Copyright (C) 2006, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/fenv.h
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _TR1_FENV_H
-#define _TR1_FENV_H 1
-
-#include <tr1/cfenv>
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/float.h b/gcc-4.4.3/libstdc++-v3/include/tr1/float.h
deleted file mode 100644
index bbeff6e3a..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/float.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 float.h -*- C++ -*-
-
-// Copyright (C) 2006, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/float.h
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _TR1_FLOAT_H
-#define _TR1_FLOAT_H 1
-
-#include <tr1/cfloat>
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/functional b/gcc-4.4.3/libstdc++-v3/include/tr1/functional
deleted file mode 100644
index 3deaa5ea5..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/functional
+++ /dev/null
@@ -1,63 +0,0 @@
-// TR1 functional header -*- C++ -*-
-
-// Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/functional
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_FUNCTIONAL
-#define _GLIBCXX_TR1_FUNCTIONAL 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <bits/c++config.h>
-#include <bits/stl_function.h>
-
-#include <typeinfo>
-#include <new>
-#include <tr1/tuple>
-#include <tr1/type_traits>
-#include <bits/stringfwd.h>
-#include <tr1/functional_hash.h>
-#include <ext/type_traits.h>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/functional>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/functional>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_FUNCTIONAL
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/functional_hash.h b/gcc-4.4.3/libstdc++-v3/include/tr1/functional_hash.h
deleted file mode 100644
index 933ded9ac..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/functional_hash.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// TR1 functional_hash.h header -*- C++ -*-
-
-// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/functional_hash.h
- * This is an internal header file, included by other library headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _GLIBCXX_TR1_FUNCTIONAL_HASH_H
-#define _GLIBCXX_TR1_FUNCTIONAL_HASH_H 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/functional_hash.h>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/functional_hash.h>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_FUNCTIONAL_HASH_H
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/gamma.tcc b/gcc-4.4.3/libstdc++-v3/include/tr1/gamma.tcc
deleted file mode 100644
index f456da32b..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/gamma.tcc
+++ /dev/null
@@ -1,471 +0,0 @@
-// Special functions -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/gamma.tcc
- * This is an internal header file, included by other library headers.
- * You should not attempt to use it directly.
- */
-
-//
-// ISO C++ 14882 TR1: 5.2 Special functions
-//
-
-// Written by Edward Smith-Rowland based on:
-// (1) Handbook of Mathematical Functions,
-// ed. Milton Abramowitz and Irene A. Stegun,
-// Dover Publications,
-// Section 6, pp. 253-266
-// (2) The Gnu Scientific Library, http://www.gnu.org/software/gsl
-// (3) Numerical Recipes in C, by W. H. Press, S. A. Teukolsky,
-// W. T. Vetterling, B. P. Flannery, Cambridge University Press (1992),
-// 2nd ed, pp. 213-216
-// (4) Gamma, Exploring Euler's Constant, Julian Havil,
-// Princeton, 2003.
-
-#ifndef _TR1_GAMMA_TCC
-#define _TR1_GAMMA_TCC 1
-
-#include "special_function_util.h"
-
-namespace std
-{
-namespace tr1
-{
- // Implementation-space details.
- namespace __detail
- {
-
- /**
- * @brief This returns Bernoulli numbers from a table or by summation
- * for larger values.
- *
- * Recursion is unstable.
- *
- * @param __n the order n of the Bernoulli number.
- * @return The Bernoulli number of order n.
- */
- template <typename _Tp>
- _Tp __bernoulli_series(unsigned int __n)
- {
-
- static const _Tp __num[28] = {
- _Tp(1UL), -_Tp(1UL) / _Tp(2UL),
- _Tp(1UL) / _Tp(6UL), _Tp(0UL),
- -_Tp(1UL) / _Tp(30UL), _Tp(0UL),
- _Tp(1UL) / _Tp(42UL), _Tp(0UL),
- -_Tp(1UL) / _Tp(30UL), _Tp(0UL),
- _Tp(5UL) / _Tp(66UL), _Tp(0UL),
- -_Tp(691UL) / _Tp(2730UL), _Tp(0UL),
- _Tp(7UL) / _Tp(6UL), _Tp(0UL),
- -_Tp(3617UL) / _Tp(510UL), _Tp(0UL),
- _Tp(43867UL) / _Tp(798UL), _Tp(0UL),
- -_Tp(174611) / _Tp(330UL), _Tp(0UL),
- _Tp(854513UL) / _Tp(138UL), _Tp(0UL),
- -_Tp(236364091UL) / _Tp(2730UL), _Tp(0UL),
- _Tp(8553103UL) / _Tp(6UL), _Tp(0UL)
- };
-
- if (__n == 0)
- return _Tp(1);
-
- if (__n == 1)
- return -_Tp(1) / _Tp(2);
-
- // Take care of the rest of the odd ones.
- if (__n % 2 == 1)
- return _Tp(0);
-
- // Take care of some small evens that are painful for the series.
- if (__n < 28)
- return __num[__n];
-
-
- _Tp __fact = _Tp(1);
- if ((__n / 2) % 2 == 0)
- __fact *= _Tp(-1);
- for (unsigned int __k = 1; __k <= __n; ++__k)
- __fact *= __k / (_Tp(2) * __numeric_constants<_Tp>::__pi());
- __fact *= _Tp(2);
-
- _Tp __sum = _Tp(0);
- for (unsigned int __i = 1; __i < 1000; ++__i)
- {
- _Tp __term = std::pow(_Tp(__i), -_Tp(__n));
- if (__term < std::numeric_limits<_Tp>::epsilon())
- break;
- __sum += __term;
- }
-
- return __fact * __sum;
- }
-
-
- /**
- * @brief This returns Bernoulli number \f$B_n\f$.
- *
- * @param __n the order n of the Bernoulli number.
- * @return The Bernoulli number of order n.
- */
- template<typename _Tp>
- inline _Tp
- __bernoulli(const int __n)
- {
- return __bernoulli_series<_Tp>(__n);
- }
-
-
- /**
- * @brief Return \f$log(\Gamma(x))\f$ by asymptotic expansion
- * with Bernoulli number coefficients. This is like
- * Sterling's approximation.
- *
- * @param __x The argument of the log of the gamma function.
- * @return The logarithm of the gamma function.
- */
- template<typename _Tp>
- _Tp
- __log_gamma_bernoulli(const _Tp __x)
- {
- _Tp __lg = (__x - _Tp(0.5L)) * std::log(__x) - __x
- + _Tp(0.5L) * std::log(_Tp(2)
- * __numeric_constants<_Tp>::__pi());
-
- const _Tp __xx = __x * __x;
- _Tp __help = _Tp(1) / __x;
- for ( unsigned int __i = 1; __i < 20; ++__i )
- {
- const _Tp __2i = _Tp(2 * __i);
- __help /= __2i * (__2i - _Tp(1)) * __xx;
- __lg += __bernoulli<_Tp>(2 * __i) * __help;
- }
-
- return __lg;
- }
-
-
- /**
- * @brief Return \f$log(\Gamma(x))\f$ by the Lanczos method.
- * This method dominates all others on the positive axis I think.
- *
- * @param __x The argument of the log of the gamma function.
- * @return The logarithm of the gamma function.
- */
- template<typename _Tp>
- _Tp
- __log_gamma_lanczos(const _Tp __x)
- {
- const _Tp __xm1 = __x - _Tp(1);
-
- static const _Tp __lanczos_cheb_7[9] = {
- _Tp( 0.99999999999980993227684700473478L),
- _Tp( 676.520368121885098567009190444019L),
- _Tp(-1259.13921672240287047156078755283L),
- _Tp( 771.3234287776530788486528258894L),
- _Tp(-176.61502916214059906584551354L),
- _Tp( 12.507343278686904814458936853L),
- _Tp(-0.13857109526572011689554707L),
- _Tp( 9.984369578019570859563e-6L),
- _Tp( 1.50563273514931155834e-7L)
- };
-
- static const _Tp __LOGROOT2PI
- = _Tp(0.9189385332046727417803297364056176L);
-
- _Tp __sum = __lanczos_cheb_7[0];
- for(unsigned int __k = 1; __k < 9; ++__k)
- __sum += __lanczos_cheb_7[__k] / (__xm1 + __k);
-
- const _Tp __term1 = (__xm1 + _Tp(0.5L))
- * std::log((__xm1 + _Tp(7.5L))
- / __numeric_constants<_Tp>::__euler());
- const _Tp __term2 = __LOGROOT2PI + std::log(__sum);
- const _Tp __result = __term1 + (__term2 - _Tp(7));
-
- return __result;
- }
-
-
- /**
- * @brief Return \f$ log(|\Gamma(x)|) \f$.
- * This will return values even for \f$ x < 0 \f$.
- * To recover the sign of \f$ \Gamma(x) \f$ for
- * any argument use @a __log_gamma_sign.
- *
- * @param __x The argument of the log of the gamma function.
- * @return The logarithm of the gamma function.
- */
- template<typename _Tp>
- _Tp
- __log_gamma(const _Tp __x)
- {
- if (__x > _Tp(0.5L))
- return __log_gamma_lanczos(__x);
- else
- {
- const _Tp __sin_fact
- = std::abs(std::sin(__numeric_constants<_Tp>::__pi() * __x));
- if (__sin_fact == _Tp(0))
- std::__throw_domain_error(__N("Argument is nonpositive integer "
- "in __log_gamma"));
- return __numeric_constants<_Tp>::__lnpi()
- - std::log(__sin_fact)
- - __log_gamma_lanczos(_Tp(1) - __x);
- }
- }
-
-
- /**
- * @brief Return the sign of \f$ \Gamma(x) \f$.
- * At nonpositive integers zero is returned.
- *
- * @param __x The argument of the gamma function.
- * @return The sign of the gamma function.
- */
- template<typename _Tp>
- _Tp
- __log_gamma_sign(const _Tp __x)
- {
- if (__x > _Tp(0))
- return _Tp(1);
- else
- {
- const _Tp __sin_fact
- = std::sin(__numeric_constants<_Tp>::__pi() * __x);
- if (__sin_fact > _Tp(0))
- return (1);
- else if (__sin_fact < _Tp(0))
- return -_Tp(1);
- else
- return _Tp(0);
- }
- }
-
-
- /**
- * @brief Return the logarithm of the binomial coefficient.
- * The binomial coefficient is given by:
- * @f[
- * \left( \right) = \frac{n!}{(n-k)! k!}
- * @f]
- *
- * @param __n The first argument of the binomial coefficient.
- * @param __k The second argument of the binomial coefficient.
- * @return The binomial coefficient.
- */
- template<typename _Tp>
- _Tp
- __log_bincoef(const unsigned int __n, const unsigned int __k)
- {
- // Max e exponent before overflow.
- static const _Tp __max_bincoeff
- = std::numeric_limits<_Tp>::max_exponent10
- * std::log(_Tp(10)) - _Tp(1);
-#if _GLIBCXX_USE_C99_MATH_TR1
- _Tp __coeff = std::tr1::lgamma(_Tp(1 + __n))
- - std::tr1::lgamma(_Tp(1 + __k))
- - std::tr1::lgamma(_Tp(1 + __n - __k));
-#else
- _Tp __coeff = __log_gamma(_Tp(1 + __n))
- - __log_gamma(_Tp(1 + __k))
- - __log_gamma(_Tp(1 + __n - __k));
-#endif
- }
-
-
- /**
- * @brief Return the binomial coefficient.
- * The binomial coefficient is given by:
- * @f[
- * \left( \right) = \frac{n!}{(n-k)! k!}
- * @f]
- *
- * @param __n The first argument of the binomial coefficient.
- * @param __k The second argument of the binomial coefficient.
- * @return The binomial coefficient.
- */
- template<typename _Tp>
- _Tp
- __bincoef(const unsigned int __n, const unsigned int __k)
- {
- // Max e exponent before overflow.
- static const _Tp __max_bincoeff
- = std::numeric_limits<_Tp>::max_exponent10
- * std::log(_Tp(10)) - _Tp(1);
-
- const _Tp __log_coeff = __log_bincoef<_Tp>(__n, __k);
- if (__log_coeff > __max_bincoeff)
- return std::numeric_limits<_Tp>::quiet_NaN();
- else
- return std::exp(__log_coeff);
- }
-
-
- /**
- * @brief Return \f$ \Gamma(x) \f$.
- *
- * @param __x The argument of the gamma function.
- * @return The gamma function.
- */
- template<typename _Tp>
- inline _Tp
- __gamma(const _Tp __x)
- {
- return std::exp(__log_gamma(__x));
- }
-
-
- /**
- * @brief Return the digamma function by series expansion.
- * The digamma or @f$ \psi(x) @f$ function is defined by
- * @f[
- * \psi(x) = \frac{\Gamma'(x)}{\Gamma(x)}
- * @f]
- *
- * The series is given by:
- * @f[
- * \psi(x) = -\gamma_E - \frac{1}{x}
- * \sum_{k=1}^{\infty} \frac{x}{k(x + k)}
- * @f]
- */
- template<typename _Tp>
- _Tp
- __psi_series(const _Tp __x)
- {
- _Tp __sum = -__numeric_constants<_Tp>::__gamma_e() - _Tp(1) / __x;
- const unsigned int __max_iter = 100000;
- for (unsigned int __k = 1; __k < __max_iter; ++__k)
- {
- const _Tp __term = __x / (__k * (__k + __x));
- __sum += __term;
- if (std::abs(__term / __sum) < std::numeric_limits<_Tp>::epsilon())
- break;
- }
- return __sum;
- }
-
-
- /**
- * @brief Return the digamma function for large argument.
- * The digamma or @f$ \psi(x) @f$ function is defined by
- * @f[
- * \psi(x) = \frac{\Gamma'(x)}{\Gamma(x)}
- * @f]
- *
- * The asymptotic series is given by:
- * @f[
- * \psi(x) = \ln(x) - \frac{1}{2x}
- * - \sum_{n=1}^{\infty} \frac{B_{2n}}{2 n x^{2n}}
- * @f]
- */
- template<typename _Tp>
- _Tp
- __psi_asymp(const _Tp __x)
- {
- _Tp __sum = std::log(__x) - _Tp(0.5L) / __x;
- const _Tp __xx = __x * __x;
- _Tp __xp = __xx;
- const unsigned int __max_iter = 100;
- for (unsigned int __k = 1; __k < __max_iter; ++__k)
- {
- const _Tp __term = __bernoulli<_Tp>(2 * __k) / (2 * __k * __xp);
- __sum -= __term;
- if (std::abs(__term / __sum) < std::numeric_limits<_Tp>::epsilon())
- break;
- __xp *= __xx;
- }
- return __sum;
- }
-
-
- /**
- * @brief Return the digamma function.
- * The digamma or @f$ \psi(x) @f$ function is defined by
- * @f[
- * \psi(x) = \frac{\Gamma'(x)}{\Gamma(x)}
- * @f]
- * For negative argument the reflection formula is used:
- * @f[
- * \psi(x) = \psi(1-x) - \pi \cot(\pi x)
- * @f]
- */
- template<typename _Tp>
- _Tp
- __psi(const _Tp __x)
- {
- const int __n = static_cast<int>(__x + 0.5L);
- const _Tp __eps = _Tp(4) * std::numeric_limits<_Tp>::epsilon();
- if (__n <= 0 && std::abs(__x - _Tp(__n)) < __eps)
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (__x < _Tp(0))
- {
- const _Tp __pi = __numeric_constants<_Tp>::__pi();
- return __psi(_Tp(1) - __x)
- - __pi * std::cos(__pi * __x) / std::sin(__pi * __x);
- }
- else if (__x > _Tp(100))
- return __psi_asymp(__x);
- else
- return __psi_series(__x);
- }
-
-
- /**
- * @brief Return the polygamma function @f$ \psi^{(n)}(x) @f$.
- *
- * The polygamma function is related to the Hurwitz zeta function:
- * @f[
- * \psi^{(n)}(x) = (-1)^{n+1} m! \zeta(m+1,x)
- * @f]
- */
- template<typename _Tp>
- _Tp
- __psi(const unsigned int __n, const _Tp __x)
- {
- if (__x <= _Tp(0))
- std::__throw_domain_error(__N("Argument out of range "
- "in __psi"));
- else if (__n == 0)
- return __psi(__x);
- else
- {
- const _Tp __hzeta = __hurwitz_zeta(_Tp(__n + 1), __x);
-#if _GLIBCXX_USE_C99_MATH_TR1
- const _Tp __ln_nfact = std::tr1::lgamma(_Tp(__n + 1));
-#else
- const _Tp __ln_nfact = __log_gamma(_Tp(__n + 1));
-#endif
- _Tp __result = std::exp(__ln_nfact) * __hzeta;
- if (__n % 2 == 1)
- __result = -__result;
- return __result;
- }
- }
-
- } // namespace std::tr1::__detail
-}
-}
-
-#endif // _TR1_GAMMA_TCC
-
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/hashtable.h b/gcc-4.4.3/libstdc++-v3/include/tr1/hashtable.h
deleted file mode 100644
index 22fdbff6f..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/hashtable.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// TR1 hashtable.h header -*- C++ -*-
-
-// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/hashtable.h
- * This is an internal header file, included by other library headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _GLIBCXX_TR1_HASHTABLE_H
-#define _GLIBCXX_TR1_HASHTABLE_H 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/hashtable>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/hashtable>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_HASHTABLE_H
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/hypergeometric.tcc b/gcc-4.4.3/libstdc++-v3/include/tr1/hypergeometric.tcc
deleted file mode 100644
index c975afa59..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/hypergeometric.tcc
+++ /dev/null
@@ -1,774 +0,0 @@
-// Special functions -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/hypergeometric.tcc
- * This is an internal header file, included by other library headers.
- * You should not attempt to use it directly.
- */
-
-//
-// ISO C++ 14882 TR1: 5.2 Special functions
-//
-
-// Written by Edward Smith-Rowland based:
-// (1) Handbook of Mathematical Functions,
-// ed. Milton Abramowitz and Irene A. Stegun,
-// Dover Publications,
-// Section 6, pp. 555-566
-// (2) The Gnu Scientific Library, http://www.gnu.org/software/gsl
-
-#ifndef _GLIBCXX_TR1_HYPERGEOMETRIC_TCC
-#define _GLIBCXX_TR1_HYPERGEOMETRIC_TCC 1
-
-namespace std
-{
-namespace tr1
-{
-
- // [5.2] Special functions
-
- // Implementation-space details.
- namespace __detail
- {
-
- /**
- * @brief This routine returns the confluent hypergeometric function
- * by series expansion.
- *
- * @f[
- * _1F_1(a;c;x) = \frac{\Gamma(c)}{\Gamma(a)}
- * \sum_{n=0}^{\infty}
- * \frac{\Gamma(a+n)}{\Gamma(c+n)}
- * \frac{x^n}{n!}
- * @f]
- *
- * If a and b are integers and a < 0 and either b > 0 or b < a then the
- * series is a polynomial with a finite number of terms. If b is an integer
- * and b <= 0 the confluent hypergeometric function is undefined.
- *
- * @param __a The "numerator" parameter.
- * @param __c The "denominator" parameter.
- * @param __x The argument of the confluent hypergeometric function.
- * @return The confluent hypergeometric function.
- */
- template<typename _Tp>
- _Tp
- __conf_hyperg_series(const _Tp __a, const _Tp __c, const _Tp __x)
- {
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
-
- _Tp __term = _Tp(1);
- _Tp __Fac = _Tp(1);
- const unsigned int __max_iter = 100000;
- unsigned int __i;
- for (__i = 0; __i < __max_iter; ++__i)
- {
- __term *= (__a + _Tp(__i)) * __x
- / ((__c + _Tp(__i)) * _Tp(1 + __i));
- if (std::abs(__term) < __eps)
- {
- break;
- }
- __Fac += __term;
- }
- if (__i == __max_iter)
- std::__throw_runtime_error(__N("Series failed to converge "
- "in __conf_hyperg_series."));
-
- return __Fac;
- }
-
-
- /**
- * @brief Return the hypogeometric function @f$ _2F_1(a,b;c;x) @f$
- * by an iterative procedure described in
- * Luke, Algorithms for the Computation of Mathematical Functions.
- *
- * Like the case of the 2F1 rational approximations, these are
- * probably guaranteed to converge for x < 0, barring gross
- * numerical instability in the pre-asymptotic regime.
- */
- template<typename _Tp>
- _Tp
- __conf_hyperg_luke(const _Tp __a, const _Tp __c, const _Tp __xin)
- {
- const _Tp __big = std::pow(std::numeric_limits<_Tp>::max(), _Tp(0.16L));
- const int __nmax = 20000;
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
- const _Tp __x = -__xin;
- const _Tp __x3 = __x * __x * __x;
- const _Tp __t0 = __a / __c;
- const _Tp __t1 = (__a + _Tp(1)) / (_Tp(2) * __c);
- const _Tp __t2 = (__a + _Tp(2)) / (_Tp(2) * (__c + _Tp(1)));
- _Tp __F = _Tp(1);
- _Tp __prec;
-
- _Tp __Bnm3 = _Tp(1);
- _Tp __Bnm2 = _Tp(1) + __t1 * __x;
- _Tp __Bnm1 = _Tp(1) + __t2 * __x * (_Tp(1) + __t1 / _Tp(3) * __x);
-
- _Tp __Anm3 = _Tp(1);
- _Tp __Anm2 = __Bnm2 - __t0 * __x;
- _Tp __Anm1 = __Bnm1 - __t0 * (_Tp(1) + __t2 * __x) * __x
- + __t0 * __t1 * (__c / (__c + _Tp(1))) * __x * __x;
-
- int __n = 3;
- while(1)
- {
- _Tp __npam1 = _Tp(__n - 1) + __a;
- _Tp __npcm1 = _Tp(__n - 1) + __c;
- _Tp __npam2 = _Tp(__n - 2) + __a;
- _Tp __npcm2 = _Tp(__n - 2) + __c;
- _Tp __tnm1 = _Tp(2 * __n - 1);
- _Tp __tnm3 = _Tp(2 * __n - 3);
- _Tp __tnm5 = _Tp(2 * __n - 5);
- _Tp __F1 = (_Tp(__n - 2) - __a) / (_Tp(2) * __tnm3 * __npcm1);
- _Tp __F2 = (_Tp(__n) + __a) * __npam1
- / (_Tp(4) * __tnm1 * __tnm3 * __npcm2 * __npcm1);
- _Tp __F3 = -__npam2 * __npam1 * (_Tp(__n - 2) - __a)
- / (_Tp(8) * __tnm3 * __tnm3 * __tnm5
- * (_Tp(__n - 3) + __c) * __npcm2 * __npcm1);
- _Tp __E = -__npam1 * (_Tp(__n - 1) - __c)
- / (_Tp(2) * __tnm3 * __npcm2 * __npcm1);
-
- _Tp __An = (_Tp(1) + __F1 * __x) * __Anm1
- + (__E + __F2 * __x) * __x * __Anm2 + __F3 * __x3 * __Anm3;
- _Tp __Bn = (_Tp(1) + __F1 * __x) * __Bnm1
- + (__E + __F2 * __x) * __x * __Bnm2 + __F3 * __x3 * __Bnm3;
- _Tp __r = __An / __Bn;
-
- __prec = std::abs((__F - __r) / __F);
- __F = __r;
-
- if (__prec < __eps || __n > __nmax)
- break;
-
- if (std::abs(__An) > __big || std::abs(__Bn) > __big)
- {
- __An /= __big;
- __Bn /= __big;
- __Anm1 /= __big;
- __Bnm1 /= __big;
- __Anm2 /= __big;
- __Bnm2 /= __big;
- __Anm3 /= __big;
- __Bnm3 /= __big;
- }
- else if (std::abs(__An) < _Tp(1) / __big
- || std::abs(__Bn) < _Tp(1) / __big)
- {
- __An *= __big;
- __Bn *= __big;
- __Anm1 *= __big;
- __Bnm1 *= __big;
- __Anm2 *= __big;
- __Bnm2 *= __big;
- __Anm3 *= __big;
- __Bnm3 *= __big;
- }
-
- ++__n;
- __Bnm3 = __Bnm2;
- __Bnm2 = __Bnm1;
- __Bnm1 = __Bn;
- __Anm3 = __Anm2;
- __Anm2 = __Anm1;
- __Anm1 = __An;
- }
-
- if (__n >= __nmax)
- std::__throw_runtime_error(__N("Iteration failed to converge "
- "in __conf_hyperg_luke."));
-
- return __F;
- }
-
-
- /**
- * @brief Return the confluent hypogeometric function
- * @f$ _1F_1(a;c;x) @f$.
- *
- * @todo Handle b == nonpositive integer blowup - return NaN.
- *
- * @param __a The "numerator" parameter.
- * @param __c The "denominator" parameter.
- * @param __x The argument of the confluent hypergeometric function.
- * @return The confluent hypergeometric function.
- */
- template<typename _Tp>
- inline _Tp
- __conf_hyperg(const _Tp __a, const _Tp __c, const _Tp __x)
- {
-#if _GLIBCXX_USE_C99_MATH_TR1
- const _Tp __c_nint = std::tr1::nearbyint(__c);
-#else
- const _Tp __c_nint = static_cast<int>(__c + _Tp(0.5L));
-#endif
- if (__isnan(__a) || __isnan(__c) || __isnan(__x))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (__c_nint == __c && __c_nint <= 0)
- return std::numeric_limits<_Tp>::infinity();
- else if (__a == _Tp(0))
- return _Tp(1);
- else if (__c == __a)
- return std::exp(__x);
- else if (__x < _Tp(0))
- return __conf_hyperg_luke(__a, __c, __x);
- else
- return __conf_hyperg_series(__a, __c, __x);
- }
-
-
- /**
- * @brief Return the hypogeometric function @f$ _2F_1(a,b;c;x) @f$
- * by series expansion.
- *
- * The hypogeometric function is defined by
- * @f[
- * _2F_1(a,b;c;x) = \frac{\Gamma(c)}{\Gamma(a)\Gamma(b)}
- * \sum_{n=0}^{\infty}
- * \frac{\Gamma(a+n)\Gamma(b+n)}{\Gamma(c+n)}
- * \frac{x^n}{n!}
- * @f]
- *
- * This works and it's pretty fast.
- *
- * @param __a The first "numerator" parameter.
- * @param __a The second "numerator" parameter.
- * @param __c The "denominator" parameter.
- * @param __x The argument of the confluent hypergeometric function.
- * @return The confluent hypergeometric function.
- */
- template<typename _Tp>
- _Tp
- __hyperg_series(const _Tp __a, const _Tp __b,
- const _Tp __c, const _Tp __x)
- {
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
-
- _Tp __term = _Tp(1);
- _Tp __Fabc = _Tp(1);
- const unsigned int __max_iter = 100000;
- unsigned int __i;
- for (__i = 0; __i < __max_iter; ++__i)
- {
- __term *= (__a + _Tp(__i)) * (__b + _Tp(__i)) * __x
- / ((__c + _Tp(__i)) * _Tp(1 + __i));
- if (std::abs(__term) < __eps)
- {
- break;
- }
- __Fabc += __term;
- }
- if (__i == __max_iter)
- std::__throw_runtime_error(__N("Series failed to converge "
- "in __hyperg_series."));
-
- return __Fabc;
- }
-
-
- /**
- * @brief Return the hypogeometric function @f$ _2F_1(a,b;c;x) @f$
- * by an iterative procedure described in
- * Luke, Algorithms for the Computation of Mathematical Functions.
- */
- template<typename _Tp>
- _Tp
- __hyperg_luke(const _Tp __a, const _Tp __b, const _Tp __c,
- const _Tp __xin)
- {
- const _Tp __big = std::pow(std::numeric_limits<_Tp>::max(), _Tp(0.16L));
- const int __nmax = 20000;
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
- const _Tp __x = -__xin;
- const _Tp __x3 = __x * __x * __x;
- const _Tp __t0 = __a * __b / __c;
- const _Tp __t1 = (__a + _Tp(1)) * (__b + _Tp(1)) / (_Tp(2) * __c);
- const _Tp __t2 = (__a + _Tp(2)) * (__b + _Tp(2))
- / (_Tp(2) * (__c + _Tp(1)));
-
- _Tp __F = _Tp(1);
-
- _Tp __Bnm3 = _Tp(1);
- _Tp __Bnm2 = _Tp(1) + __t1 * __x;
- _Tp __Bnm1 = _Tp(1) + __t2 * __x * (_Tp(1) + __t1 / _Tp(3) * __x);
-
- _Tp __Anm3 = _Tp(1);
- _Tp __Anm2 = __Bnm2 - __t0 * __x;
- _Tp __Anm1 = __Bnm1 - __t0 * (_Tp(1) + __t2 * __x) * __x
- + __t0 * __t1 * (__c / (__c + _Tp(1))) * __x * __x;
-
- int __n = 3;
- while (1)
- {
- const _Tp __npam1 = _Tp(__n - 1) + __a;
- const _Tp __npbm1 = _Tp(__n - 1) + __b;
- const _Tp __npcm1 = _Tp(__n - 1) + __c;
- const _Tp __npam2 = _Tp(__n - 2) + __a;
- const _Tp __npbm2 = _Tp(__n - 2) + __b;
- const _Tp __npcm2 = _Tp(__n - 2) + __c;
- const _Tp __tnm1 = _Tp(2 * __n - 1);
- const _Tp __tnm3 = _Tp(2 * __n - 3);
- const _Tp __tnm5 = _Tp(2 * __n - 5);
- const _Tp __n2 = __n * __n;
- const _Tp __F1 = (_Tp(3) * __n2 + (__a + __b - _Tp(6)) * __n
- + _Tp(2) - __a * __b - _Tp(2) * (__a + __b))
- / (_Tp(2) * __tnm3 * __npcm1);
- const _Tp __F2 = -(_Tp(3) * __n2 - (__a + __b + _Tp(6)) * __n
- + _Tp(2) - __a * __b) * __npam1 * __npbm1
- / (_Tp(4) * __tnm1 * __tnm3 * __npcm2 * __npcm1);
- const _Tp __F3 = (__npam2 * __npam1 * __npbm2 * __npbm1
- * (_Tp(__n - 2) - __a) * (_Tp(__n - 2) - __b))
- / (_Tp(8) * __tnm3 * __tnm3 * __tnm5
- * (_Tp(__n - 3) + __c) * __npcm2 * __npcm1);
- const _Tp __E = -__npam1 * __npbm1 * (_Tp(__n - 1) - __c)
- / (_Tp(2) * __tnm3 * __npcm2 * __npcm1);
-
- _Tp __An = (_Tp(1) + __F1 * __x) * __Anm1
- + (__E + __F2 * __x) * __x * __Anm2 + __F3 * __x3 * __Anm3;
- _Tp __Bn = (_Tp(1) + __F1 * __x) * __Bnm1
- + (__E + __F2 * __x) * __x * __Bnm2 + __F3 * __x3 * __Bnm3;
- const _Tp __r = __An / __Bn;
-
- const _Tp __prec = std::abs((__F - __r) / __F);
- __F = __r;
-
- if (__prec < __eps || __n > __nmax)
- break;
-
- if (std::abs(__An) > __big || std::abs(__Bn) > __big)
- {
- __An /= __big;
- __Bn /= __big;
- __Anm1 /= __big;
- __Bnm1 /= __big;
- __Anm2 /= __big;
- __Bnm2 /= __big;
- __Anm3 /= __big;
- __Bnm3 /= __big;
- }
- else if (std::abs(__An) < _Tp(1) / __big
- || std::abs(__Bn) < _Tp(1) / __big)
- {
- __An *= __big;
- __Bn *= __big;
- __Anm1 *= __big;
- __Bnm1 *= __big;
- __Anm2 *= __big;
- __Bnm2 *= __big;
- __Anm3 *= __big;
- __Bnm3 *= __big;
- }
-
- ++__n;
- __Bnm3 = __Bnm2;
- __Bnm2 = __Bnm1;
- __Bnm1 = __Bn;
- __Anm3 = __Anm2;
- __Anm2 = __Anm1;
- __Anm1 = __An;
- }
-
- if (__n >= __nmax)
- std::__throw_runtime_error(__N("Iteration failed to converge "
- "in __hyperg_luke."));
-
- return __F;
- }
-
-
- /**
- * @brief Return the hypogeometric function @f$ _2F_1(a,b;c;x) @f$ by the reflection
- * formulae in Abramowitz & Stegun formula 15.3.6 for d = c - a - b not integral
- * and formula 15.3.11 for d = c - a - b integral.
- * This assumes a, b, c != negative integer.
- *
- * The hypogeometric function is defined by
- * @f[
- * _2F_1(a,b;c;x) = \frac{\Gamma(c)}{\Gamma(a)\Gamma(b)}
- * \sum_{n=0}^{\infty}
- * \frac{\Gamma(a+n)\Gamma(b+n)}{\Gamma(c+n)}
- * \frac{x^n}{n!}
- * @f]
- *
- * The reflection formula for nonintegral @f$ d = c - a - b @f$ is:
- * @f[
- * _2F_1(a,b;c;x) = \frac{\Gamma(c)\Gamma(d)}{\Gamma(c-a)\Gamma(c-b)}
- * _2F_1(a,b;1-d;1-x)
- * + \frac{\Gamma(c)\Gamma(-d)}{\Gamma(a)\Gamma(b)}
- * _2F_1(c-a,c-b;1+d;1-x)
- * @f]
- *
- * The reflection formula for integral @f$ m = c - a - b @f$ is:
- * @f[
- * _2F_1(a,b;a+b+m;x) = \frac{\Gamma(m)\Gamma(a+b+m)}{\Gamma(a+m)\Gamma(b+m)}
- * \sum_{k=0}^{m-1} \frac{(m+a)_k(m+b)_k}{k!(1-m)_k}
- * -
- * @f]
- */
- template<typename _Tp>
- _Tp
- __hyperg_reflect(const _Tp __a, const _Tp __b, const _Tp __c,
- const _Tp __x)
- {
- const _Tp __d = __c - __a - __b;
- const int __intd = std::floor(__d + _Tp(0.5L));
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
- const _Tp __toler = _Tp(1000) * __eps;
- const _Tp __log_max = std::log(std::numeric_limits<_Tp>::max());
- const bool __d_integer = (std::abs(__d - __intd) < __toler);
-
- if (__d_integer)
- {
- const _Tp __ln_omx = std::log(_Tp(1) - __x);
- const _Tp __ad = std::abs(__d);
- _Tp __F1, __F2;
-
- _Tp __d1, __d2;
- if (__d >= _Tp(0))
- {
- __d1 = __d;
- __d2 = _Tp(0);
- }
- else
- {
- __d1 = _Tp(0);
- __d2 = __d;
- }
-
- const _Tp __lng_c = __log_gamma(__c);
-
- // Evaluate F1.
- if (__ad < __eps)
- {
- // d = c - a - b = 0.
- __F1 = _Tp(0);
- }
- else
- {
-
- bool __ok_d1 = true;
- _Tp __lng_ad, __lng_ad1, __lng_bd1;
- __try
- {
- __lng_ad = __log_gamma(__ad);
- __lng_ad1 = __log_gamma(__a + __d1);
- __lng_bd1 = __log_gamma(__b + __d1);
- }
- __catch(...)
- {
- __ok_d1 = false;
- }
-
- if (__ok_d1)
- {
- /* Gamma functions in the denominator are ok.
- * Proceed with evaluation.
- */
- _Tp __sum1 = _Tp(1);
- _Tp __term = _Tp(1);
- _Tp __ln_pre1 = __lng_ad + __lng_c + __d2 * __ln_omx
- - __lng_ad1 - __lng_bd1;
-
- /* Do F1 sum.
- */
- for (int __i = 1; __i < __ad; ++__i)
- {
- const int __j = __i - 1;
- __term *= (__a + __d2 + __j) * (__b + __d2 + __j)
- / (_Tp(1) + __d2 + __j) / __i * (_Tp(1) - __x);
- __sum1 += __term;
- }
-
- if (__ln_pre1 > __log_max)
- std::__throw_runtime_error(__N("Overflow of gamma functions "
- "in __hyperg_luke."));
- else
- __F1 = std::exp(__ln_pre1) * __sum1;
- }
- else
- {
- // Gamma functions in the denominator were not ok.
- // So the F1 term is zero.
- __F1 = _Tp(0);
- }
- } // end F1 evaluation
-
- // Evaluate F2.
- bool __ok_d2 = true;
- _Tp __lng_ad2, __lng_bd2;
- __try
- {
- __lng_ad2 = __log_gamma(__a + __d2);
- __lng_bd2 = __log_gamma(__b + __d2);
- }
- __catch(...)
- {
- __ok_d2 = false;
- }
-
- if (__ok_d2)
- {
- // Gamma functions in the denominator are ok.
- // Proceed with evaluation.
- const int __maxiter = 2000;
- const _Tp __psi_1 = -__numeric_constants<_Tp>::__gamma_e();
- const _Tp __psi_1pd = __psi(_Tp(1) + __ad);
- const _Tp __psi_apd1 = __psi(__a + __d1);
- const _Tp __psi_bpd1 = __psi(__b + __d1);
-
- _Tp __psi_term = __psi_1 + __psi_1pd - __psi_apd1
- - __psi_bpd1 - __ln_omx;
- _Tp __fact = _Tp(1);
- _Tp __sum2 = __psi_term;
- _Tp __ln_pre2 = __lng_c + __d1 * __ln_omx
- - __lng_ad2 - __lng_bd2;
-
- // Do F2 sum.
- int __j;
- for (__j = 1; __j < __maxiter; ++__j)
- {
- // Values for psi functions use recurrence; Abramowitz & Stegun 6.3.5
- const _Tp __term1 = _Tp(1) / _Tp(__j)
- + _Tp(1) / (__ad + __j);
- const _Tp __term2 = _Tp(1) / (__a + __d1 + _Tp(__j - 1))
- + _Tp(1) / (__b + __d1 + _Tp(__j - 1));
- __psi_term += __term1 - __term2;
- __fact *= (__a + __d1 + _Tp(__j - 1))
- * (__b + __d1 + _Tp(__j - 1))
- / ((__ad + __j) * __j) * (_Tp(1) - __x);
- const _Tp __delta = __fact * __psi_term;
- __sum2 += __delta;
- if (std::abs(__delta) < __eps * std::abs(__sum2))
- break;
- }
- if (__j == __maxiter)
- std::__throw_runtime_error(__N("Sum F2 failed to converge "
- "in __hyperg_reflect"));
-
- if (__sum2 == _Tp(0))
- __F2 = _Tp(0);
- else
- __F2 = std::exp(__ln_pre2) * __sum2;
- }
- else
- {
- // Gamma functions in the denominator not ok.
- // So the F2 term is zero.
- __F2 = _Tp(0);
- } // end F2 evaluation
-
- const _Tp __sgn_2 = (__intd % 2 == 1 ? -_Tp(1) : _Tp(1));
- const _Tp __F = __F1 + __sgn_2 * __F2;
-
- return __F;
- }
- else
- {
- // d = c - a - b not an integer.
-
- // These gamma functions appear in the denominator, so we
- // catch their harmless domain errors and set the terms to zero.
- bool __ok1 = true;
- _Tp __sgn_g1ca = _Tp(0), __ln_g1ca = _Tp(0);
- _Tp __sgn_g1cb = _Tp(0), __ln_g1cb = _Tp(0);
- __try
- {
- __sgn_g1ca = __log_gamma_sign(__c - __a);
- __ln_g1ca = __log_gamma(__c - __a);
- __sgn_g1cb = __log_gamma_sign(__c - __b);
- __ln_g1cb = __log_gamma(__c - __b);
- }
- __catch(...)
- {
- __ok1 = false;
- }
-
- bool __ok2 = true;
- _Tp __sgn_g2a = _Tp(0), __ln_g2a = _Tp(0);
- _Tp __sgn_g2b = _Tp(0), __ln_g2b = _Tp(0);
- __try
- {
- __sgn_g2a = __log_gamma_sign(__a);
- __ln_g2a = __log_gamma(__a);
- __sgn_g2b = __log_gamma_sign(__b);
- __ln_g2b = __log_gamma(__b);
- }
- __catch(...)
- {
- __ok2 = false;
- }
-
- const _Tp __sgn_gc = __log_gamma_sign(__c);
- const _Tp __ln_gc = __log_gamma(__c);
- const _Tp __sgn_gd = __log_gamma_sign(__d);
- const _Tp __ln_gd = __log_gamma(__d);
- const _Tp __sgn_gmd = __log_gamma_sign(-__d);
- const _Tp __ln_gmd = __log_gamma(-__d);
-
- const _Tp __sgn1 = __sgn_gc * __sgn_gd * __sgn_g1ca * __sgn_g1cb;
- const _Tp __sgn2 = __sgn_gc * __sgn_gmd * __sgn_g2a * __sgn_g2b;
-
- _Tp __pre1, __pre2;
- if (__ok1 && __ok2)
- {
- _Tp __ln_pre1 = __ln_gc + __ln_gd - __ln_g1ca - __ln_g1cb;
- _Tp __ln_pre2 = __ln_gc + __ln_gmd - __ln_g2a - __ln_g2b
- + __d * std::log(_Tp(1) - __x);
- if (__ln_pre1 < __log_max && __ln_pre2 < __log_max)
- {
- __pre1 = std::exp(__ln_pre1);
- __pre2 = std::exp(__ln_pre2);
- __pre1 *= __sgn1;
- __pre2 *= __sgn2;
- }
- else
- {
- std::__throw_runtime_error(__N("Overflow of gamma functions "
- "in __hyperg_reflect"));
- }
- }
- else if (__ok1 && !__ok2)
- {
- _Tp __ln_pre1 = __ln_gc + __ln_gd - __ln_g1ca - __ln_g1cb;
- if (__ln_pre1 < __log_max)
- {
- __pre1 = std::exp(__ln_pre1);
- __pre1 *= __sgn1;
- __pre2 = _Tp(0);
- }
- else
- {
- std::__throw_runtime_error(__N("Overflow of gamma functions "
- "in __hyperg_reflect"));
- }
- }
- else if (!__ok1 && __ok2)
- {
- _Tp __ln_pre2 = __ln_gc + __ln_gmd - __ln_g2a - __ln_g2b
- + __d * std::log(_Tp(1) - __x);
- if (__ln_pre2 < __log_max)
- {
- __pre1 = _Tp(0);
- __pre2 = std::exp(__ln_pre2);
- __pre2 *= __sgn2;
- }
- else
- {
- std::__throw_runtime_error(__N("Overflow of gamma functions "
- "in __hyperg_reflect"));
- }
- }
- else
- {
- __pre1 = _Tp(0);
- __pre2 = _Tp(0);
- std::__throw_runtime_error(__N("Underflow of gamma functions "
- "in __hyperg_reflect"));
- }
-
- const _Tp __F1 = __hyperg_series(__a, __b, _Tp(1) - __d,
- _Tp(1) - __x);
- const _Tp __F2 = __hyperg_series(__c - __a, __c - __b, _Tp(1) + __d,
- _Tp(1) - __x);
-
- const _Tp __F = __pre1 * __F1 + __pre2 * __F2;
-
- return __F;
- }
- }
-
-
- /**
- * @brief Return the hypogeometric function @f$ _2F_1(a,b;c;x) @f$.
- *
- * The hypogeometric function is defined by
- * @f[
- * _2F_1(a,b;c;x) = \frac{\Gamma(c)}{\Gamma(a)\Gamma(b)}
- * \sum_{n=0}^{\infty}
- * \frac{\Gamma(a+n)\Gamma(b+n)}{\Gamma(c+n)}
- * \frac{x^n}{n!}
- * @f]
- *
- * @param __a The first "numerator" parameter.
- * @param __a The second "numerator" parameter.
- * @param __c The "denominator" parameter.
- * @param __x The argument of the confluent hypergeometric function.
- * @return The confluent hypergeometric function.
- */
- template<typename _Tp>
- inline _Tp
- __hyperg(const _Tp __a, const _Tp __b, const _Tp __c, const _Tp __x)
- {
-#if _GLIBCXX_USE_C99_MATH_TR1
- const _Tp __a_nint = std::tr1::nearbyint(__a);
- const _Tp __b_nint = std::tr1::nearbyint(__b);
- const _Tp __c_nint = std::tr1::nearbyint(__c);
-#else
- const _Tp __a_nint = static_cast<int>(__a + _Tp(0.5L));
- const _Tp __b_nint = static_cast<int>(__b + _Tp(0.5L));
- const _Tp __c_nint = static_cast<int>(__c + _Tp(0.5L));
-#endif
- const _Tp __toler = _Tp(1000) * std::numeric_limits<_Tp>::epsilon();
- if (std::abs(__x) >= _Tp(1))
- std::__throw_domain_error(__N("Argument outside unit circle "
- "in __hyperg."));
- else if (__isnan(__a) || __isnan(__b)
- || __isnan(__c) || __isnan(__x))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (__c_nint == __c && __c_nint <= _Tp(0))
- return std::numeric_limits<_Tp>::infinity();
- else if (std::abs(__c - __b) < __toler || std::abs(__c - __a) < __toler)
- return std::pow(_Tp(1) - __x, __c - __a - __b);
- else if (__a >= _Tp(0) && __b >= _Tp(0) && __c >= _Tp(0)
- && __x >= _Tp(0) && __x < _Tp(0.995L))
- return __hyperg_series(__a, __b, __c, __x);
- else if (std::abs(__a) < _Tp(10) && std::abs(__b) < _Tp(10))
- {
- // For integer a and b the hypergeometric function is a finite polynomial.
- if (__a < _Tp(0) && std::abs(__a - __a_nint) < __toler)
- return __hyperg_series(__a_nint, __b, __c, __x);
- else if (__b < _Tp(0) && std::abs(__b - __b_nint) < __toler)
- return __hyperg_series(__a, __b_nint, __c, __x);
- else if (__x < -_Tp(0.25L))
- return __hyperg_luke(__a, __b, __c, __x);
- else if (__x < _Tp(0.5L))
- return __hyperg_series(__a, __b, __c, __x);
- else
- if (std::abs(__c) > _Tp(10))
- return __hyperg_series(__a, __b, __c, __x);
- else
- return __hyperg_reflect(__a, __b, __c, __x);
- }
- else
- return __hyperg_luke(__a, __b, __c, __x);
- }
-
- } // namespace std::tr1::__detail
-}
-}
-
-#endif // _GLIBCXX_TR1_HYPERGEOMETRIC_TCC
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/inttypes.h b/gcc-4.4.3/libstdc++-v3/include/tr1/inttypes.h
deleted file mode 100644
index 4c8fd45d8..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/inttypes.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 inttypes.h -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/inttypes.h
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_INTTYPES_H
-#define _GLIBCXX_TR1_INTTYPES_H 1
-
-#include <tr1/cinttypes>
-
-#endif // _GLIBCXX_TR1_INTTYPES_H
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/legendre_function.tcc b/gcc-4.4.3/libstdc++-v3/include/tr1/legendre_function.tcc
deleted file mode 100644
index 8b59814da..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/legendre_function.tcc
+++ /dev/null
@@ -1,305 +0,0 @@
-// Special functions -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/legendre_function.tcc
- * This is an internal header file, included by other library headers.
- * You should not attempt to use it directly.
- */
-
-//
-// ISO C++ 14882 TR1: 5.2 Special functions
-//
-
-// Written by Edward Smith-Rowland based on:
-// (1) Handbook of Mathematical Functions,
-// ed. Milton Abramowitz and Irene A. Stegun,
-// Dover Publications,
-// Section 8, pp. 331-341
-// (2) The Gnu Scientific Library, http://www.gnu.org/software/gsl
-// (3) Numerical Recipes in C, by W. H. Press, S. A. Teukolsky,
-// W. T. Vetterling, B. P. Flannery, Cambridge University Press (1992),
-// 2nd ed, pp. 252-254
-
-#ifndef _GLIBCXX_TR1_LEGENDRE_FUNCTION_TCC
-#define _GLIBCXX_TR1_LEGENDRE_FUNCTION_TCC 1
-
-#include "special_function_util.h"
-
-namespace std
-{
-namespace tr1
-{
-
- // [5.2] Special functions
-
- // Implementation-space details.
- namespace __detail
- {
-
- /**
- * @brief Return the Legendre polynomial by recursion on order
- * @f$ l @f$.
- *
- * The Legendre function of @f$ l @f$ and @f$ x @f$,
- * @f$ P_l(x) @f$, is defined by:
- * @f[
- * P_l(x) = \frac{1}{2^l l!}\frac{d^l}{dx^l}(x^2 - 1)^{l}
- * @f]
- *
- * @param l The order of the Legendre polynomial. @f$l >= 0@f$.
- * @param x The argument of the Legendre polynomial. @f$|x| <= 1@f$.
- */
- template<typename _Tp>
- _Tp
- __poly_legendre_p(const unsigned int __l, const _Tp __x)
- {
-
- if ((__x < _Tp(-1)) || (__x > _Tp(+1)))
- std::__throw_domain_error(__N("Argument out of range"
- " in __poly_legendre_p."));
- else if (__isnan(__x))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (__x == +_Tp(1))
- return +_Tp(1);
- else if (__x == -_Tp(1))
- return (__l % 2 == 1 ? -_Tp(1) : +_Tp(1));
- else
- {
- _Tp __p_lm2 = _Tp(1);
- if (__l == 0)
- return __p_lm2;
-
- _Tp __p_lm1 = __x;
- if (__l == 1)
- return __p_lm1;
-
- _Tp __p_l = 0;
- for (unsigned int __ll = 2; __ll <= __l; ++__ll)
- {
- // This arrangement is supposed to be better for roundoff
- // protection, Arfken, 2nd Ed, Eq 12.17a.
- __p_l = _Tp(2) * __x * __p_lm1 - __p_lm2
- - (__x * __p_lm1 - __p_lm2) / _Tp(__ll);
- __p_lm2 = __p_lm1;
- __p_lm1 = __p_l;
- }
-
- return __p_l;
- }
- }
-
-
- /**
- * @brief Return the associated Legendre function by recursion
- * on @f$ l @f$.
- *
- * The associated Legendre function is derived from the Legendre function
- * @f$ P_l(x) @f$ by the Rodrigues formula:
- * @f[
- * P_l^m(x) = (1 - x^2)^{m/2}\frac{d^m}{dx^m}P_l(x)
- * @f]
- *
- * @param l The order of the associated Legendre function.
- * @f$ l >= 0 @f$.
- * @param m The order of the associated Legendre function.
- * @f$ m <= l @f$.
- * @param x The argument of the associated Legendre function.
- * @f$ |x| <= 1 @f$.
- */
- template<typename _Tp>
- _Tp
- __assoc_legendre_p(const unsigned int __l, const unsigned int __m,
- const _Tp __x)
- {
-
- if (__x < _Tp(-1) || __x > _Tp(+1))
- std::__throw_domain_error(__N("Argument out of range"
- " in __assoc_legendre_p."));
- else if (__m > __l)
- std::__throw_domain_error(__N("Degree out of range"
- " in __assoc_legendre_p."));
- else if (__isnan(__x))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (__m == 0)
- return __poly_legendre_p(__l, __x);
- else
- {
- _Tp __p_mm = _Tp(1);
- if (__m > 0)
- {
- // Two square roots seem more accurate more of the time
- // than just one.
- _Tp __root = std::sqrt(_Tp(1) - __x) * std::sqrt(_Tp(1) + __x);
- _Tp __fact = _Tp(1);
- for (unsigned int __i = 1; __i <= __m; ++__i)
- {
- __p_mm *= -__fact * __root;
- __fact += _Tp(2);
- }
- }
- if (__l == __m)
- return __p_mm;
-
- _Tp __p_mp1m = _Tp(2 * __m + 1) * __x * __p_mm;
- if (__l == __m + 1)
- return __p_mp1m;
-
- _Tp __p_lm2m = __p_mm;
- _Tp __P_lm1m = __p_mp1m;
- _Tp __p_lm = _Tp(0);
- for (unsigned int __j = __m + 2; __j <= __l; ++__j)
- {
- __p_lm = (_Tp(2 * __j - 1) * __x * __P_lm1m
- - _Tp(__j + __m - 1) * __p_lm2m) / _Tp(__j - __m);
- __p_lm2m = __P_lm1m;
- __P_lm1m = __p_lm;
- }
-
- return __p_lm;
- }
- }
-
-
- /**
- * @brief Return the spherical associated Legendre function.
- *
- * The spherical associated Legendre function of @f$ l @f$, @f$ m @f$,
- * and @f$ \theta @f$ is defined as @f$ Y_l^m(\theta,0) @f$ where
- * @f[
- * Y_l^m(\theta,\phi) = (-1)^m[\frac{(2l+1)}{4\pi}
- * \frac{(l-m)!}{(l+m)!}]
- * P_l^m(\cos\theta) \exp^{im\phi}
- * @f]
- * is the spherical harmonic function and @f$ P_l^m(x) @f$ is the
- * associated Legendre function.
- *
- * This function differs from the associated Legendre function by
- * argument (@f$x = \cos(\theta)@f$) and by a normalization factor
- * but this factor is rather large for large @f$ l @f$ and @f$ m @f$
- * and so this function is stable for larger differences of @f$ l @f$
- * and @f$ m @f$.
- *
- * @param l The order of the spherical associated Legendre function.
- * @f$ l >= 0 @f$.
- * @param m The order of the spherical associated Legendre function.
- * @f$ m <= l @f$.
- * @param theta The radian angle argument of the spherical associated
- * Legendre function.
- */
- template <typename _Tp>
- _Tp
- __sph_legendre(const unsigned int __l, const unsigned int __m,
- const _Tp __theta)
- {
- if (__isnan(__theta))
- return std::numeric_limits<_Tp>::quiet_NaN();
-
- const _Tp __x = std::cos(__theta);
-
- if (__l < __m)
- {
- std::__throw_domain_error(__N("Bad argument "
- "in __sph_legendre."));
- }
- else if (__m == 0)
- {
- _Tp __P = __poly_legendre_p(__l, __x);
- _Tp __fact = std::sqrt(_Tp(2 * __l + 1)
- / (_Tp(4) * __numeric_constants<_Tp>::__pi()));
- __P *= __fact;
- return __P;
- }
- else if (__x == _Tp(1) || __x == -_Tp(1))
- {
- // m > 0 here
- return _Tp(0);
- }
- else
- {
- // m > 0 and |x| < 1 here
-
- // Starting value for recursion.
- // Y_m^m(x) = sqrt( (2m+1)/(4pi m) gamma(m+1/2)/gamma(m) )
- // (-1)^m (1-x^2)^(m/2) / pi^(1/4)
- const _Tp __sgn = ( __m % 2 == 1 ? -_Tp(1) : _Tp(1));
- const _Tp __y_mp1m_factor = __x * std::sqrt(_Tp(2 * __m + 3));
-#if _GLIBCXX_USE_C99_MATH_TR1
- const _Tp __lncirc = std::tr1::log1p(-__x * __x);
-#else
- const _Tp __lncirc = std::log(_Tp(1) - __x * __x);
-#endif
- // Gamma(m+1/2) / Gamma(m)
-#if _GLIBCXX_USE_C99_MATH_TR1
- const _Tp __lnpoch = std::tr1::lgamma(_Tp(__m + _Tp(0.5L)))
- - std::tr1::lgamma(_Tp(__m));
-#else
- const _Tp __lnpoch = __log_gamma(_Tp(__m + _Tp(0.5L)))
- - __log_gamma(_Tp(__m));
-#endif
- const _Tp __lnpre_val =
- -_Tp(0.25L) * __numeric_constants<_Tp>::__lnpi()
- + _Tp(0.5L) * (__lnpoch + __m * __lncirc);
- _Tp __sr = std::sqrt((_Tp(2) + _Tp(1) / __m)
- / (_Tp(4) * __numeric_constants<_Tp>::__pi()));
- _Tp __y_mm = __sgn * __sr * std::exp(__lnpre_val);
- _Tp __y_mp1m = __y_mp1m_factor * __y_mm;
-
- if (__l == __m)
- {
- return __y_mm;
- }
- else if (__l == __m + 1)
- {
- return __y_mp1m;
- }
- else
- {
- _Tp __y_lm = _Tp(0);
-
- // Compute Y_l^m, l > m+1, upward recursion on l.
- for ( int __ll = __m + 2; __ll <= __l; ++__ll)
- {
- const _Tp __rat1 = _Tp(__ll - __m) / _Tp(__ll + __m);
- const _Tp __rat2 = _Tp(__ll - __m - 1) / _Tp(__ll + __m - 1);
- const _Tp __fact1 = std::sqrt(__rat1 * _Tp(2 * __ll + 1)
- * _Tp(2 * __ll - 1));
- const _Tp __fact2 = std::sqrt(__rat1 * __rat2 * _Tp(2 * __ll + 1)
- / _Tp(2 * __ll - 3));
- __y_lm = (__x * __y_mp1m * __fact1
- - (__ll + __m - 1) * __y_mm * __fact2) / _Tp(__ll - __m);
- __y_mm = __y_mp1m;
- __y_mp1m = __y_lm;
- }
-
- return __y_lm;
- }
- }
- }
-
- } // namespace std::tr1::__detail
-}
-}
-
-#endif // _GLIBCXX_TR1_LEGENDRE_FUNCTION_TCC
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/limits.h b/gcc-4.4.3/libstdc++-v3/include/tr1/limits.h
deleted file mode 100644
index d95d360fd..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/limits.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 limits.h -*- C++ -*-
-
-// Copyright (C) 2006, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/limits.h
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _TR1_LIMITS_H
-#define _TR1_LIMITS_H 1
-
-#include <tr1/climits>
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/math.h b/gcc-4.4.3/libstdc++-v3/include/tr1/math.h
deleted file mode 100644
index 15d6d6419..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/math.h
+++ /dev/null
@@ -1,186 +0,0 @@
-// TR1 math.h -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/math.h
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_MATH_H
-#define _GLIBCXX_TR1_MATH_H 1
-
-#include <tr1/cmath>
-
-#if _GLIBCXX_USE_C99_MATH_TR1
-
-using std::tr1::acos;
-using std::tr1::acosh;
-using std::tr1::asin;
-using std::tr1::asinh;
-using std::tr1::atan;
-using std::tr1::atan2;
-using std::tr1::atanh;
-using std::tr1::cbrt;
-using std::tr1::ceil;
-using std::tr1::copysign;
-using std::tr1::cos;
-using std::tr1::cosh;
-using std::tr1::erf;
-using std::tr1::erfc;
-using std::tr1::exp;
-using std::tr1::exp2;
-using std::tr1::expm1;
-using std::tr1::fabs;
-using std::tr1::fdim;
-using std::tr1::floor;
-using std::tr1::fma;
-using std::tr1::fmax;
-using std::tr1::fmin;
-using std::tr1::fmod;
-using std::tr1::frexp;
-using std::tr1::hypot;
-using std::tr1::ilogb;
-using std::tr1::ldexp;
-using std::tr1::lgamma;
-using std::tr1::llrint;
-using std::tr1::llround;
-using std::tr1::log;
-using std::tr1::log10;
-using std::tr1::log1p;
-using std::tr1::log2;
-using std::tr1::logb;
-using std::tr1::lrint;
-using std::tr1::lround;
-using std::tr1::nearbyint;
-using std::tr1::nextafter;
-using std::tr1::nexttoward;
-using std::tr1::pow;
-using std::tr1::remainder;
-using std::tr1::remquo;
-using std::tr1::rint;
-using std::tr1::round;
-using std::tr1::scalbln;
-using std::tr1::scalbn;
-using std::tr1::sin;
-using std::tr1::sinh;
-using std::tr1::sqrt;
-using std::tr1::tan;
-using std::tr1::tanh;
-using std::tr1::tgamma;
-using std::tr1::trunc;
-
-#endif
-
-using std::tr1::assoc_laguerref;
-using std::tr1::assoc_laguerre;
-using std::tr1::assoc_laguerrel;
-
-using std::tr1::assoc_legendref;
-using std::tr1::assoc_legendre;
-using std::tr1::assoc_legendrel;
-
-using std::tr1::betaf;
-using std::tr1::beta;
-using std::tr1::betal;
-
-using std::tr1::comp_ellint_1f;
-using std::tr1::comp_ellint_1;
-using std::tr1::comp_ellint_1l;
-
-using std::tr1::comp_ellint_2f;
-using std::tr1::comp_ellint_2;
-using std::tr1::comp_ellint_2l;
-
-using std::tr1::comp_ellint_3f;
-using std::tr1::comp_ellint_3;
-using std::tr1::comp_ellint_3l;
-
-using std::tr1::conf_hypergf;
-using std::tr1::conf_hyperg;
-using std::tr1::conf_hypergl;
-
-using std::tr1::cyl_bessel_if;
-using std::tr1::cyl_bessel_i;
-using std::tr1::cyl_bessel_il;
-
-using std::tr1::cyl_bessel_jf;
-using std::tr1::cyl_bessel_j;
-using std::tr1::cyl_bessel_jl;
-
-using std::tr1::cyl_bessel_kf;
-using std::tr1::cyl_bessel_k;
-using std::tr1::cyl_bessel_kl;
-
-using std::tr1::cyl_neumannf;
-using std::tr1::cyl_neumann;
-using std::tr1::cyl_neumannl;
-
-using std::tr1::ellint_1f;
-using std::tr1::ellint_1;
-using std::tr1::ellint_1l;
-
-using std::tr1::ellint_2f;
-using std::tr1::ellint_2;
-using std::tr1::ellint_2l;
-
-using std::tr1::ellint_3f;
-using std::tr1::ellint_3;
-using std::tr1::ellint_3l;
-
-using std::tr1::expintf;
-using std::tr1::expint;
-using std::tr1::expintl;
-
-using std::tr1::hermitef;
-using std::tr1::hermite;
-using std::tr1::hermitel;
-
-using std::tr1::hypergf;
-using std::tr1::hyperg;
-using std::tr1::hypergl;
-
-using std::tr1::laguerref;
-using std::tr1::laguerre;
-using std::tr1::laguerrel;
-
-using std::tr1::legendref;
-using std::tr1::legendre;
-using std::tr1::legendrel;
-
-using std::tr1::riemann_zetaf;
-using std::tr1::riemann_zeta;
-using std::tr1::riemann_zetal;
-
-using std::tr1::sph_besself;
-using std::tr1::sph_bessel;
-using std::tr1::sph_bessell;
-
-using std::tr1::sph_legendref;
-using std::tr1::sph_legendre;
-using std::tr1::sph_legendrel;
-
-using std::tr1::sph_neumannf;
-using std::tr1::sph_neumann;
-using std::tr1::sph_neumannl;
-
-#endif // _GLIBCXX_TR1_MATH_H
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/memory b/gcc-4.4.3/libstdc++-v3/include/tr1/memory
deleted file mode 100644
index 8b021a1b1..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/memory
+++ /dev/null
@@ -1,67 +0,0 @@
-// <tr1/memory> -*- C++ -*-
-
-// Copyright (C) 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/**
- * @file tr1/memory
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_MEMORY
-#define _GLIBCXX_TR1_MEMORY 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <memory>
-#include <exception> // std::exception
-#include <typeinfo> // std::type_info in get_deleter
-#include <bits/stl_algobase.h> // std::swap
-#include <iosfwd> // std::basic_ostream
-#include <ext/atomicity.h>
-#include <ext/concurrence.h>
-#include <bits/functexcept.h>
-#include <bits/stl_function.h> // std::less
-#include <debug/debug.h>
-#include <tr1/type_traits>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/boost_sp_counted_base.h>
-# include <tr1/shared_ptr.h>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/boost_sp_counted_base.h>
-# include <tr1/shared_ptr.h>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_MEMORY
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/modified_bessel_func.tcc b/gcc-4.4.3/libstdc++-v3/include/tr1/modified_bessel_func.tcc
deleted file mode 100644
index 7b8aebc3b..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/modified_bessel_func.tcc
+++ /dev/null
@@ -1,436 +0,0 @@
-// Special functions -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/modified_bessel_func.tcc
- * This is an internal header file, included by other library headers.
- * You should not attempt to use it directly.
- */
-
-//
-// ISO C++ 14882 TR1: 5.2 Special functions
-//
-
-// Written by Edward Smith-Rowland.
-//
-// References:
-// (1) Handbook of Mathematical Functions,
-// Ed. Milton Abramowitz and Irene A. Stegun,
-// Dover Publications,
-// Section 9, pp. 355-434, Section 10 pp. 435-478
-// (2) The Gnu Scientific Library, http://www.gnu.org/software/gsl
-// (3) Numerical Recipes in C, by W. H. Press, S. A. Teukolsky,
-// W. T. Vetterling, B. P. Flannery, Cambridge University Press (1992),
-// 2nd ed, pp. 246-249.
-
-#ifndef _GLIBCXX_TR1_MODIFIED_BESSEL_FUNC_TCC
-#define _GLIBCXX_TR1_MODIFIED_BESSEL_FUNC_TCC 1
-
-#include "special_function_util.h"
-
-namespace std
-{
-namespace tr1
-{
-
- // [5.2] Special functions
-
- // Implementation-space details.
- namespace __detail
- {
-
- /**
- * @brief Compute the modified Bessel functions @f$ I_\nu(x) @f$ and
- * @f$ K_\nu(x) @f$ and their first derivatives
- * @f$ I'_\nu(x) @f$ and @f$ K'_\nu(x) @f$ respectively.
- * These four functions are computed together for numerical
- * stability.
- *
- * @param __nu The order of the Bessel functions.
- * @param __x The argument of the Bessel functions.
- * @param __Inu The output regular modified Bessel function.
- * @param __Knu The output irregular modified Bessel function.
- * @param __Ipnu The output derivative of the regular
- * modified Bessel function.
- * @param __Kpnu The output derivative of the irregular
- * modified Bessel function.
- */
- template <typename _Tp>
- void
- __bessel_ik(const _Tp __nu, const _Tp __x,
- _Tp & __Inu, _Tp & __Knu, _Tp & __Ipnu, _Tp & __Kpnu)
- {
- if (__x == _Tp(0))
- {
- if (__nu == _Tp(0))
- {
- __Inu = _Tp(1);
- __Ipnu = _Tp(0);
- }
- else if (__nu == _Tp(1))
- {
- __Inu = _Tp(0);
- __Ipnu = _Tp(0.5L);
- }
- else
- {
- __Inu = _Tp(0);
- __Ipnu = _Tp(0);
- }
- __Knu = std::numeric_limits<_Tp>::infinity();
- __Kpnu = -std::numeric_limits<_Tp>::infinity();
- return;
- }
-
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
- const _Tp __fp_min = _Tp(10) * std::numeric_limits<_Tp>::epsilon();
- const int __max_iter = 15000;
- const _Tp __x_min = _Tp(2);
-
- const int __nl = static_cast<int>(__nu + _Tp(0.5L));
-
- const _Tp __mu = __nu - __nl;
- const _Tp __mu2 = __mu * __mu;
- const _Tp __xi = _Tp(1) / __x;
- const _Tp __xi2 = _Tp(2) * __xi;
- _Tp __h = __nu * __xi;
- if ( __h < __fp_min )
- __h = __fp_min;
- _Tp __b = __xi2 * __nu;
- _Tp __d = _Tp(0);
- _Tp __c = __h;
- int __i;
- for ( __i = 1; __i <= __max_iter; ++__i )
- {
- __b += __xi2;
- __d = _Tp(1) / (__b + __d);
- __c = __b + _Tp(1) / __c;
- const _Tp __del = __c * __d;
- __h *= __del;
- if (std::abs(__del - _Tp(1)) < __eps)
- break;
- }
- if (__i > __max_iter)
- std::__throw_runtime_error(__N("Argument x too large "
- "in __bessel_jn; "
- "try asymptotic expansion."));
- _Tp __Inul = __fp_min;
- _Tp __Ipnul = __h * __Inul;
- _Tp __Inul1 = __Inul;
- _Tp __Ipnu1 = __Ipnul;
- _Tp __fact = __nu * __xi;
- for (int __l = __nl; __l >= 1; --__l)
- {
- const _Tp __Inutemp = __fact * __Inul + __Ipnul;
- __fact -= __xi;
- __Ipnul = __fact * __Inutemp + __Inul;
- __Inul = __Inutemp;
- }
- _Tp __f = __Ipnul / __Inul;
- _Tp __Kmu, __Knu1;
- if (__x < __x_min)
- {
- const _Tp __x2 = __x / _Tp(2);
- const _Tp __pimu = __numeric_constants<_Tp>::__pi() * __mu;
- const _Tp __fact = (std::abs(__pimu) < __eps
- ? _Tp(1) : __pimu / std::sin(__pimu));
- _Tp __d = -std::log(__x2);
- _Tp __e = __mu * __d;
- const _Tp __fact2 = (std::abs(__e) < __eps
- ? _Tp(1) : std::sinh(__e) / __e);
- _Tp __gam1, __gam2, __gampl, __gammi;
- __gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi);
- _Tp __ff = __fact
- * (__gam1 * std::cosh(__e) + __gam2 * __fact2 * __d);
- _Tp __sum = __ff;
- __e = std::exp(__e);
- _Tp __p = __e / (_Tp(2) * __gampl);
- _Tp __q = _Tp(1) / (_Tp(2) * __e * __gammi);
- _Tp __c = _Tp(1);
- __d = __x2 * __x2;
- _Tp __sum1 = __p;
- int __i;
- for (__i = 1; __i <= __max_iter; ++__i)
- {
- __ff = (__i * __ff + __p + __q) / (__i * __i - __mu2);
- __c *= __d / __i;
- __p /= __i - __mu;
- __q /= __i + __mu;
- const _Tp __del = __c * __ff;
- __sum += __del;
- const _Tp __del1 = __c * (__p - __i * __ff);
- __sum1 += __del1;
- if (std::abs(__del) < __eps * std::abs(__sum))
- break;
- }
- if (__i > __max_iter)
- std::__throw_runtime_error(__N("Bessel k series failed to converge "
- "in __bessel_jn."));
- __Kmu = __sum;
- __Knu1 = __sum1 * __xi2;
- }
- else
- {
- _Tp __b = _Tp(2) * (_Tp(1) + __x);
- _Tp __d = _Tp(1) / __b;
- _Tp __delh = __d;
- _Tp __h = __delh;
- _Tp __q1 = _Tp(0);
- _Tp __q2 = _Tp(1);
- _Tp __a1 = _Tp(0.25L) - __mu2;
- _Tp __q = __c = __a1;
- _Tp __a = -__a1;
- _Tp __s = _Tp(1) + __q * __delh;
- int __i;
- for (__i = 2; __i <= __max_iter; ++__i)
- {
- __a -= 2 * (__i - 1);
- __c = -__a * __c / __i;
- const _Tp __qnew = (__q1 - __b * __q2) / __a;
- __q1 = __q2;
- __q2 = __qnew;
- __q += __c * __qnew;
- __b += _Tp(2);
- __d = _Tp(1) / (__b + __a * __d);
- __delh = (__b * __d - _Tp(1)) * __delh;
- __h += __delh;
- const _Tp __dels = __q * __delh;
- __s += __dels;
- if ( std::abs(__dels / __s) < __eps )
- break;
- }
- if (__i > __max_iter)
- std::__throw_runtime_error(__N("Steed's method failed "
- "in __bessel_jn."));
- __h = __a1 * __h;
- __Kmu = std::sqrt(__numeric_constants<_Tp>::__pi() / (_Tp(2) * __x))
- * std::exp(-__x) / __s;
- __Knu1 = __Kmu * (__mu + __x + _Tp(0.5L) - __h) * __xi;
- }
-
- _Tp __Kpmu = __mu * __xi * __Kmu - __Knu1;
- _Tp __Inumu = __xi / (__f * __Kmu - __Kpmu);
- __Inu = __Inumu * __Inul1 / __Inul;
- __Ipnu = __Inumu * __Ipnu1 / __Inul;
- for ( __i = 1; __i <= __nl; ++__i )
- {
- const _Tp __Knutemp = (__mu + __i) * __xi2 * __Knu1 + __Kmu;
- __Kmu = __Knu1;
- __Knu1 = __Knutemp;
- }
- __Knu = __Kmu;
- __Kpnu = __nu * __xi * __Kmu - __Knu1;
-
- return;
- }
-
-
- /**
- * @brief Return the regular modified Bessel function of order
- * \f$ \nu \f$: \f$ I_{\nu}(x) \f$.
- *
- * The regular modified cylindrical Bessel function is:
- * @f[
- * I_{\nu}(x) = \sum_{k=0}^{\infty}
- * \frac{(x/2)^{\nu + 2k}}{k!\Gamma(\nu+k+1)}
- * @f]
- *
- * @param __nu The order of the regular modified Bessel function.
- * @param __x The argument of the regular modified Bessel function.
- * @return The output regular modified Bessel function.
- */
- template<typename _Tp>
- _Tp
- __cyl_bessel_i(const _Tp __nu, const _Tp __x)
- {
- if (__nu < _Tp(0) || __x < _Tp(0))
- std::__throw_domain_error(__N("Bad argument "
- "in __cyl_bessel_i."));
- else if (__isnan(__nu) || __isnan(__x))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (__x * __x < _Tp(10) * (__nu + _Tp(1)))
- return __cyl_bessel_ij_series(__nu, __x, +_Tp(1), 200);
- else
- {
- _Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu;
- __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu);
- return __I_nu;
- }
- }
-
-
- /**
- * @brief Return the irregular modified Bessel function
- * \f$ K_{\nu}(x) \f$ of order \f$ \nu \f$.
- *
- * The irregular modified Bessel function is defined by:
- * @f[
- * K_{\nu}(x) = \frac{\pi}{2}
- * \frac{I_{-\nu}(x) - I_{\nu}(x)}{\sin \nu\pi}
- * @f]
- * where for integral \f$ \nu = n \f$ a limit is taken:
- * \f$ lim_{\nu \to n} \f$.
- *
- * @param __nu The order of the irregular modified Bessel function.
- * @param __x The argument of the irregular modified Bessel function.
- * @return The output irregular modified Bessel function.
- */
- template<typename _Tp>
- _Tp
- __cyl_bessel_k(const _Tp __nu, const _Tp __x)
- {
- if (__nu < _Tp(0) || __x < _Tp(0))
- std::__throw_domain_error(__N("Bad argument "
- "in __cyl_bessel_k."));
- else if (__isnan(__nu) || __isnan(__x))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else
- {
- _Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu;
- __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu);
- return __K_nu;
- }
- }
-
-
- /**
- * @brief Compute the spherical modified Bessel functions
- * @f$ i_n(x) @f$ and @f$ k_n(x) @f$ and their first
- * derivatives @f$ i'_n(x) @f$ and @f$ k'_n(x) @f$
- * respectively.
- *
- * @param __n The order of the modified spherical Bessel function.
- * @param __x The argument of the modified spherical Bessel function.
- * @param __i_n The output regular modified spherical Bessel function.
- * @param __k_n The output irregular modified spherical
- * Bessel function.
- * @param __ip_n The output derivative of the regular modified
- * spherical Bessel function.
- * @param __kp_n The output derivative of the irregular modified
- * spherical Bessel function.
- */
- template <typename _Tp>
- void
- __sph_bessel_ik(const unsigned int __n, const _Tp __x,
- _Tp & __i_n, _Tp & __k_n, _Tp & __ip_n, _Tp & __kp_n)
- {
- const _Tp __nu = _Tp(__n) + _Tp(0.5L);
-
- _Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu;
- __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu);
-
- const _Tp __factor = __numeric_constants<_Tp>::__sqrtpio2()
- / std::sqrt(__x);
-
- __i_n = __factor * __I_nu;
- __k_n = __factor * __K_nu;
- __ip_n = __factor * __Ip_nu - __i_n / (_Tp(2) * __x);
- __kp_n = __factor * __Kp_nu - __k_n / (_Tp(2) * __x);
-
- return;
- }
-
-
- /**
- * @brief Compute the Airy functions
- * @f$ Ai(x) @f$ and @f$ Bi(x) @f$ and their first
- * derivatives @f$ Ai'(x) @f$ and @f$ Bi(x) @f$
- * respectively.
- *
- * @param __n The order of the Airy functions.
- * @param __x The argument of the Airy functions.
- * @param __i_n The output Airy function.
- * @param __k_n The output Airy function.
- * @param __ip_n The output derivative of the Airy function.
- * @param __kp_n The output derivative of the Airy function.
- */
- template <typename _Tp>
- void
- __airy(const _Tp __x,
- _Tp & __Ai, _Tp & __Bi, _Tp & __Aip, _Tp & __Bip)
- {
- const _Tp __absx = std::abs(__x);
- const _Tp __rootx = std::sqrt(__absx);
- const _Tp __z = _Tp(2) * __absx * __rootx / _Tp(3);
-
- if (__isnan(__x))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (__x > _Tp(0))
- {
- _Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu;
-
- __bessel_ik(_Tp(1) / _Tp(3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu);
- __Ai = __rootx * __K_nu
- / (__numeric_constants<_Tp>::__sqrt3()
- * __numeric_constants<_Tp>::__pi());
- __Bi = __rootx * (__K_nu / __numeric_constants<_Tp>::__pi()
- + _Tp(2) * __I_nu / __numeric_constants<_Tp>::__sqrt3());
-
- __bessel_ik(_Tp(2) / _Tp(3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu);
- __Aip = -__x * __K_nu
- / (__numeric_constants<_Tp>::__sqrt3()
- * __numeric_constants<_Tp>::__pi());
- __Bip = __x * (__K_nu / __numeric_constants<_Tp>::__pi()
- + _Tp(2) * __I_nu
- / __numeric_constants<_Tp>::__sqrt3());
- }
- else if (__x < _Tp(0))
- {
- _Tp __J_nu, __Jp_nu, __N_nu, __Np_nu;
-
- __bessel_jn(_Tp(1) / _Tp(3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu);
- __Ai = __rootx * (__J_nu
- - __N_nu / __numeric_constants<_Tp>::__sqrt3()) / _Tp(2);
- __Bi = -__rootx * (__N_nu
- + __J_nu / __numeric_constants<_Tp>::__sqrt3()) / _Tp(2);
-
- __bessel_jn(_Tp(2) / _Tp(3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu);
- __Aip = __absx * (__N_nu / __numeric_constants<_Tp>::__sqrt3()
- + __J_nu) / _Tp(2);
- __Bip = __absx * (__J_nu / __numeric_constants<_Tp>::__sqrt3()
- - __N_nu) / _Tp(2);
- }
- else
- {
- // Reference:
- // Abramowitz & Stegun, page 446 section 10.4.4 on Airy functions.
- // The number is Ai(0) = 3^{-2/3}/\Gamma(2/3).
- __Ai = _Tp(0.35502805388781723926L);
- __Bi = __Ai * __numeric_constants<_Tp>::__sqrt3();
-
- // Reference:
- // Abramowitz & Stegun, page 446 section 10.4.5 on Airy functions.
- // The number is Ai'(0) = -3^{-1/3}/\Gamma(1/3).
- __Aip = -_Tp(0.25881940379280679840L);
- __Bip = -__Aip * __numeric_constants<_Tp>::__sqrt3();
- }
-
- return;
- }
-
- } // namespace std::tr1::__detail
-}
-}
-
-#endif // _GLIBCXX_TR1_MODIFIED_BESSEL_FUNC_TCC
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/poly_hermite.tcc b/gcc-4.4.3/libstdc++-v3/include/tr1/poly_hermite.tcc
deleted file mode 100644
index d4825a31e..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/poly_hermite.tcc
+++ /dev/null
@@ -1,124 +0,0 @@
-// Special functions -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/poly_hermite.tcc
- * This is an internal header file, included by other library headers.
- * You should not attempt to use it directly.
- */
-
-//
-// ISO C++ 14882 TR1: 5.2 Special functions
-//
-
-// Written by Edward Smith-Rowland based on:
-// (1) Handbook of Mathematical Functions,
-// Ed. Milton Abramowitz and Irene A. Stegun,
-// Dover Publications, Section 22 pp. 773-802
-
-#ifndef _GLIBCXX_TR1_POLY_HERMITE_TCC
-#define _GLIBCXX_TR1_POLY_HERMITE_TCC 1
-
-namespace std
-{
-namespace tr1
-{
-
- // [5.2] Special functions
-
- // Implementation-space details.
- namespace __detail
- {
-
- /**
- * @brief This routine returns the Hermite polynomial
- * of order n: \f$ H_n(x) \f$ by recursion on n.
- *
- * The Hermite polynomial is defined by:
- * @f[
- * H_n(x) = (-1)^n e^{x^2} \frac{d^n}{dx^n} e^{-x^2}
- * @f]
- *
- * @param __n The order of the Hermite polynomial.
- * @param __x The argument of the Hermite polynomial.
- * @return The value of the Hermite polynomial of order n
- * and argument x.
- */
- template<typename _Tp>
- _Tp
- __poly_hermite_recursion(const unsigned int __n, const _Tp __x)
- {
- // Compute H_0.
- _Tp __H_0 = 1;
- if (__n == 0)
- return __H_0;
-
- // Compute H_1.
- _Tp __H_1 = 2 * __x;
- if (__n == 1)
- return __H_1;
-
- // Compute H_n.
- _Tp __H_n, __H_nm1, __H_nm2;
- unsigned int __i;
- for (__H_nm2 = __H_0, __H_nm1 = __H_1, __i = 2; __i <= __n; ++__i)
- {
- __H_n = 2 * (__x * __H_nm1 + (__i - 1) * __H_nm2);
- __H_nm2 = __H_nm1;
- __H_nm1 = __H_n;
- }
-
- return __H_n;
- }
-
-
- /**
- * @brief This routine returns the Hermite polynomial
- * of order n: \f$ H_n(x) \f$.
- *
- * The Hermite polynomial is defined by:
- * @f[
- * H_n(x) = (-1)^n e^{x^2} \frac{d^n}{dx^n} e^{-x^2}
- * @f]
- *
- * @param __n The order of the Hermite polynomial.
- * @param __x The argument of the Hermite polynomial.
- * @return The value of the Hermite polynomial of order n
- * and argument x.
- */
- template<typename _Tp>
- inline _Tp
- __poly_hermite(const unsigned int __n, const _Tp __x)
- {
- if (__isnan(__x))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else
- return __poly_hermite_recursion(__n, __x);
- }
-
- } // namespace std::tr1::__detail
-}
-}
-
-#endif // _GLIBCXX_TR1_POLY_HERMITE_TCC
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/poly_laguerre.tcc b/gcc-4.4.3/libstdc++-v3/include/tr1/poly_laguerre.tcc
deleted file mode 100644
index 9c999dbdf..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/poly_laguerre.tcc
+++ /dev/null
@@ -1,329 +0,0 @@
-// Special functions -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/poly_laguerre.tcc
- * This is an internal header file, included by other library headers.
- * You should not attempt to use it directly.
- */
-
-//
-// ISO C++ 14882 TR1: 5.2 Special functions
-//
-
-// Written by Edward Smith-Rowland based on:
-// (1) Handbook of Mathematical Functions,
-// Ed. Milton Abramowitz and Irene A. Stegun,
-// Dover Publications,
-// Section 13, pp. 509-510, Section 22 pp. 773-802
-// (2) The Gnu Scientific Library, http://www.gnu.org/software/gsl
-
-#ifndef _GLIBCXX_TR1_POLY_LAGUERRE_TCC
-#define _GLIBCXX_TR1_POLY_LAGUERRE_TCC 1
-
-namespace std
-{
-namespace tr1
-{
-
- // [5.2] Special functions
-
- // Implementation-space details.
- namespace __detail
- {
-
-
- /**
- * @brief This routine returns the associated Laguerre polynomial
- * of order @f$ n @f$, degree @f$ \alpha @f$ for large n.
- * Abramowitz & Stegun, 13.5.21
- *
- * @param __n The order of the Laguerre function.
- * @param __alpha The degree of the Laguerre function.
- * @param __x The argument of the Laguerre function.
- * @return The value of the Laguerre function of order n,
- * degree @f$ \alpha @f$, and argument x.
- *
- * This is from the GNU Scientific Library.
- */
- template<typename _Tpa, typename _Tp>
- _Tp
- __poly_laguerre_large_n(const unsigned __n, const _Tpa __alpha1,
- const _Tp __x)
- {
- const _Tp __a = -_Tp(__n);
- const _Tp __b = _Tp(__alpha1) + _Tp(1);
- const _Tp __eta = _Tp(2) * __b - _Tp(4) * __a;
- const _Tp __cos2th = __x / __eta;
- const _Tp __sin2th = _Tp(1) - __cos2th;
- const _Tp __th = std::acos(std::sqrt(__cos2th));
- const _Tp __pre_h = __numeric_constants<_Tp>::__pi_2()
- * __numeric_constants<_Tp>::__pi_2()
- * __eta * __eta * __cos2th * __sin2th;
-
-#if _GLIBCXX_USE_C99_MATH_TR1
- const _Tp __lg_b = std::tr1::lgamma(_Tp(__n) + __b);
- const _Tp __lnfact = std::tr1::lgamma(_Tp(__n + 1));
-#else
- const _Tp __lg_b = __log_gamma(_Tp(__n) + __b);
- const _Tp __lnfact = __log_gamma(_Tp(__n + 1));
-#endif
-
- _Tp __pre_term1 = _Tp(0.5L) * (_Tp(1) - __b)
- * std::log(_Tp(0.25L) * __x * __eta);
- _Tp __pre_term2 = _Tp(0.25L) * std::log(__pre_h);
- _Tp __lnpre = __lg_b - __lnfact + _Tp(0.5L) * __x
- + __pre_term1 - __pre_term2;
- _Tp __ser_term1 = std::sin(__a * __numeric_constants<_Tp>::__pi());
- _Tp __ser_term2 = std::sin(_Tp(0.25L) * __eta
- * (_Tp(2) * __th
- - std::sin(_Tp(2) * __th))
- + __numeric_constants<_Tp>::__pi_4());
- _Tp __ser = __ser_term1 + __ser_term2;
-
- return std::exp(__lnpre) * __ser;
- }
-
-
- /**
- * @brief Evaluate the polynomial based on the confluent hypergeometric
- * function in a safe way, with no restriction on the arguments.
- *
- * The associated Laguerre function is defined by
- * @f[
- * L_n^\alpha(x) = \frac{(\alpha + 1)_n}{n!}
- * _1F_1(-n; \alpha + 1; x)
- * @f]
- * where @f$ (\alpha)_n @f$ is the Pochhammer symbol and
- * @f$ _1F_1(a; c; x) @f$ is the confluent hypergeometric function.
- *
- * This function assumes x != 0.
- *
- * This is from the GNU Scientific Library.
- */
- template<typename _Tpa, typename _Tp>
- _Tp
- __poly_laguerre_hyperg(const unsigned int __n, const _Tpa __alpha1,
- const _Tp __x)
- {
- const _Tp __b = _Tp(__alpha1) + _Tp(1);
- const _Tp __mx = -__x;
- const _Tp __tc_sgn = (__x < _Tp(0) ? _Tp(1)
- : ((__n % 2 == 1) ? -_Tp(1) : _Tp(1)));
- // Get |x|^n/n!
- _Tp __tc = _Tp(1);
- const _Tp __ax = std::abs(__x);
- for (unsigned int __k = 1; __k <= __n; ++__k)
- __tc *= (__ax / __k);
-
- _Tp __term = __tc * __tc_sgn;
- _Tp __sum = __term;
- for (int __k = int(__n) - 1; __k >= 0; --__k)
- {
- __term *= ((__b + _Tp(__k)) / _Tp(int(__n) - __k))
- * _Tp(__k + 1) / __mx;
- __sum += __term;
- }
-
- return __sum;
- }
-
-
- /**
- * @brief This routine returns the associated Laguerre polynomial
- * of order @f$ n @f$, degree @f$ \alpha @f$: @f$ L_n^\alpha(x) @f$
- * by recursion.
- *
- * The associated Laguerre function is defined by
- * @f[
- * L_n^\alpha(x) = \frac{(\alpha + 1)_n}{n!}
- * _1F_1(-n; \alpha + 1; x)
- * @f]
- * where @f$ (\alpha)_n @f$ is the Pochhammer symbol and
- * @f$ _1F_1(a; c; x) @f$ is the confluent hypergeometric function.
- *
- * The associated Laguerre polynomial is defined for integral
- * @f$ \alpha = m @f$ by:
- * @f[
- * L_n^m(x) = (-1)^m \frac{d^m}{dx^m} L_{n + m}(x)
- * @f]
- * where the Laguerre polynomial is defined by:
- * @f[
- * L_n(x) = \frac{e^x}{n!} \frac{d^n}{dx^n} (x^ne^{-x})
- * @f]
- *
- * @param __n The order of the Laguerre function.
- * @param __alpha The degree of the Laguerre function.
- * @param __x The argument of the Laguerre function.
- * @return The value of the Laguerre function of order n,
- * degree @f$ \alpha @f$, and argument x.
- */
- template<typename _Tpa, typename _Tp>
- _Tp
- __poly_laguerre_recursion(const unsigned int __n,
- const _Tpa __alpha1, const _Tp __x)
- {
- // Compute l_0.
- _Tp __l_0 = _Tp(1);
- if (__n == 0)
- return __l_0;
-
- // Compute l_1^alpha.
- _Tp __l_1 = -__x + _Tp(1) + _Tp(__alpha1);
- if (__n == 1)
- return __l_1;
-
- // Compute l_n^alpha by recursion on n.
- _Tp __l_n2 = __l_0;
- _Tp __l_n1 = __l_1;
- _Tp __l_n = _Tp(0);
- for (unsigned int __nn = 2; __nn <= __n; ++__nn)
- {
- __l_n = (_Tp(2 * __nn - 1) + _Tp(__alpha1) - __x)
- * __l_n1 / _Tp(__nn)
- - (_Tp(__nn - 1) + _Tp(__alpha1)) * __l_n2 / _Tp(__nn);
- __l_n2 = __l_n1;
- __l_n1 = __l_n;
- }
-
- return __l_n;
- }
-
-
- /**
- * @brief This routine returns the associated Laguerre polynomial
- * of order n, degree @f$ \alpha @f$: @f$ L_n^alpha(x) @f$.
- *
- * The associated Laguerre function is defined by
- * @f[
- * L_n^\alpha(x) = \frac{(\alpha + 1)_n}{n!}
- * _1F_1(-n; \alpha + 1; x)
- * @f]
- * where @f$ (\alpha)_n @f$ is the Pochhammer symbol and
- * @f$ _1F_1(a; c; x) @f$ is the confluent hypergeometric function.
- *
- * The associated Laguerre polynomial is defined for integral
- * @f$ \alpha = m @f$ by:
- * @f[
- * L_n^m(x) = (-1)^m \frac{d^m}{dx^m} L_{n + m}(x)
- * @f]
- * where the Laguerre polynomial is defined by:
- * @f[
- * L_n(x) = \frac{e^x}{n!} \frac{d^n}{dx^n} (x^ne^{-x})
- * @f]
- *
- * @param __n The order of the Laguerre function.
- * @param __alpha The degree of the Laguerre function.
- * @param __x The argument of the Laguerre function.
- * @return The value of the Laguerre function of order n,
- * degree @f$ \alpha @f$, and argument x.
- */
- template<typename _Tpa, typename _Tp>
- inline _Tp
- __poly_laguerre(const unsigned int __n, const _Tpa __alpha1,
- const _Tp __x)
- {
- if (__x < _Tp(0))
- std::__throw_domain_error(__N("Negative argument "
- "in __poly_laguerre."));
- // Return NaN on NaN input.
- else if (__isnan(__x))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (__n == 0)
- return _Tp(1);
- else if (__n == 1)
- return _Tp(1) + _Tp(__alpha1) - __x;
- else if (__x == _Tp(0))
- {
- _Tp __prod = _Tp(__alpha1) + _Tp(1);
- for (unsigned int __k = 2; __k <= __n; ++__k)
- __prod *= (_Tp(__alpha1) + _Tp(__k)) / _Tp(__k);
- return __prod;
- }
- else if (__n > 10000000 && _Tp(__alpha1) > -_Tp(1)
- && __x < _Tp(2) * (_Tp(__alpha1) + _Tp(1)) + _Tp(4 * __n))
- return __poly_laguerre_large_n(__n, __alpha1, __x);
- else if (_Tp(__alpha1) >= _Tp(0)
- || (__x > _Tp(0) && _Tp(__alpha1) < -_Tp(__n + 1)))
- return __poly_laguerre_recursion(__n, __alpha1, __x);
- else
- return __poly_laguerre_hyperg(__n, __alpha1, __x);
- }
-
-
- /**
- * @brief This routine returns the associated Laguerre polynomial
- * of order n, degree m: @f$ L_n^m(x) @f$.
- *
- * The associated Laguerre polynomial is defined for integral
- * @f$ \alpha = m @f$ by:
- * @f[
- * L_n^m(x) = (-1)^m \frac{d^m}{dx^m} L_{n + m}(x)
- * @f]
- * where the Laguerre polynomial is defined by:
- * @f[
- * L_n(x) = \frac{e^x}{n!} \frac{d^n}{dx^n} (x^ne^{-x})
- * @f]
- *
- * @param __n The order of the Laguerre polynomial.
- * @param __m The degree of the Laguerre polynomial.
- * @param __x The argument of the Laguerre polynomial.
- * @return The value of the associated Laguerre polynomial of order n,
- * degree m, and argument x.
- */
- template<typename _Tp>
- inline _Tp
- __assoc_laguerre(const unsigned int __n, const unsigned int __m,
- const _Tp __x)
- {
- return __poly_laguerre<unsigned int, _Tp>(__n, __m, __x);
- }
-
-
- /**
- * @brief This routine returns the Laguerre polynomial
- * of order n: @f$ L_n(x) @f$.
- *
- * The Laguerre polynomial is defined by:
- * @f[
- * L_n(x) = \frac{e^x}{n!} \frac{d^n}{dx^n} (x^ne^{-x})
- * @f]
- *
- * @param __n The order of the Laguerre polynomial.
- * @param __x The argument of the Laguerre polynomial.
- * @return The value of the Laguerre polynomial of order n
- * and argument x.
- */
- template<typename _Tp>
- inline _Tp
- __laguerre(const unsigned int __n, const _Tp __x)
- {
- return __poly_laguerre<unsigned int, _Tp>(__n, 0, __x);
- }
-
- } // namespace std::tr1::__detail
-}
-}
-
-#endif // _GLIBCXX_TR1_POLY_LAGUERRE_TCC
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/random b/gcc-4.4.3/libstdc++-v3/include/tr1/random
deleted file mode 100644
index a23519c52..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/random
+++ /dev/null
@@ -1,66 +0,0 @@
-// random number generation -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/**
- * @file tr1/random
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_RANDOM
-#define _GLIBCXX_TR1_RANDOM 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <cmath>
-#include <cstdio>
-#include <cstdlib>
-#include <string>
-#include <iosfwd>
-#include <limits>
-#include <ext/type_traits.h>
-#include <ext/numeric_traits.h>
-#include <bits/concept_check.h>
-#include <debug/debug.h>
-#include <tr1/type_traits>
-#include <tr1/cmath>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/random>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/random>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_RANDOM
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/regex b/gcc-4.4.3/libstdc++-v3/include/tr1/regex
deleted file mode 100644
index b7e2cdfc8..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/regex
+++ /dev/null
@@ -1,64 +0,0 @@
-// class template regex -*- C++ -*-
-
-// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/**
- * @file tr1/regex
- * @author Stephen M. Webb <stephen.webb@bregmasoft.ca>
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_REGEX
-#define _GLIBCXX_TR1_REGEX 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <algorithm>
-#include <bitset>
-#include <iterator>
-#include <locale>
-#include <stdexcept>
-#include <string>
-#include <vector>
-#include <utility>
-#include <sstream>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/regex>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/regex>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_REGEX
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/riemann_zeta.tcc b/gcc-4.4.3/libstdc++-v3/include/tr1/riemann_zeta.tcc
deleted file mode 100644
index c646c2e40..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/riemann_zeta.tcc
+++ /dev/null
@@ -1,435 +0,0 @@
-// Special functions -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/riemann_zeta.tcc
- * This is an internal header file, included by other library headers.
- * You should not attempt to use it directly.
- */
-
-//
-// ISO C++ 14882 TR1: 5.2 Special functions
-//
-
-// Written by Edward Smith-Rowland based on:
-// (1) Handbook of Mathematical Functions,
-// Ed. by Milton Abramowitz and Irene A. Stegun,
-// Dover Publications, New-York, Section 5, pp. 807-808.
-// (2) The Gnu Scientific Library, http://www.gnu.org/software/gsl
-// (3) Gamma, Exploring Euler's Constant, Julian Havil,
-// Princeton, 2003.
-
-#ifndef _GLIBCXX_TR1_RIEMANN_ZETA_TCC
-#define _GLIBCXX_TR1_RIEMANN_ZETA_TCC 1
-
-#include "special_function_util.h"
-
-namespace std
-{
-namespace tr1
-{
-
- // [5.2] Special functions
-
- // Implementation-space details.
- namespace __detail
- {
-
- /**
- * @brief Compute the Riemann zeta function @f$ \zeta(s) @f$
- * by summation for s > 1.
- *
- * The Riemann zeta function is defined by:
- * \f[
- * \zeta(s) = \sum_{k=1}^{\infty} \frac{1}{k^{s}} for s > 1
- * \f]
- * For s < 1 use the reflection formula:
- * \f[
- * \zeta(s) = 2^s \pi^{s-1} \Gamma(1-s) \zeta(1-s)
- * \f]
- */
- template<typename _Tp>
- _Tp
- __riemann_zeta_sum(const _Tp __s)
- {
- // A user shouldn't get to this.
- if (__s < _Tp(1))
- std::__throw_domain_error(__N("Bad argument in zeta sum."));
-
- const unsigned int max_iter = 10000;
- _Tp __zeta = _Tp(0);
- for (unsigned int __k = 1; __k < max_iter; ++__k)
- {
- _Tp __term = std::pow(static_cast<_Tp>(__k), -__s);
- if (__term < std::numeric_limits<_Tp>::epsilon())
- {
- break;
- }
- __zeta += __term;
- }
-
- return __zeta;
- }
-
-
- /**
- * @brief Evaluate the Riemann zeta function @f$ \zeta(s) @f$
- * by an alternate series for s > 0.
- *
- * The Riemann zeta function is defined by:
- * \f[
- * \zeta(s) = \sum_{k=1}^{\infty} \frac{1}{k^{s}} for s > 1
- * \f]
- * For s < 1 use the reflection formula:
- * \f[
- * \zeta(s) = 2^s \pi^{s-1} \Gamma(1-s) \zeta(1-s)
- * \f]
- */
- template<typename _Tp>
- _Tp
- __riemann_zeta_alt(const _Tp __s)
- {
- _Tp __sgn = _Tp(1);
- _Tp __zeta = _Tp(0);
- for (unsigned int __i = 1; __i < 10000000; ++__i)
- {
- _Tp __term = __sgn / std::pow(__i, __s);
- if (std::abs(__term) < std::numeric_limits<_Tp>::epsilon())
- break;
- __zeta += __term;
- __sgn *= _Tp(-1);
- }
- __zeta /= _Tp(1) - std::pow(_Tp(2), _Tp(1) - __s);
-
- return __zeta;
- }
-
-
- /**
- * @brief Evaluate the Riemann zeta function by series for all s != 1.
- * Convergence is great until largish negative numbers.
- * Then the convergence of the > 0 sum gets better.
- *
- * The series is:
- * \f[
- * \zeta(s) = \frac{1}{1-2^{1-s}}
- * \sum_{n=0}^{\infty} \frac{1}{2^{n+1}}
- * \sum_{k=0}^{n} (-1)^k \frac{n!}{(n-k)!k!} (k+1)^{-s}
- * \f]
- * Havil 2003, p. 206.
- *
- * The Riemann zeta function is defined by:
- * \f[
- * \zeta(s) = \sum_{k=1}^{\infty} \frac{1}{k^{s}} for s > 1
- * \f]
- * For s < 1 use the reflection formula:
- * \f[
- * \zeta(s) = 2^s \pi^{s-1} \Gamma(1-s) \zeta(1-s)
- * \f]
- */
- template<typename _Tp>
- _Tp
- __riemann_zeta_glob(const _Tp __s)
- {
- _Tp __zeta = _Tp(0);
-
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
- // Max e exponent before overflow.
- const _Tp __max_bincoeff = std::numeric_limits<_Tp>::max_exponent10
- * std::log(_Tp(10)) - _Tp(1);
-
- // This series works until the binomial coefficient blows up
- // so use reflection.
- if (__s < _Tp(0))
- {
-#if _GLIBCXX_USE_C99_MATH_TR1
- if (std::tr1::fmod(__s,_Tp(2)) == _Tp(0))
- return _Tp(0);
- else
-#endif
- {
- _Tp __zeta = __riemann_zeta_glob(_Tp(1) - __s);
- __zeta *= std::pow(_Tp(2)
- * __numeric_constants<_Tp>::__pi(), __s)
- * std::sin(__numeric_constants<_Tp>::__pi_2() * __s)
-#if _GLIBCXX_USE_C99_MATH_TR1
- * std::exp(std::tr1::lgamma(_Tp(1) - __s))
-#else
- * std::exp(__log_gamma(_Tp(1) - __s))
-#endif
- / __numeric_constants<_Tp>::__pi();
- return __zeta;
- }
- }
-
- _Tp __num = _Tp(0.5L);
- const unsigned int __maxit = 10000;
- for (unsigned int __i = 0; __i < __maxit; ++__i)
- {
- bool __punt = false;
- _Tp __sgn = _Tp(1);
- _Tp __term = _Tp(0);
- for (unsigned int __j = 0; __j <= __i; ++__j)
- {
-#if _GLIBCXX_USE_C99_MATH_TR1
- _Tp __bincoeff = std::tr1::lgamma(_Tp(1 + __i))
- - std::tr1::lgamma(_Tp(1 + __j))
- - std::tr1::lgamma(_Tp(1 + __i - __j));
-#else
- _Tp __bincoeff = __log_gamma(_Tp(1 + __i))
- - __log_gamma(_Tp(1 + __j))
- - __log_gamma(_Tp(1 + __i - __j));
-#endif
- if (__bincoeff > __max_bincoeff)
- {
- // This only gets hit for x << 0.
- __punt = true;
- break;
- }
- __bincoeff = std::exp(__bincoeff);
- __term += __sgn * __bincoeff * std::pow(_Tp(1 + __j), -__s);
- __sgn *= _Tp(-1);
- }
- if (__punt)
- break;
- __term *= __num;
- __zeta += __term;
- if (std::abs(__term/__zeta) < __eps)
- break;
- __num *= _Tp(0.5L);
- }
-
- __zeta /= _Tp(1) - std::pow(_Tp(2), _Tp(1) - __s);
-
- return __zeta;
- }
-
-
- /**
- * @brief Compute the Riemann zeta function @f$ \zeta(s) @f$
- * using the product over prime factors.
- * \f[
- * \zeta(s) = \Pi_{i=1}^\infty \frac{1}{1 - p_i^{-s}}
- * \f]
- * where @f$ {p_i} @f$ are the prime numbers.
- *
- * The Riemann zeta function is defined by:
- * \f[
- * \zeta(s) = \sum_{k=1}^{\infty} \frac{1}{k^{s}} for s > 1
- * \f]
- * For s < 1 use the reflection formula:
- * \f[
- * \zeta(s) = 2^s \pi^{s-1} \Gamma(1-s) \zeta(1-s)
- * \f]
- */
- template<typename _Tp>
- _Tp
- __riemann_zeta_product(const _Tp __s)
- {
- static const _Tp __prime[] = {
- _Tp(2), _Tp(3), _Tp(5), _Tp(7), _Tp(11), _Tp(13), _Tp(17), _Tp(19),
- _Tp(23), _Tp(29), _Tp(31), _Tp(37), _Tp(41), _Tp(43), _Tp(47),
- _Tp(53), _Tp(59), _Tp(61), _Tp(67), _Tp(71), _Tp(73), _Tp(79),
- _Tp(83), _Tp(89), _Tp(97), _Tp(101), _Tp(103), _Tp(107), _Tp(109)
- };
- static const unsigned int __num_primes = sizeof(__prime) / sizeof(_Tp);
-
- _Tp __zeta = _Tp(1);
- for (unsigned int __i = 0; __i < __num_primes; ++__i)
- {
- const _Tp __fact = _Tp(1) - std::pow(__prime[__i], -__s);
- __zeta *= __fact;
- if (_Tp(1) - __fact < std::numeric_limits<_Tp>::epsilon())
- break;
- }
-
- __zeta = _Tp(1) / __zeta;
-
- return __zeta;
- }
-
-
- /**
- * @brief Return the Riemann zeta function @f$ \zeta(s) @f$.
- *
- * The Riemann zeta function is defined by:
- * \f[
- * \zeta(s) = \sum_{k=1}^{\infty} k^{-s} for s > 1
- * \frac{(2\pi)^s}{pi} sin(\frac{\pi s}{2})
- * \Gamma (1 - s) \zeta (1 - s) for s < 1
- * \f]
- * For s < 1 use the reflection formula:
- * \f[
- * \zeta(s) = 2^s \pi^{s-1} \Gamma(1-s) \zeta(1-s)
- * \f]
- */
- template<typename _Tp>
- _Tp
- __riemann_zeta(const _Tp __s)
- {
- if (__isnan(__s))
- return std::numeric_limits<_Tp>::quiet_NaN();
- else if (__s == _Tp(1))
- return std::numeric_limits<_Tp>::infinity();
- else if (__s < -_Tp(19))
- {
- _Tp __zeta = __riemann_zeta_product(_Tp(1) - __s);
- __zeta *= std::pow(_Tp(2) * __numeric_constants<_Tp>::__pi(), __s)
- * std::sin(__numeric_constants<_Tp>::__pi_2() * __s)
-#if _GLIBCXX_USE_C99_MATH_TR1
- * std::exp(std::tr1::lgamma(_Tp(1) - __s))
-#else
- * std::exp(__log_gamma(_Tp(1) - __s))
-#endif
- / __numeric_constants<_Tp>::__pi();
- return __zeta;
- }
- else if (__s < _Tp(20))
- {
- // Global double sum or McLaurin?
- bool __glob = true;
- if (__glob)
- return __riemann_zeta_glob(__s);
- else
- {
- if (__s > _Tp(1))
- return __riemann_zeta_sum(__s);
- else
- {
- _Tp __zeta = std::pow(_Tp(2)
- * __numeric_constants<_Tp>::__pi(), __s)
- * std::sin(__numeric_constants<_Tp>::__pi_2() * __s)
-#if _GLIBCXX_USE_C99_MATH_TR1
- * std::tr1::tgamma(_Tp(1) - __s)
-#else
- * std::exp(__log_gamma(_Tp(1) - __s))
-#endif
- * __riemann_zeta_sum(_Tp(1) - __s);
- return __zeta;
- }
- }
- }
- else
- return __riemann_zeta_product(__s);
- }
-
-
- /**
- * @brief Return the Hurwitz zeta function @f$ \zeta(x,s) @f$
- * for all s != 1 and x > -1.
- *
- * The Hurwitz zeta function is defined by:
- * @f[
- * \zeta(x,s) = \sum_{n=0}^{\infty} \frac{1}{(n + x)^s}
- * @f]
- * The Riemann zeta function is a special case:
- * @f[
- * \zeta(s) = \zeta(1,s)
- * @f]
- *
- * This functions uses the double sum that converges for s != 1
- * and x > -1:
- * @f[
- * \zeta(x,s) = \frac{1}{s-1}
- * \sum_{n=0}^{\infty} \frac{1}{n + 1}
- * \sum_{k=0}^{n} (-1)^k \frac{n!}{(n-k)!k!} (x+k)^{-s}
- * @f]
- */
- template<typename _Tp>
- _Tp
- __hurwitz_zeta_glob(const _Tp __a, const _Tp __s)
- {
- _Tp __zeta = _Tp(0);
-
- const _Tp __eps = std::numeric_limits<_Tp>::epsilon();
- // Max e exponent before overflow.
- const _Tp __max_bincoeff = std::numeric_limits<_Tp>::max_exponent10
- * std::log(_Tp(10)) - _Tp(1);
-
- const unsigned int __maxit = 10000;
- for (unsigned int __i = 0; __i < __maxit; ++__i)
- {
- bool __punt = false;
- _Tp __sgn = _Tp(1);
- _Tp __term = _Tp(0);
- for (unsigned int __j = 0; __j <= __i; ++__j)
- {
-#if _GLIBCXX_USE_C99_MATH_TR1
- _Tp __bincoeff = std::tr1::lgamma(_Tp(1 + __i))
- - std::tr1::lgamma(_Tp(1 + __j))
- - std::tr1::lgamma(_Tp(1 + __i - __j));
-#else
- _Tp __bincoeff = __log_gamma(_Tp(1 + __i))
- - __log_gamma(_Tp(1 + __j))
- - __log_gamma(_Tp(1 + __i - __j));
-#endif
- if (__bincoeff > __max_bincoeff)
- {
- // This only gets hit for x << 0.
- __punt = true;
- break;
- }
- __bincoeff = std::exp(__bincoeff);
- __term += __sgn * __bincoeff * std::pow(_Tp(__a + __j), -__s);
- __sgn *= _Tp(-1);
- }
- if (__punt)
- break;
- __term /= _Tp(__i + 1);
- if (std::abs(__term / __zeta) < __eps)
- break;
- __zeta += __term;
- }
-
- __zeta /= __s - _Tp(1);
-
- return __zeta;
- }
-
-
- /**
- * @brief Return the Hurwitz zeta function @f$ \zeta(x,s) @f$
- * for all s != 1 and x > -1.
- *
- * The Hurwitz zeta function is defined by:
- * @f[
- * \zeta(x,s) = \sum_{n=0}^{\infty} \frac{1}{(n + x)^s}
- * @f]
- * The Riemann zeta function is a special case:
- * @f[
- * \zeta(s) = \zeta(1,s)
- * @f]
- */
- template<typename _Tp>
- inline _Tp
- __hurwitz_zeta(const _Tp __a, const _Tp __s)
- {
- return __hurwitz_zeta_glob(__a, __s);
- }
-
- } // namespace std::tr1::__detail
-}
-}
-
-#endif // _GLIBCXX_TR1_RIEMANN_ZETA_TCC
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/shared_ptr.h b/gcc-4.4.3/libstdc++-v3/include/tr1/shared_ptr.h
deleted file mode 100644
index 0afce0155..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/shared_ptr.h
+++ /dev/null
@@ -1,1020 +0,0 @@
-// <tr1/shared_ptr.h> -*- C++ -*-
-
-// Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-// shared_count.hpp
-// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-
-// shared_ptr.hpp
-// Copyright (C) 1998, 1999 Greg Colvin and Beman Dawes.
-// Copyright (C) 2001, 2002, 2003 Peter Dimov
-
-// weak_ptr.hpp
-// Copyright (C) 2001, 2002, 2003 Peter Dimov
-
-// enable_shared_from_this.hpp
-// Copyright (C) 2002 Peter Dimov
-
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// GCC Note: based on version 1.32.0 of the Boost library.
-
-/** @file tr1/shared_ptr.h
- * This is an internal header file, included by other library headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _TR1_SHARED_PTR_H
-#define _TR1_SHARED_PTR_H 1
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-namespace std
-{
-namespace tr1
-{
-
- template<typename _Ptr, typename _Deleter, _Lock_policy _Lp>
- class _Sp_counted_base_impl
- : public _Sp_counted_base<_Lp>
- {
- public:
- /**
- * @brief
- * @pre __d(__p) must not throw.
- */
- _Sp_counted_base_impl(_Ptr __p, _Deleter __d)
- : _M_ptr(__p), _M_del(__d) { }
-
- virtual void
- _M_dispose() // nothrow
- { _M_del(_M_ptr); }
-
- virtual void*
- _M_get_deleter(const std::type_info& __ti)
- { return __ti == typeid(_Deleter) ? &_M_del : 0; }
-
- private:
- _Sp_counted_base_impl(const _Sp_counted_base_impl&);
- _Sp_counted_base_impl& operator=(const _Sp_counted_base_impl&);
-
- _Ptr _M_ptr; // copy constructor must not throw
- _Deleter _M_del; // copy constructor must not throw
- };
-
- template<_Lock_policy _Lp = __default_lock_policy>
- class __weak_count;
-
- template<typename _Tp>
- struct _Sp_deleter
- {
- typedef void result_type;
- typedef _Tp* argument_type;
- void operator()(_Tp* __p) const { delete __p; }
- };
-
- template<_Lock_policy _Lp = __default_lock_policy>
- class __shared_count
- {
- public:
- __shared_count()
- : _M_pi(0) // nothrow
- { }
-
- template<typename _Ptr>
- __shared_count(_Ptr __p) : _M_pi(0)
- {
- __try
- {
- typedef typename std::tr1::remove_pointer<_Ptr>::type _Tp;
- _M_pi = new _Sp_counted_base_impl<_Ptr, _Sp_deleter<_Tp>, _Lp>(
- __p, _Sp_deleter<_Tp>());
- }
- __catch(...)
- {
- delete __p;
- __throw_exception_again;
- }
- }
-
- template<typename _Ptr, typename _Deleter>
- __shared_count(_Ptr __p, _Deleter __d) : _M_pi(0)
- {
- __try
- {
- _M_pi = new _Sp_counted_base_impl<_Ptr, _Deleter, _Lp>(__p, __d);
- }
- __catch(...)
- {
- __d(__p); // Call _Deleter on __p.
- __throw_exception_again;
- }
- }
-
- // Special case for auto_ptr<_Tp> to provide the strong guarantee.
- template<typename _Tp>
- explicit
- __shared_count(std::auto_ptr<_Tp>& __r)
- : _M_pi(new _Sp_counted_base_impl<_Tp*,
- _Sp_deleter<_Tp>, _Lp >(__r.get(), _Sp_deleter<_Tp>()))
- { __r.release(); }
-
- // Throw bad_weak_ptr when __r._M_get_use_count() == 0.
- explicit
- __shared_count(const __weak_count<_Lp>& __r);
-
- ~__shared_count() // nothrow
- {
- if (_M_pi != 0)
- _M_pi->_M_release();
- }
-
- __shared_count(const __shared_count& __r)
- : _M_pi(__r._M_pi) // nothrow
- {
- if (_M_pi != 0)
- _M_pi->_M_add_ref_copy();
- }
-
- __shared_count&
- operator=(const __shared_count& __r) // nothrow
- {
- _Sp_counted_base<_Lp>* __tmp = __r._M_pi;
- if (__tmp != _M_pi)
- {
- if (__tmp != 0)
- __tmp->_M_add_ref_copy();
- if (_M_pi != 0)
- _M_pi->_M_release();
- _M_pi = __tmp;
- }
- return *this;
- }
-
- void
- _M_swap(__shared_count& __r) // nothrow
- {
- _Sp_counted_base<_Lp>* __tmp = __r._M_pi;
- __r._M_pi = _M_pi;
- _M_pi = __tmp;
- }
-
- long
- _M_get_use_count() const // nothrow
- { return _M_pi != 0 ? _M_pi->_M_get_use_count() : 0; }
-
- bool
- _M_unique() const // nothrow
- { return this->_M_get_use_count() == 1; }
-
- friend inline bool
- operator==(const __shared_count& __a, const __shared_count& __b)
- { return __a._M_pi == __b._M_pi; }
-
- friend inline bool
- operator<(const __shared_count& __a, const __shared_count& __b)
- { return std::less<_Sp_counted_base<_Lp>*>()(__a._M_pi, __b._M_pi); }
-
- void*
- _M_get_deleter(const std::type_info& __ti) const
- { return _M_pi ? _M_pi->_M_get_deleter(__ti) : 0; }
-
- private:
- friend class __weak_count<_Lp>;
-
- _Sp_counted_base<_Lp>* _M_pi;
- };
-
-
- template<_Lock_policy _Lp>
- class __weak_count
- {
- public:
- __weak_count()
- : _M_pi(0) // nothrow
- { }
-
- __weak_count(const __shared_count<_Lp>& __r)
- : _M_pi(__r._M_pi) // nothrow
- {
- if (_M_pi != 0)
- _M_pi->_M_weak_add_ref();
- }
-
- __weak_count(const __weak_count<_Lp>& __r)
- : _M_pi(__r._M_pi) // nothrow
- {
- if (_M_pi != 0)
- _M_pi->_M_weak_add_ref();
- }
-
- ~__weak_count() // nothrow
- {
- if (_M_pi != 0)
- _M_pi->_M_weak_release();
- }
-
- __weak_count<_Lp>&
- operator=(const __shared_count<_Lp>& __r) // nothrow
- {
- _Sp_counted_base<_Lp>* __tmp = __r._M_pi;
- if (__tmp != 0)
- __tmp->_M_weak_add_ref();
- if (_M_pi != 0)
- _M_pi->_M_weak_release();
- _M_pi = __tmp;
- return *this;
- }
-
- __weak_count<_Lp>&
- operator=(const __weak_count<_Lp>& __r) // nothrow
- {
- _Sp_counted_base<_Lp>* __tmp = __r._M_pi;
- if (__tmp != 0)
- __tmp->_M_weak_add_ref();
- if (_M_pi != 0)
- _M_pi->_M_weak_release();
- _M_pi = __tmp;
- return *this;
- }
-
- void
- _M_swap(__weak_count<_Lp>& __r) // nothrow
- {
- _Sp_counted_base<_Lp>* __tmp = __r._M_pi;
- __r._M_pi = _M_pi;
- _M_pi = __tmp;
- }
-
- long
- _M_get_use_count() const // nothrow
- { return _M_pi != 0 ? _M_pi->_M_get_use_count() : 0; }
-
- friend inline bool
- operator==(const __weak_count<_Lp>& __a, const __weak_count<_Lp>& __b)
- { return __a._M_pi == __b._M_pi; }
-
- friend inline bool
- operator<(const __weak_count<_Lp>& __a, const __weak_count<_Lp>& __b)
- { return std::less<_Sp_counted_base<_Lp>*>()(__a._M_pi, __b._M_pi); }
-
- private:
- friend class __shared_count<_Lp>;
-
- _Sp_counted_base<_Lp>* _M_pi;
- };
-
- // now that __weak_count is defined we can define this constructor:
- template<_Lock_policy _Lp>
- inline
- __shared_count<_Lp>::
- __shared_count(const __weak_count<_Lp>& __r)
- : _M_pi(__r._M_pi)
- {
- if (_M_pi != 0)
- _M_pi->_M_add_ref_lock();
- else
- __throw_bad_weak_ptr();
- }
-
- // Forward declarations.
- template<typename _Tp, _Lock_policy _Lp = __default_lock_policy>
- class __shared_ptr;
-
- template<typename _Tp, _Lock_policy _Lp = __default_lock_policy>
- class __weak_ptr;
-
- template<typename _Tp, _Lock_policy _Lp = __default_lock_policy>
- class __enable_shared_from_this;
-
- template<typename _Tp>
- class shared_ptr;
-
- template<typename _Tp>
- class weak_ptr;
-
- template<typename _Tp>
- class enable_shared_from_this;
-
- // Support for enable_shared_from_this.
-
- // Friend of __enable_shared_from_this.
- template<_Lock_policy _Lp, typename _Tp1, typename _Tp2>
- void
- __enable_shared_from_this_helper(const __shared_count<_Lp>&,
- const __enable_shared_from_this<_Tp1,
- _Lp>*, const _Tp2*);
-
- // Friend of enable_shared_from_this.
- template<typename _Tp1, typename _Tp2>
- void
- __enable_shared_from_this_helper(const __shared_count<>&,
- const enable_shared_from_this<_Tp1>*,
- const _Tp2*);
-
- template<_Lock_policy _Lp>
- inline void
- __enable_shared_from_this_helper(const __shared_count<_Lp>&, ...)
- { }
-
-
- struct __static_cast_tag { };
- struct __const_cast_tag { };
- struct __dynamic_cast_tag { };
-
- /**
- * @class __shared_ptr
- *
- * A smart pointer with reference-counted copy semantics.
- * The object pointed to is deleted when the last shared_ptr pointing to
- * it is destroyed or reset.
- */
- template<typename _Tp, _Lock_policy _Lp>
- class __shared_ptr
- {
- public:
- typedef _Tp element_type;
-
- /** @brief Construct an empty %__shared_ptr.
- * @post use_count()==0 && get()==0
- */
- __shared_ptr()
- : _M_ptr(0), _M_refcount() // never throws
- { }
-
- /** @brief Construct a %__shared_ptr that owns the pointer @a __p.
- * @param __p A pointer that is convertible to element_type*.
- * @post use_count() == 1 && get() == __p
- * @throw std::bad_alloc, in which case @c delete @a __p is called.
- */
- template<typename _Tp1>
- explicit
- __shared_ptr(_Tp1* __p)
- : _M_ptr(__p), _M_refcount(__p)
- {
- __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>)
- // __glibcxx_function_requires(_CompleteConcept<_Tp1*>)
- __enable_shared_from_this_helper(_M_refcount, __p, __p);
- }
-
- //
- // Requirements: _Deleter's copy constructor and destructor must
- // not throw
- //
- // __shared_ptr will release __p by calling __d(__p)
- //
- /** @brief Construct a %__shared_ptr that owns the pointer @a __p
- * and the deleter @a __d.
- * @param __p A pointer.
- * @param __d A deleter.
- * @post use_count() == 1 && get() == __p
- * @throw std::bad_alloc, in which case @a __d(__p) is called.
- */
- template<typename _Tp1, typename _Deleter>
- __shared_ptr(_Tp1* __p, _Deleter __d)
- : _M_ptr(__p), _M_refcount(__p, __d)
- {
- __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>)
- // TODO requires _Deleter CopyConstructible and __d(__p) well-formed
- __enable_shared_from_this_helper(_M_refcount, __p, __p);
- }
-
- // generated copy constructor, assignment, destructor are fine.
-
- /** @brief If @a __r is empty, constructs an empty %__shared_ptr;
- * otherwise construct a %__shared_ptr that shares ownership
- * with @a __r.
- * @param __r A %__shared_ptr.
- * @post get() == __r.get() && use_count() == __r.use_count()
- */
- template<typename _Tp1>
- __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r)
- : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) // never throws
- { __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>) }
-
- /** @brief Constructs a %__shared_ptr that shares ownership with @a __r
- * and stores a copy of the pointer stored in @a __r.
- * @param __r A weak_ptr.
- * @post use_count() == __r.use_count()
- * @throw bad_weak_ptr when __r.expired(),
- * in which case the constructor has no effect.
- */
- template<typename _Tp1>
- explicit
- __shared_ptr(const __weak_ptr<_Tp1, _Lp>& __r)
- : _M_refcount(__r._M_refcount) // may throw
- {
- __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>)
- // It is now safe to copy __r._M_ptr, as _M_refcount(__r._M_refcount)
- // did not throw.
- _M_ptr = __r._M_ptr;
- }
-
-#if !defined(__GXX_EXPERIMENTAL_CXX0X__) || _GLIBCXX_DEPRECATED
- /**
- * @post use_count() == 1 and __r.get() == 0
- */
- template<typename _Tp1>
- explicit
- __shared_ptr(std::auto_ptr<_Tp1>& __r)
- : _M_ptr(__r.get()), _M_refcount()
- {
- __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>)
- // TODO requires _Tp1 is complete, delete __r.release() well-formed
- _Tp1* __tmp = __r.get();
- _M_refcount = __shared_count<_Lp>(__r);
- __enable_shared_from_this_helper(_M_refcount, __tmp, __tmp);
- }
-
-#endif
-
- template<typename _Tp1>
- __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r, __static_cast_tag)
- : _M_ptr(static_cast<element_type*>(__r._M_ptr)),
- _M_refcount(__r._M_refcount)
- { }
-
- template<typename _Tp1>
- __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r, __const_cast_tag)
- : _M_ptr(const_cast<element_type*>(__r._M_ptr)),
- _M_refcount(__r._M_refcount)
- { }
-
- template<typename _Tp1>
- __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r, __dynamic_cast_tag)
- : _M_ptr(dynamic_cast<element_type*>(__r._M_ptr)),
- _M_refcount(__r._M_refcount)
- {
- if (_M_ptr == 0) // need to allocate new counter -- the cast failed
- _M_refcount = __shared_count<_Lp>();
- }
-
- template<typename _Tp1>
- __shared_ptr&
- operator=(const __shared_ptr<_Tp1, _Lp>& __r) // never throws
- {
- _M_ptr = __r._M_ptr;
- _M_refcount = __r._M_refcount; // __shared_count::op= doesn't throw
- return *this;
- }
-
-#if !defined(__GXX_EXPERIMENTAL_CXX0X__) || _GLIBCXX_DEPRECATED
- template<typename _Tp1>
- __shared_ptr&
- operator=(std::auto_ptr<_Tp1>& __r)
- {
- __shared_ptr(__r).swap(*this);
- return *this;
- }
-#endif
-
- void
- reset() // never throws
- { __shared_ptr().swap(*this); }
-
- template<typename _Tp1>
- void
- reset(_Tp1* __p) // _Tp1 must be complete.
- {
- // Catch self-reset errors.
- _GLIBCXX_DEBUG_ASSERT(__p == 0 || __p != _M_ptr);
- __shared_ptr(__p).swap(*this);
- }
-
- template<typename _Tp1, typename _Deleter>
- void
- reset(_Tp1* __p, _Deleter __d)
- { __shared_ptr(__p, __d).swap(*this); }
-
- // Allow class instantiation when _Tp is [cv-qual] void.
- typename std::tr1::add_reference<_Tp>::type
- operator*() const // never throws
- {
- _GLIBCXX_DEBUG_ASSERT(_M_ptr != 0);
- return *_M_ptr;
- }
-
- _Tp*
- operator->() const // never throws
- {
- _GLIBCXX_DEBUG_ASSERT(_M_ptr != 0);
- return _M_ptr;
- }
-
- _Tp*
- get() const // never throws
- { return _M_ptr; }
-
- // Implicit conversion to "bool"
- private:
- typedef _Tp* __shared_ptr::*__unspecified_bool_type;
-
- public:
- operator __unspecified_bool_type() const // never throws
- { return _M_ptr == 0 ? 0 : &__shared_ptr::_M_ptr; }
-
- bool
- unique() const // never throws
- { return _M_refcount._M_unique(); }
-
- long
- use_count() const // never throws
- { return _M_refcount._M_get_use_count(); }
-
- void
- swap(__shared_ptr<_Tp, _Lp>& __other) // never throws
- {
- std::swap(_M_ptr, __other._M_ptr);
- _M_refcount._M_swap(__other._M_refcount);
- }
-
- private:
- void*
- _M_get_deleter(const std::type_info& __ti) const
- { return _M_refcount._M_get_deleter(__ti); }
-
- template<typename _Tp1, _Lock_policy _Lp1>
- bool
- _M_less(const __shared_ptr<_Tp1, _Lp1>& __rhs) const
- { return _M_refcount < __rhs._M_refcount; }
-
- template<typename _Tp1, _Lock_policy _Lp1> friend class __shared_ptr;
- template<typename _Tp1, _Lock_policy _Lp1> friend class __weak_ptr;
-
- template<typename _Del, typename _Tp1, _Lock_policy _Lp1>
- friend _Del* get_deleter(const __shared_ptr<_Tp1, _Lp1>&);
-
- // Friends injected into enclosing namespace and found by ADL:
- template<typename _Tp1>
- friend inline bool
- operator==(const __shared_ptr& __a, const __shared_ptr<_Tp1, _Lp>& __b)
- { return __a.get() == __b.get(); }
-
- template<typename _Tp1>
- friend inline bool
- operator!=(const __shared_ptr& __a, const __shared_ptr<_Tp1, _Lp>& __b)
- { return __a.get() != __b.get(); }
-
- template<typename _Tp1>
- friend inline bool
- operator<(const __shared_ptr& __a, const __shared_ptr<_Tp1, _Lp>& __b)
- { return __a._M_less(__b); }
-
- _Tp* _M_ptr; // Contained pointer.
- __shared_count<_Lp> _M_refcount; // Reference counter.
- };
-
- // 2.2.3.8 shared_ptr specialized algorithms.
- template<typename _Tp, _Lock_policy _Lp>
- inline void
- swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>& __b)
- { __a.swap(__b); }
-
- // 2.2.3.9 shared_ptr casts
- /** @warning The seemingly equivalent
- * <code>shared_ptr<_Tp, _Lp>(static_cast<_Tp*>(__r.get()))</code>
- * will eventually result in undefined behaviour,
- * attempting to delete the same object twice.
- */
- template<typename _Tp, typename _Tp1, _Lock_policy _Lp>
- inline __shared_ptr<_Tp, _Lp>
- static_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r)
- { return __shared_ptr<_Tp, _Lp>(__r, __static_cast_tag()); }
-
- /** @warning The seemingly equivalent
- * <code>shared_ptr<_Tp, _Lp>(const_cast<_Tp*>(__r.get()))</code>
- * will eventually result in undefined behaviour,
- * attempting to delete the same object twice.
- */
- template<typename _Tp, typename _Tp1, _Lock_policy _Lp>
- inline __shared_ptr<_Tp, _Lp>
- const_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r)
- { return __shared_ptr<_Tp, _Lp>(__r, __const_cast_tag()); }
-
- /** @warning The seemingly equivalent
- * <code>shared_ptr<_Tp, _Lp>(dynamic_cast<_Tp*>(__r.get()))</code>
- * will eventually result in undefined behaviour,
- * attempting to delete the same object twice.
- */
- template<typename _Tp, typename _Tp1, _Lock_policy _Lp>
- inline __shared_ptr<_Tp, _Lp>
- dynamic_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r)
- { return __shared_ptr<_Tp, _Lp>(__r, __dynamic_cast_tag()); }
-
- // 2.2.3.7 shared_ptr I/O
- template<typename _Ch, typename _Tr, typename _Tp, _Lock_policy _Lp>
- std::basic_ostream<_Ch, _Tr>&
- operator<<(std::basic_ostream<_Ch, _Tr>& __os,
- const __shared_ptr<_Tp, _Lp>& __p)
- {
- __os << __p.get();
- return __os;
- }
-
- // 2.2.3.10 shared_ptr get_deleter (experimental)
- template<typename _Del, typename _Tp, _Lock_policy _Lp>
- inline _Del*
- get_deleter(const __shared_ptr<_Tp, _Lp>& __p)
- { return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); }
-
-
- template<typename _Tp, _Lock_policy _Lp>
- class __weak_ptr
- {
- public:
- typedef _Tp element_type;
-
- __weak_ptr()
- : _M_ptr(0), _M_refcount() // never throws
- { }
-
- // Generated copy constructor, assignment, destructor are fine.
-
- // The "obvious" converting constructor implementation:
- //
- // template<typename _Tp1>
- // __weak_ptr(const __weak_ptr<_Tp1, _Lp>& __r)
- // : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) // never throws
- // { }
- //
- // has a serious problem.
- //
- // __r._M_ptr may already have been invalidated. The _M_ptr(__r._M_ptr)
- // conversion may require access to *__r._M_ptr (virtual inheritance).
- //
- // It is not possible to avoid spurious access violations since
- // in multithreaded programs __r._M_ptr may be invalidated at any point.
- template<typename _Tp1>
- __weak_ptr(const __weak_ptr<_Tp1, _Lp>& __r)
- : _M_refcount(__r._M_refcount) // never throws
- {
- __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>)
- _M_ptr = __r.lock().get();
- }
-
- template<typename _Tp1>
- __weak_ptr(const __shared_ptr<_Tp1, _Lp>& __r)
- : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) // never throws
- { __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>) }
-
- template<typename _Tp1>
- __weak_ptr&
- operator=(const __weak_ptr<_Tp1, _Lp>& __r) // never throws
- {
- _M_ptr = __r.lock().get();
- _M_refcount = __r._M_refcount;
- return *this;
- }
-
- template<typename _Tp1>
- __weak_ptr&
- operator=(const __shared_ptr<_Tp1, _Lp>& __r) // never throws
- {
- _M_ptr = __r._M_ptr;
- _M_refcount = __r._M_refcount;
- return *this;
- }
-
- __shared_ptr<_Tp, _Lp>
- lock() const // never throws
- {
-#ifdef __GTHREADS
- // Optimization: avoid throw overhead.
- if (expired())
- return __shared_ptr<element_type, _Lp>();
-
- __try
- {
- return __shared_ptr<element_type, _Lp>(*this);
- }
- __catch(const bad_weak_ptr&)
- {
- // Q: How can we get here?
- // A: Another thread may have invalidated r after the
- // use_count test above.
- return __shared_ptr<element_type, _Lp>();
- }
-
-#else
- // Optimization: avoid try/catch overhead when single threaded.
- return expired() ? __shared_ptr<element_type, _Lp>()
- : __shared_ptr<element_type, _Lp>(*this);
-
-#endif
- } // XXX MT
-
- long
- use_count() const // never throws
- { return _M_refcount._M_get_use_count(); }
-
- bool
- expired() const // never throws
- { return _M_refcount._M_get_use_count() == 0; }
-
- void
- reset() // never throws
- { __weak_ptr().swap(*this); }
-
- void
- swap(__weak_ptr& __s) // never throws
- {
- std::swap(_M_ptr, __s._M_ptr);
- _M_refcount._M_swap(__s._M_refcount);
- }
-
- private:
- // Used by __enable_shared_from_this.
- void
- _M_assign(_Tp* __ptr, const __shared_count<_Lp>& __refcount)
- {
- _M_ptr = __ptr;
- _M_refcount = __refcount;
- }
-
- template<typename _Tp1>
- bool
- _M_less(const __weak_ptr<_Tp1, _Lp>& __rhs) const
- { return _M_refcount < __rhs._M_refcount; }
-
- template<typename _Tp1, _Lock_policy _Lp1> friend class __shared_ptr;
- template<typename _Tp1, _Lock_policy _Lp1> friend class __weak_ptr;
- friend class __enable_shared_from_this<_Tp, _Lp>;
- friend class enable_shared_from_this<_Tp>;
-
- // Friend injected into namespace and found by ADL.
- template<typename _Tp1>
- friend inline bool
- operator<(const __weak_ptr& __lhs, const __weak_ptr<_Tp1, _Lp>& __rhs)
- { return __lhs._M_less(__rhs); }
-
- _Tp* _M_ptr; // Contained pointer.
- __weak_count<_Lp> _M_refcount; // Reference counter.
- };
-
- // 2.2.4.7 weak_ptr specialized algorithms.
- template<typename _Tp, _Lock_policy _Lp>
- inline void
- swap(__weak_ptr<_Tp, _Lp>& __a, __weak_ptr<_Tp, _Lp>& __b)
- { __a.swap(__b); }
-
-
- template<typename _Tp, _Lock_policy _Lp>
- class __enable_shared_from_this
- {
- protected:
- __enable_shared_from_this() { }
-
- __enable_shared_from_this(const __enable_shared_from_this&) { }
-
- __enable_shared_from_this&
- operator=(const __enable_shared_from_this&)
- { return *this; }
-
- ~__enable_shared_from_this() { }
-
- public:
- __shared_ptr<_Tp, _Lp>
- shared_from_this()
- { return __shared_ptr<_Tp, _Lp>(this->_M_weak_this); }
-
- __shared_ptr<const _Tp, _Lp>
- shared_from_this() const
- { return __shared_ptr<const _Tp, _Lp>(this->_M_weak_this); }
-
- private:
- template<typename _Tp1>
- void
- _M_weak_assign(_Tp1* __p, const __shared_count<_Lp>& __n) const
- { _M_weak_this._M_assign(__p, __n); }
-
- template<typename _Tp1>
- friend void
- __enable_shared_from_this_helper(const __shared_count<_Lp>& __pn,
- const __enable_shared_from_this* __pe,
- const _Tp1* __px)
- {
- if (__pe != 0)
- __pe->_M_weak_assign(const_cast<_Tp1*>(__px), __pn);
- }
-
- mutable __weak_ptr<_Tp, _Lp> _M_weak_this;
- };
-
-
- /// shared_ptr
- // The actual shared_ptr, with forwarding constructors and
- // assignment operators.
- template<typename _Tp>
- class shared_ptr
- : public __shared_ptr<_Tp>
- {
- public:
- shared_ptr()
- : __shared_ptr<_Tp>() { }
-
- template<typename _Tp1>
- explicit
- shared_ptr(_Tp1* __p)
- : __shared_ptr<_Tp>(__p) { }
-
- template<typename _Tp1, typename _Deleter>
- shared_ptr(_Tp1* __p, _Deleter __d)
- : __shared_ptr<_Tp>(__p, __d) { }
-
- template<typename _Tp1>
- shared_ptr(const shared_ptr<_Tp1>& __r)
- : __shared_ptr<_Tp>(__r) { }
-
- template<typename _Tp1>
- explicit
- shared_ptr(const weak_ptr<_Tp1>& __r)
- : __shared_ptr<_Tp>(__r) { }
-
-#if !defined(__GXX_EXPERIMENTAL_CXX0X__) || _GLIBCXX_DEPRECATED
- template<typename _Tp1>
- explicit
- shared_ptr(std::auto_ptr<_Tp1>& __r)
- : __shared_ptr<_Tp>(__r) { }
-#endif
-
- template<typename _Tp1>
- shared_ptr(const shared_ptr<_Tp1>& __r, __static_cast_tag)
- : __shared_ptr<_Tp>(__r, __static_cast_tag()) { }
-
- template<typename _Tp1>
- shared_ptr(const shared_ptr<_Tp1>& __r, __const_cast_tag)
- : __shared_ptr<_Tp>(__r, __const_cast_tag()) { }
-
- template<typename _Tp1>
- shared_ptr(const shared_ptr<_Tp1>& __r, __dynamic_cast_tag)
- : __shared_ptr<_Tp>(__r, __dynamic_cast_tag()) { }
-
- template<typename _Tp1>
- shared_ptr&
- operator=(const shared_ptr<_Tp1>& __r) // never throws
- {
- this->__shared_ptr<_Tp>::operator=(__r);
- return *this;
- }
-
-#if !defined(__GXX_EXPERIMENTAL_CXX0X__) || _GLIBCXX_DEPRECATED
- template<typename _Tp1>
- shared_ptr&
- operator=(std::auto_ptr<_Tp1>& __r)
- {
- this->__shared_ptr<_Tp>::operator=(__r);
- return *this;
- }
-#endif
- };
-
- // 2.2.3.8 shared_ptr specialized algorithms.
- template<typename _Tp>
- inline void
- swap(__shared_ptr<_Tp>& __a, __shared_ptr<_Tp>& __b)
- { __a.swap(__b); }
-
- template<typename _Tp, typename _Tp1>
- inline shared_ptr<_Tp>
- static_pointer_cast(const shared_ptr<_Tp1>& __r)
- { return shared_ptr<_Tp>(__r, __static_cast_tag()); }
-
- template<typename _Tp, typename _Tp1>
- inline shared_ptr<_Tp>
- const_pointer_cast(const shared_ptr<_Tp1>& __r)
- { return shared_ptr<_Tp>(__r, __const_cast_tag()); }
-
- template<typename _Tp, typename _Tp1>
- inline shared_ptr<_Tp>
- dynamic_pointer_cast(const shared_ptr<_Tp1>& __r)
- { return shared_ptr<_Tp>(__r, __dynamic_cast_tag()); }
-
-
- /// weak_ptr
- // The actual weak_ptr, with forwarding constructors and
- // assignment operators.
- template<typename _Tp>
- class weak_ptr
- : public __weak_ptr<_Tp>
- {
- public:
- weak_ptr()
- : __weak_ptr<_Tp>() { }
-
- template<typename _Tp1>
- weak_ptr(const weak_ptr<_Tp1>& __r)
- : __weak_ptr<_Tp>(__r) { }
-
- template<typename _Tp1>
- weak_ptr(const shared_ptr<_Tp1>& __r)
- : __weak_ptr<_Tp>(__r) { }
-
- template<typename _Tp1>
- weak_ptr&
- operator=(const weak_ptr<_Tp1>& __r) // never throws
- {
- this->__weak_ptr<_Tp>::operator=(__r);
- return *this;
- }
-
- template<typename _Tp1>
- weak_ptr&
- operator=(const shared_ptr<_Tp1>& __r) // never throws
- {
- this->__weak_ptr<_Tp>::operator=(__r);
- return *this;
- }
-
- shared_ptr<_Tp>
- lock() const // never throws
- {
-#ifdef __GTHREADS
- if (this->expired())
- return shared_ptr<_Tp>();
-
- __try
- {
- return shared_ptr<_Tp>(*this);
- }
- __catch(const bad_weak_ptr&)
- {
- return shared_ptr<_Tp>();
- }
-#else
- return this->expired() ? shared_ptr<_Tp>()
- : shared_ptr<_Tp>(*this);
-#endif
- }
- };
-
- /// enable_shared_from_this
- template<typename _Tp>
- class enable_shared_from_this
- {
- protected:
- enable_shared_from_this() { }
-
- enable_shared_from_this(const enable_shared_from_this&) { }
-
- enable_shared_from_this&
- operator=(const enable_shared_from_this&)
- { return *this; }
-
- ~enable_shared_from_this() { }
-
- public:
- shared_ptr<_Tp>
- shared_from_this()
- { return shared_ptr<_Tp>(this->_M_weak_this); }
-
- shared_ptr<const _Tp>
- shared_from_this() const
- { return shared_ptr<const _Tp>(this->_M_weak_this); }
-
- private:
- template<typename _Tp1>
- void
- _M_weak_assign(_Tp1* __p, const __shared_count<>& __n) const
- { _M_weak_this._M_assign(__p, __n); }
-
- template<typename _Tp1>
- friend void
- __enable_shared_from_this_helper(const __shared_count<>& __pn,
- const enable_shared_from_this* __pe,
- const _Tp1* __px)
- {
- if (__pe != 0)
- __pe->_M_weak_assign(const_cast<_Tp1*>(__px), __pn);
- }
-
- mutable weak_ptr<_Tp> _M_weak_this;
- };
-
-}
-}
-
-#endif // _TR1_SHARED_PTR_H
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/special_function_util.h b/gcc-4.4.3/libstdc++-v3/include/tr1/special_function_util.h
deleted file mode 100644
index d2699bd85..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/special_function_util.h
+++ /dev/null
@@ -1,144 +0,0 @@
-// Special functions -*- C++ -*-
-
-// Copyright (C) 2006, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/special_function_util.h
- * This is an internal header file, included by other library headers.
- * You should not attempt to use it directly.
- */
-
-//
-// ISO C++ 14882 TR1: 5.2 Special functions
-//
-
-// Written by Edward Smith-Rowland based on numerous mathematics books.
-
-#ifndef _GLIBCXX_TR1_SPECIAL_FUNCTION_UTIL_H
-#define _GLIBCXX_TR1_SPECIAL_FUNCTION_UTIL_H 1
-
-namespace std
-{
-namespace tr1
-{
-
- namespace __detail
- {
-
- /// A class to encapsulate type dependent floating point
- /// constants. Not everything will be able to be expressed as
- /// type logic.
- template<typename _Tp>
- struct __floating_point_constant
- {
- static const _Tp __value;
- };
-
-
- /// A structure for numeric constants.
- template<typename _Tp>
- struct __numeric_constants
- {
- /// Constant @f$ \pi @f$.
- static _Tp __pi() throw()
- { return static_cast<_Tp>(3.1415926535897932384626433832795029L); }
- /// Constant @f$ \pi / 2 @f$.
- static _Tp __pi_2() throw()
- { return static_cast<_Tp>(1.5707963267948966192313216916397514L); }
- /// Constant @f$ \pi / 3 @f$.
- static _Tp __pi_3() throw()
- { return static_cast<_Tp>(1.0471975511965977461542144610931676L); }
- /// Constant @f$ \pi / 4 @f$.
- static _Tp __pi_4() throw()
- { return static_cast<_Tp>(0.7853981633974483096156608458198757L); }
- /// Constant @f$ 1 / \pi @f$.
- static _Tp __1_pi() throw()
- { return static_cast<_Tp>(0.3183098861837906715377675267450287L); }
- /// Constant @f$ 2 / \sqrt(\pi) @f$.
- static _Tp __2_sqrtpi() throw()
- { return static_cast<_Tp>(1.1283791670955125738961589031215452L); }
- /// Constant @f$ \sqrt(2) @f$.
- static _Tp __sqrt2() throw()
- { return static_cast<_Tp>(1.4142135623730950488016887242096981L); }
- /// Constant @f$ \sqrt(3) @f$.
- static _Tp __sqrt3() throw()
- { return static_cast<_Tp>(1.7320508075688772935274463415058723L); }
- /// Constant @f$ \sqrt(\pi/2) @f$.
- static _Tp __sqrtpio2() throw()
- { return static_cast<_Tp>(1.2533141373155002512078826424055226L); }
- /// Constant @f$ 1 / sqrt(2) @f$.
- static _Tp __sqrt1_2() throw()
- { return static_cast<_Tp>(0.7071067811865475244008443621048490L); }
- /// Constant @f$ \log(\pi) @f$.
- static _Tp __lnpi() throw()
- { return static_cast<_Tp>(1.1447298858494001741434273513530587L); }
- /// Constant Euler's constant @f$ \gamma_E @f$.
- static _Tp __gamma_e() throw()
- { return static_cast<_Tp>(0.5772156649015328606065120900824024L); }
- /// Constant Euler-Mascheroni @f$ e @f$
- static _Tp __euler() throw()
- { return static_cast<_Tp>(2.7182818284590452353602874713526625L); }
- };
-
-
-#if _GLIBCXX_USE_C99_MATH && !_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC
-
- /// This is a wrapper for the isnan function. Otherwise, for NaN,
- /// all comparisons result in false. If/when we build a std::isnan
- /// out of intrinsics, this will disappear completely in favor of
- /// std::isnan.
- template<typename _Tp>
- inline bool __isnan(const _Tp __x)
- {
- return std::isnan(__x);
- }
-
-#else
-
- template<typename _Tp>
- inline bool __isnan(const _Tp __x)
- {
- return __builtin_isnan(__x);
- }
-
- template<>
- inline bool __isnan<float>(const float __x)
- {
- return __builtin_isnanf(__x);
- }
-
- template<>
- inline bool __isnan<long double>(const long double __x)
- {
- return __builtin_isnanl(__x);
- }
-
-#endif
-
- } // namespace __detail
-
-}
-}
-
-#endif // _GLIBCXX_TR1_SPECIAL_FUNCTION_UTIL_H
-
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/stdarg.h b/gcc-4.4.3/libstdc++-v3/include/tr1/stdarg.h
deleted file mode 100644
index 41173e847..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/stdarg.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 stdarg.h -*- C++ -*-
-
-// Copyright (C) 2006, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/stdarg.h
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _TR1_STDARG_H
-#define _TR1_STDARG_H 1
-
-#include <tr1/cstdarg>
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/stdbool.h b/gcc-4.4.3/libstdc++-v3/include/tr1/stdbool.h
deleted file mode 100644
index 3861e4457..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/stdbool.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 stdbool.h -*- C++ -*-
-
-// Copyright (C) 2006, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/stdbool.h
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _TR1_STDBOOL_H
-#define _TR1_STDBOOL_H 1
-
-#include <tr1/cstdbool>
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/stdint.h b/gcc-4.4.3/libstdc++-v3/include/tr1/stdint.h
deleted file mode 100644
index 8113fa5ad..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/stdint.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 stdint.h -*- C++ -*-
-
-// Copyright (C) 2006, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/stdint.h
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _TR1_STDINT_H
-#define _TR1_STDINT_H 1
-
-#include <tr1/cstdint>
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/stdio.h b/gcc-4.4.3/libstdc++-v3/include/tr1/stdio.h
deleted file mode 100644
index f1edf8395..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/stdio.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 stdio.h -*- C++ -*-
-
-// Copyright (C) 2006, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/stdio.h
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _TR1_STDIO_H
-#define _TR1_STDIO_H 1
-
-#include <tr1/cstdio>
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/stdlib.h b/gcc-4.4.3/libstdc++-v3/include/tr1/stdlib.h
deleted file mode 100644
index 5e57aecbf..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/stdlib.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// TR1 stdlib.h -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/stdlib.h
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_STDLIB_H
-#define _GLIBCXX_TR1_STDLIB_H 1
-
-#include <tr1/cstdlib>
-
-#if _GLIBCXX_HOSTED
-
-#if _GLIBCXX_USE_C99
-
-using std::tr1::atoll;
-using std::tr1::strtoll;
-using std::tr1::strtoull;
-
-using std::tr1::abs;
-#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
-using std::tr1::div;
-#endif
-
-#endif
-
-#endif
-
-#endif // _GLIBCXX_TR1_STDLIB_H
-
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/tgmath.h b/gcc-4.4.3/libstdc++-v3/include/tr1/tgmath.h
deleted file mode 100644
index c807031e5..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/tgmath.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 tgmath.h -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/tgmath.h
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_TGMATH_H
-#define _GLIBCXX_TR1_TGMATH_H 1
-
-#include <tr1/ctgmath>
-
-#endif // _GLIBCXX_TR1_TGMATH_H
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/tuple b/gcc-4.4.3/libstdc++-v3/include/tr1/tuple
deleted file mode 100644
index ff9f22061..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/tuple
+++ /dev/null
@@ -1,422 +0,0 @@
-// class template tuple -*- C++ -*-
-
-// Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/tuple
-* This is a TR1 C++ Library header.
-*/
-
-// Chris Jefferson <chris@bubblescope.net>
-// Variadic Templates support by Douglas Gregor <doug.gregor@gmail.com>
-
-#ifndef _GLIBCXX_TR1_TUPLE
-#define _GLIBCXX_TR1_TUPLE 1
-
-#pragma GCC system_header
-
-#include <utility>
-
-namespace std
-{
-namespace tr1
-{
- // Adds a const reference to a non-reference type.
- template<typename _Tp>
- struct __add_c_ref
- { typedef const _Tp& type; };
-
- template<typename _Tp>
- struct __add_c_ref<_Tp&>
- { typedef _Tp& type; };
-
- // Adds a reference to a non-reference type.
- template<typename _Tp>
- struct __add_ref
- { typedef _Tp& type; };
-
- template<typename _Tp>
- struct __add_ref<_Tp&>
- { typedef _Tp& type; };
-
- /**
- * Contains the actual implementation of the @c tuple template, stored
- * as a recursive inheritance hierarchy from the first element (most
- * derived class) to the last (least derived class). The @c Idx
- * parameter gives the 0-based index of the element stored at this
- * point in the hierarchy; we use it to implement a constant-time
- * get() operation.
- */
- template<int _Idx, typename... _Elements>
- struct _Tuple_impl;
-
- /**
- * Zero-element tuple implementation. This is the basis case for the
- * inheritance recursion.
- */
- template<int _Idx>
- struct _Tuple_impl<_Idx> { };
-
- /**
- * Recursive tuple implementation. Here we store the @c Head element
- * and derive from a @c Tuple_impl containing the remaining elements
- * (which contains the @c Tail).
- */
- template<int _Idx, typename _Head, typename... _Tail>
- struct _Tuple_impl<_Idx, _Head, _Tail...>
- : public _Tuple_impl<_Idx + 1, _Tail...>
- {
- typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited;
-
- _Head _M_head;
-
- _Inherited& _M_tail() { return *this; }
- const _Inherited& _M_tail() const { return *this; }
-
- _Tuple_impl() : _Inherited(), _M_head() { }
-
- explicit
- _Tuple_impl(typename __add_c_ref<_Head>::type __head,
- typename __add_c_ref<_Tail>::type... __tail)
- : _Inherited(__tail...), _M_head(__head) { }
-
- template<typename... _UElements>
- _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in)
- : _Inherited(__in._M_tail()), _M_head(__in._M_head) { }
-
- _Tuple_impl(const _Tuple_impl& __in)
- : _Inherited(__in._M_tail()), _M_head(__in._M_head) { }
-
- template<typename... _UElements>
- _Tuple_impl&
- operator=(const _Tuple_impl<_Idx, _UElements...>& __in)
- {
- _M_head = __in._M_head;
- _M_tail() = __in._M_tail();
- return *this;
- }
-
- _Tuple_impl&
- operator=(const _Tuple_impl& __in)
- {
- _M_head = __in._M_head;
- _M_tail() = __in._M_tail();
- return *this;
- }
- };
-
- template<typename... _Elements>
- class tuple : public _Tuple_impl<0, _Elements...>
- {
- typedef _Tuple_impl<0, _Elements...> _Inherited;
-
- public:
- tuple() : _Inherited() { }
-
- explicit
- tuple(typename __add_c_ref<_Elements>::type... __elements)
- : _Inherited(__elements...) { }
-
- template<typename... _UElements>
- tuple(const tuple<_UElements...>& __in)
- : _Inherited(__in) { }
-
- tuple(const tuple& __in)
- : _Inherited(__in) { }
-
- template<typename... _UElements>
- tuple&
- operator=(const tuple<_UElements...>& __in)
- {
- static_cast<_Inherited&>(*this) = __in;
- return *this;
- }
-
- tuple&
- operator=(const tuple& __in)
- {
- static_cast<_Inherited&>(*this) = __in;
- return *this;
- }
- };
-
- template<> class tuple<> { };
-
- // 2-element tuple, with construction and assignment from a pair.
- template<typename _T1, typename _T2>
- class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2>
- {
- typedef _Tuple_impl<0, _T1, _T2> _Inherited;
-
- public:
- tuple() : _Inherited() { }
-
- explicit
- tuple(typename __add_c_ref<_T1>::type __a1,
- typename __add_c_ref<_T2>::type __a2)
- : _Inherited(__a1, __a2) { }
-
- template<typename _U1, typename _U2>
- tuple(const tuple<_U1, _U2>& __in)
- : _Inherited(__in) { }
-
- tuple(const tuple& __in)
- : _Inherited(__in) { }
-
- template<typename _U1, typename _U2>
- tuple(const pair<_U1, _U2>& __in)
- : _Inherited(_Tuple_impl<0,
- typename __add_c_ref<_U1>::type,
- typename __add_c_ref<_U2>::type>(__in.first,
- __in.second))
- { }
-
- template<typename _U1, typename _U2>
- tuple&
- operator=(const tuple<_U1, _U2>& __in)
- {
- static_cast<_Inherited&>(*this) = __in;
- return *this;
- }
-
- tuple&
- operator=(const tuple& __in)
- {
- static_cast<_Inherited&>(*this) = __in;
- return *this;
- }
-
- template<typename _U1, typename _U2>
- tuple&
- operator=(const pair<_U1, _U2>& __in)
- {
- this->_M_head = __in.first;
- this->_M_tail()._M_head = __in.second;
- return *this;
- }
- };
-
-
- /// Gives the type of the ith element of a given tuple type.
- template<int __i, typename _Tp>
- struct tuple_element;
-
- /**
- * Recursive case for tuple_element: strip off the first element in
- * the tuple and retrieve the (i-1)th element of the remaining tuple.
- */
- template<int __i, typename _Head, typename... _Tail>
- struct tuple_element<__i, tuple<_Head, _Tail...> >
- : tuple_element<__i - 1, tuple<_Tail...> > { };
-
- /**
- * Basis case for tuple_element: The first element is the one we're seeking.
- */
- template<typename _Head, typename... _Tail>
- struct tuple_element<0, tuple<_Head, _Tail...> >
- {
- typedef _Head type;
- };
-
- /// Finds the size of a given tuple type.
- template<typename _Tp>
- struct tuple_size;
-
- /// class tuple_size
- template<typename... _Elements>
- struct tuple_size<tuple<_Elements...> >
- {
- static const int value = sizeof...(_Elements);
- };
-
- template<typename... _Elements>
- const int tuple_size<tuple<_Elements...> >::value;
-
- template<int __i, typename _Head, typename... _Tail>
- inline typename __add_ref<_Head>::type
- __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t)
- {
- return __t._M_head;
- }
-
- template<int __i, typename _Head, typename... _Tail>
- inline typename __add_c_ref<_Head>::type
- __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t)
- {
- return __t._M_head;
- }
-
- // Return a reference (const reference) to the ith element of a tuple.
- // Any const or non-const ref elements are returned with their original type.
- template<int __i, typename... _Elements>
- inline typename __add_ref<
- typename tuple_element<__i, tuple<_Elements...> >::type
- >::type
- get(tuple<_Elements...>& __t)
- {
- return __get_helper<__i>(__t);
- }
-
- template<int __i, typename... _Elements>
- inline typename __add_c_ref<
- typename tuple_element<__i, tuple<_Elements...> >::type
- >::type
- get(const tuple<_Elements...>& __t)
- {
- return __get_helper<__i>(__t);
- }
-
- // This class helps construct the various comparison operations on tuples
- template<int __check_equal_size, int __i, int __j,
- typename _Tp, typename _Up>
- struct __tuple_compare;
-
- template<int __i, int __j, typename _Tp, typename _Up>
- struct __tuple_compare<0, __i, __j, _Tp, _Up>
- {
- static bool __eq(const _Tp& __t, const _Up& __u)
- {
- return (get<__i>(__t) == get<__i>(__u) &&
- __tuple_compare<0, __i+1, __j, _Tp, _Up>::__eq(__t, __u));
- }
-
- static bool __less(const _Tp& __t, const _Up& __u)
- {
- return ((get<__i>(__t) < get<__i>(__u))
- || !(get<__i>(__u) < get<__i>(__t)) &&
- __tuple_compare<0, __i+1, __j, _Tp, _Up>::__less(__t, __u));
- }
- };
-
- template<int __i, typename _Tp, typename _Up>
- struct __tuple_compare<0, __i, __i, _Tp, _Up>
- {
- static bool __eq(const _Tp&, const _Up&)
- { return true; }
-
- static bool __less(const _Tp&, const _Up&)
- { return false; }
- };
-
- template<typename... _TElements, typename... _UElements>
- bool
- operator==(const tuple<_TElements...>& __t,
- const tuple<_UElements...>& __u)
- {
- typedef tuple<_TElements...> _Tp;
- typedef tuple<_UElements...> _Up;
- return (__tuple_compare<tuple_size<_Tp>::value - tuple_size<_Up>::value,
- 0, tuple_size<_Tp>::value, _Tp, _Up>::__eq(__t, __u));
- }
-
- template<typename... _TElements, typename... _UElements>
- bool
- operator<(const tuple<_TElements...>& __t,
- const tuple<_UElements...>& __u)
- {
- typedef tuple<_TElements...> _Tp;
- typedef tuple<_UElements...> _Up;
- return (__tuple_compare<tuple_size<_Tp>::value - tuple_size<_Up>::value,
- 0, tuple_size<_Tp>::value, _Tp, _Up>::__less(__t, __u));
- }
-
- template<typename... _TElements, typename... _UElements>
- inline bool
- operator!=(const tuple<_TElements...>& __t,
- const tuple<_UElements...>& __u)
- { return !(__t == __u); }
-
- template<typename... _TElements, typename... _UElements>
- inline bool
- operator>(const tuple<_TElements...>& __t,
- const tuple<_UElements...>& __u)
- { return __u < __t; }
-
- template<typename... _TElements, typename... _UElements>
- inline bool
- operator<=(const tuple<_TElements...>& __t,
- const tuple<_UElements...>& __u)
- { return !(__u < __t); }
-
- template<typename... _TElements, typename... _UElements>
- inline bool
- operator>=(const tuple<_TElements...>& __t,
- const tuple<_UElements...>& __u)
- { return !(__t < __u); }
-
- template<typename _Tp>
- class reference_wrapper;
-
- // Helper which adds a reference to a type when given a reference_wrapper
- template<typename _Tp>
- struct __strip_reference_wrapper
- {
- typedef _Tp __type;
- };
-
- template<typename _Tp>
- struct __strip_reference_wrapper<reference_wrapper<_Tp> >
- {
- typedef _Tp& __type;
- };
-
- template<typename _Tp>
- struct __strip_reference_wrapper<const reference_wrapper<_Tp> >
- {
- typedef _Tp& __type;
- };
-
- template<typename... _Elements>
- inline tuple<typename __strip_reference_wrapper<_Elements>::__type...>
- make_tuple(_Elements... __args)
- {
- typedef tuple<typename __strip_reference_wrapper<_Elements>::__type...>
- __result_type;
- return __result_type(__args...);
- }
-
- template<typename... _Elements>
- inline tuple<_Elements&...>
- tie(_Elements&... __args)
- {
- return tuple<_Elements&...>(__args...);
- }
-
- // A class (and instance) which can be used in 'tie' when an element
- // of a tuple is not required
- struct _Swallow_assign
- {
- template<class _Tp>
- _Swallow_assign&
- operator=(const _Tp&)
- { return *this; }
- };
-
- // TODO: Put this in some kind of shared file.
- namespace
- {
- _Swallow_assign ignore;
- }; // anonymous namespace
-}
-}
-
-#endif // _GLIBCXX_TR1_TUPLE
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/type_traits b/gcc-4.4.3/libstdc++-v3/include/tr1/type_traits
deleted file mode 100644
index fe28f8478..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/type_traits
+++ /dev/null
@@ -1,249 +0,0 @@
-// TR1 type_traits -*- C++ -*-
-
-// Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/type_traits
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_TYPE_TRAITS
-#define _GLIBCXX_TR1_TYPE_TRAITS 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <cstddef>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/type_traits>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/type_traits>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-namespace std
-{
-namespace tr1
-{
-#define _DEFINE_SPEC(_Trait, _Type) \
- template<> \
- struct _Trait<_Type> \
- : public true_type { };
-
- template<typename>
- struct is_reference
- : public false_type { };
-
- template<typename _Tp>
- struct is_reference<_Tp&>
- : public true_type { };
-
- template<typename _Tp>
- struct is_pod
- : public integral_constant<bool, __is_pod(_Tp) || is_void<_Tp>::value>
- { };
-
- template<typename _Tp>
- struct has_trivial_constructor
- : public integral_constant<bool, is_pod<_Tp>::value>
- { };
-
- template<typename _Tp>
- struct has_trivial_copy
- : public integral_constant<bool, is_pod<_Tp>::value>
- { };
-
- template<typename _Tp>
- struct has_trivial_assign
- : public integral_constant<bool, is_pod<_Tp>::value>
- { };
-
- template<typename _Tp>
- struct has_trivial_destructor
- : public integral_constant<bool, is_pod<_Tp>::value>
- { };
-
- template<typename _Tp>
- struct has_nothrow_constructor
- : public integral_constant<bool, is_pod<_Tp>::value>
- { };
-
- template<typename _Tp>
- struct has_nothrow_copy
- : public integral_constant<bool, is_pod<_Tp>::value>
- { };
-
- template<typename _Tp>
- struct has_nothrow_assign
- : public integral_constant<bool, is_pod<_Tp>::value>
- { };
-
- template<typename>
- struct __is_signed_helper
- : public false_type { };
- _DEFINE_SPEC(__is_signed_helper, signed char)
- _DEFINE_SPEC(__is_signed_helper, short)
- _DEFINE_SPEC(__is_signed_helper, int)
- _DEFINE_SPEC(__is_signed_helper, long)
- _DEFINE_SPEC(__is_signed_helper, long long)
-
- template<typename _Tp>
- struct is_signed
- : public integral_constant<bool, (__is_signed_helper<typename
- remove_cv<_Tp>::type>::value)>
- { };
-
- template<typename>
- struct __is_unsigned_helper
- : public false_type { };
- _DEFINE_SPEC(__is_unsigned_helper, unsigned char)
- _DEFINE_SPEC(__is_unsigned_helper, unsigned short)
- _DEFINE_SPEC(__is_unsigned_helper, unsigned int)
- _DEFINE_SPEC(__is_unsigned_helper, unsigned long)
- _DEFINE_SPEC(__is_unsigned_helper, unsigned long long)
-
- template<typename _Tp>
- struct is_unsigned
- : public integral_constant<bool, (__is_unsigned_helper<typename
- remove_cv<_Tp>::type>::value)>
- { };
-
- template<typename _Base, typename _Derived>
- struct __is_base_of_helper
- {
- typedef typename remove_cv<_Base>::type _NoCv_Base;
- typedef typename remove_cv<_Derived>::type _NoCv_Derived;
- static const bool __value = (is_same<_Base, _Derived>::value
- || (__is_base_of(_Base, _Derived)
- && !is_same<_NoCv_Base,
- _NoCv_Derived>::value));
- };
-
- template<typename _Base, typename _Derived>
- struct is_base_of
- : public integral_constant<bool,
- __is_base_of_helper<_Base, _Derived>::__value>
- { };
-
- template<typename _From, typename _To>
- struct __is_convertible_simple
- : public __sfinae_types
- {
- private:
- static __one __test(_To);
- static __two __test(...);
- static _From __makeFrom();
-
- public:
- static const bool __value = sizeof(__test(__makeFrom())) == 1;
- };
-
- template<typename _Tp>
- struct add_reference;
-
- template<typename _Tp>
- struct __is_int_or_cref
- {
- typedef typename remove_reference<_Tp>::type __rr_Tp;
- static const bool __value = (is_integral<_Tp>::value
- || (is_integral<__rr_Tp>::value
- && is_const<__rr_Tp>::value
- && !is_volatile<__rr_Tp>::value));
- };
-
- template<typename _From, typename _To,
- bool = (is_void<_From>::value || is_void<_To>::value
- || is_function<_To>::value || is_array<_To>::value
- // This special case is here only to avoid warnings.
- || (is_floating_point<typename
- remove_reference<_From>::type>::value
- && __is_int_or_cref<_To>::__value))>
- struct __is_convertible_helper
- {
- // "An imaginary lvalue of type From...".
- static const bool __value = (__is_convertible_simple<typename
- add_reference<_From>::type, _To>::__value);
- };
-
- template<typename _From, typename _To>
- struct __is_convertible_helper<_From, _To, true>
- { static const bool __value = (is_void<_To>::value
- || (__is_int_or_cref<_To>::__value
- && !is_void<_From>::value)); };
-
- template<typename _From, typename _To>
- struct is_convertible
- : public integral_constant<bool,
- __is_convertible_helper<_From, _To>::__value>
- { };
-
- // reference modifications [4.7.2].
- template<typename _Tp>
- struct remove_reference
- { typedef _Tp type; };
-
- template<typename _Tp>
- struct remove_reference<_Tp&>
- { typedef _Tp type; };
-
- // NB: Careful with reference to void.
- template<typename _Tp, bool = (is_void<_Tp>::value
- || is_reference<_Tp>::value)>
- struct __add_reference_helper
- { typedef _Tp& type; };
-
- template<typename _Tp>
- struct __add_reference_helper<_Tp, true>
- { typedef _Tp type; };
-
- template<typename _Tp>
- struct add_reference
- : public __add_reference_helper<_Tp>
- { };
-
- // other transformations [4.8].
- template<std::size_t _Len, std::size_t _Align>
- struct aligned_storage
- {
- union type
- {
- unsigned char __data[_Len];
- struct __attribute__((__aligned__((_Align)))) { } __align;
- };
- };
-
-#undef _DEFINE_SPEC
-}
-}
-
-#endif // _GLIBCXX_TR1_TYPE_TRAITS
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/unordered_map b/gcc-4.4.3/libstdc++-v3/include/tr1/unordered_map
deleted file mode 100644
index 316630f4c..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/unordered_map
+++ /dev/null
@@ -1,61 +0,0 @@
-// TR1 unordered_map -*- C++ -*-
-
-// Copyright (C) 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/unordered_map
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_UNORDERED_MAP
-#define _GLIBCXX_TR1_UNORDERED_MAP 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <utility>
-#include <bits/stl_algobase.h>
-#include <bits/allocator.h>
-#include <bits/stl_function.h> // equal_to, _Identity, _Select1st
-#include <bits/stringfwd.h>
-#include <tr1/type_traits>
-#include <tr1/functional_hash.h>
-#include <tr1/hashtable.h>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/unordered_map>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/unordered_map>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_UNORDERED_MAP
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/unordered_set b/gcc-4.4.3/libstdc++-v3/include/tr1/unordered_set
deleted file mode 100644
index 3bd09444e..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/unordered_set
+++ /dev/null
@@ -1,61 +0,0 @@
-// TR1 unordered_set -*- C++ -*-
-
-// Copyright (C) 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/unordered_set
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_UNORDERED_SET
-#define _GLIBCXX_TR1_UNORDERED_SET 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <utility>
-#include <bits/stl_algobase.h>
-#include <bits/allocator.h>
-#include <bits/stl_function.h> // equal_to, _Identity, _Select1st
-#include <bits/stringfwd.h>
-#include <tr1/type_traits>
-#include <tr1/functional_hash.h>
-#include <tr1/hashtable.h>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/unordered_set>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/unordered_set>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_UNORDERED_SET
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/utility b/gcc-4.4.3/libstdc++-v3/include/tr1/utility
deleted file mode 100644
index 0aac2b282..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/utility
+++ /dev/null
@@ -1,56 +0,0 @@
-// TR1 utility -*- C++ -*-
-
-// Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/utility
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_UTILITY
-#define _GLIBCXX_TR1_UTILITY 1
-
-#pragma GCC system_header
-
-#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
-# error TR1 header cannot be included from C++0x header
-#endif
-
-#include <bits/c++config.h>
-#include <bits/stl_relops.h>
-#include <bits/stl_pair.h>
-
-#if defined(_GLIBCXX_INCLUDE_AS_TR1)
-# include <tr1_impl/utility>
-#else
-# define _GLIBCXX_INCLUDE_AS_TR1
-# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
-# define _GLIBCXX_END_NAMESPACE_TR1 }
-# define _GLIBCXX_TR1 tr1::
-# include <tr1_impl/utility>
-# undef _GLIBCXX_TR1
-# undef _GLIBCXX_END_NAMESPACE_TR1
-# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
-# undef _GLIBCXX_INCLUDE_AS_TR1
-#endif
-
-#endif // _GLIBCXX_TR1_UTILITY
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/wchar.h b/gcc-4.4.3/libstdc++-v3/include/tr1/wchar.h
deleted file mode 100644
index 599604896..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/wchar.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 wchar.h -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/wchar.h
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_WCHAR_H
-#define _GLIBCXX_TR1_WCHAR_H 1
-
-#include <tr1/cwchar>
-
-#endif // _GLIBCXX_TR1_WCHAR_H
diff --git a/gcc-4.4.3/libstdc++-v3/include/tr1/wctype.h b/gcc-4.4.3/libstdc++-v3/include/tr1/wctype.h
deleted file mode 100644
index 604948a58..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/tr1/wctype.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// TR1 wctype.h -*- C++ -*-
-
-// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file tr1/wctype.h
- * This is a TR1 C++ Library header.
- */
-
-#ifndef _GLIBCXX_TR1_WCTYPE_H
-#define _GLIBCXX_TR1_WCTYPE_H 1
-
-#include <tr1/cwctype>
-
-#endif // _GLIBCXX_TR1_WCTYPE_H