• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-arm-linux-2.6.36-uclibc-4.5.3/arm-brcm-linux-uclibcgnueabi/include/c++/4.5.3/bits/
1// -*- C++ -*- C math library.
2
3// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
4// Free Software Foundation, Inc.
5//
6// This file is part of the GNU ISO C++ Library.  This library is free
7// software; you can redistribute it and/or modify it under the
8// terms of the GNU General Public License as published by the
9// Free Software Foundation; either version 3, or (at your option)
10// any later version.
11
12// This library is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15// GNU General Public License for more details.
16
17// Under Section 7 of GPL version 3, you are granted additional
18// permissions described in the GCC Runtime Library Exception, version
19// 3.1, as published by the Free Software Foundation.
20
21// You should have received a copy of the GNU General Public License and
22// a copy of the GCC Runtime Library Exception along with this program;
23// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
24// <http://www.gnu.org/licenses/>.
25
26// This file was written by Gabriel Dos Reis <gdr@codesourcery.com>
27
28/** @file cmath.tcc
29 *  This is a Standard C++ Library file.
30 */
31
32#ifndef _GLIBCXX_CMATH_TCC
33#define _GLIBCXX_CMATH_TCC 1
34
35_GLIBCXX_BEGIN_NAMESPACE(std)
36
37  template<typename _Tp>
38    inline _Tp
39    __cmath_power(_Tp __x, unsigned int __n)
40    {
41      _Tp __y = __n % 2 ? __x : _Tp(1);
42
43      while (__n >>= 1)
44        {
45          __x = __x * __x;
46          if (__n % 2)
47            __y = __y * __x;
48        }
49
50      return __y;
51    }
52
53_GLIBCXX_END_NAMESPACE
54
55#endif
56