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

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libstdc++-v3/] [include/] [c/] [std_cmath.h] - Blame information for rev 17

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 17 jlechner
// -*- C++ -*- forwarding header.
2
 
3
// Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
4
//
5
// This file is part of the GNU ISO C++ Library.  This library is free
6
// software; you can redistribute it and/or modify it under the
7
// terms of the GNU General Public License as published by the
8
// Free Software Foundation; either version 2, or (at your option)
9
// any later version.
10
 
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
// GNU General Public License for more details.
15
 
16
// You should have received a copy of the GNU General Public License along
17
// with this library; see the file COPYING.  If not, write to the Free
18
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
19
// USA.
20
 
21
// As a special exception, you may use this file as part of a free software
22
// library without restriction.  Specifically, if other files instantiate
23
// templates or use macros or inline functions from this file, or you compile
24
// this file and link it with other files to produce an executable, this
25
// file does not by itself cause the resulting executable to be covered by
26
// the GNU General Public License.  This exception does not however
27
// invalidate any other reasons why the executable file might be covered by
28
// the GNU General Public License.
29
 
30
//
31
// ISO C++ 14882: 26.5  C library
32
//
33
 
34
#ifndef _GLIBCXX_CMATH
35
#define _GLIBCXX_CMATH 1
36
 
37
#pragma GCC system_header
38
 
39
#include <bits/c++config.h>
40
 
41
#include_next <math.h>
42
 
43
// Get rid of those macros defined in <math.h> in lieu of real functions.
44
#undef abs
45
#undef div
46
#undef acos
47
#undef asin
48
#undef atan
49
#undef atan2
50
#undef ceil
51
#undef cos
52
#undef cosh
53
#undef exp
54
#undef fabs
55
#undef floor
56
#undef fmod
57
#undef frexp
58
#undef ldexp
59
#undef log
60
#undef log10
61
#undef modf
62
#undef pow
63
#undef sin
64
#undef sinh
65
#undef sqrt
66
#undef tan
67
#undef tanh
68
 
69
#undef fpclassify
70
#undef isfinite
71
#undef isinf
72
#undef isnan
73
#undef isnormal
74
#undef signbit
75
#undef isgreater
76
#undef isgreaterequal
77
#undef isless
78
#undef islessequal
79
#undef islessgreater
80
#undef isunordered
81
 
82
namespace std
83
{
84
  inline double
85
  abs(double __x)
86
  { return __builtin_fabs(__x); }
87
 
88
  inline float
89
  abs(float __x)
90
  { return __builtin_fabsf(__x); }
91
 
92
  inline long double
93
  abs(long double __x)
94
  { return __builtin_fabsl(__x); }
95
 
96
#if _GLIBCXX_HAVE_MODFF
97
  inline float
98
  modf(float __x, float* __iptr) { return modff(__x, __iptr); }
99
#else
100
  inline float
101
  modf(float __x, float* __iptr)
102
  {
103
    double __tmp;
104
    double __res = modf(static_cast<double>(__x), &__tmp);
105
    *__iptr = static_cast<float>(__tmp);
106
    return __res;
107
  }
108
#endif
109
 
110
#if _GLIBCXX_HAVE_MODFL
111
  inline long double
112
  modf(long double __x, long double* __iptr) { return modfl(__x, __iptr); }
113
#else
114
  inline long double
115
  modf(long double __x, long double* __iptr)
116
  {
117
    double __tmp;
118
    double __res = modf(static_cast<double>(__x), &__tmp);
119
    * __iptr = static_cast<long double>(__tmp);
120
    return __res;
121
  }
122
#endif
123
}
124
#endif

powered by: WebSVN 2.1.0

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