Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6554 serge 1
// Stub definitions for float math.
2
 
3
// Copyright (C) 2001-2015 Free Software Foundation, Inc.
4
//
5
// This file is part of the GNU ISO C++ Library.  This library is free
6
// software; you can redistribute it and/or modify it under the
7
// terms of the GNU General Public License as published by the
8
// Free Software Foundation; either version 3, or (at your option)
9
// any later version.
10
 
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
// GNU General Public License for more details.
15
 
16
// Under Section 7 of GPL version 3, you are granted additional
17
// permissions described in the GCC Runtime Library Exception, version
18
// 3.1, as published by the Free Software Foundation.
19
 
20
// You should have received a copy of the GNU General Public License and
21
// a copy of the GCC Runtime Library Exception along with this program;
22
// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
23
// .
24
 
25
#include 
26
 
27
// For targets which do not have support for float versions,
28
// we use the following crude approximations. We keep saying that we'll do
29
// better later, but never do.
30
 
31
extern "C"
32
{
33
#ifndef _GLIBCXX_HAVE_FABSF
34
  float
35
  fabsf(float x)
36
  {
37
    return (float) fabs(x);
38
  }
39
#endif
40
 
41
#ifndef _GLIBCXX_HAVE_ACOSF
42
  float
43
  acosf(float x)
44
  {
45
    return (float) acos(x);
46
  }
47
#endif
48
 
49
#ifndef _GLIBCXX_HAVE_ASINF
50
  float
51
  asinf(float x)
52
  {
53
    return (float) asin(x);
54
  }
55
#endif
56
 
57
#ifndef _GLIBCXX_HAVE_ATANF
58
  float
59
  atanf(float x)
60
  {
61
    return (float) atan(x);
62
  }
63
#endif
64
 
65
#ifndef _GLIBCXX_HAVE_ATAN2F
66
  float
67
  atan2f(float x, float y)
68
  {
69
    return (float) atan2(x, y);
70
  }
71
#endif
72
 
73
#ifndef _GLIBCXX_HAVE_CEILF
74
  float
75
  ceilf(float x)
76
  {
77
    return (float) ceil(x);
78
  }
79
#endif
80
 
81
#ifndef _GLIBCXX_HAVE_COSF
82
  float
83
  cosf(float x)
84
  {
85
    return (float) cos(x);
86
  }
87
#endif
88
 
89
#ifndef _GLIBCXX_HAVE_COSHF
90
  float
91
  coshf(float x)
92
  {
93
    return (float) cosh(x);
94
  }
95
#endif
96
 
97
#ifndef _GLIBCXX_HAVE_EXPF
98
  float
99
  expf(float x)
100
  {
101
    return (float) exp(x);
102
  }
103
#endif
104
 
105
#ifndef _GLIBCXX_HAVE_FLOORF
106
  float
107
  floorf(float x)
108
  {
109
    return (float) floor(x);
110
  }
111
#endif
112
 
113
#ifndef _GLIBCXX_HAVE_FMODF
114
  float
115
  fmodf(float x, float y)
116
  {
117
    return (float) fmod(x, y);
118
  }
119
#endif
120
 
121
#ifndef _GLIBCXX_HAVE_FREXPF
122
  float
123
  frexpf(float x, int *exp)
124
  {
125
    return (float) frexp(x, exp);
126
  }
127
#endif
128
 
129
#ifndef _GLIBCXX_HAVE_SQRTF
130
  float
131
  sqrtf(float x)
132
  {
133
    return (float) sqrt(x);
134
  }
135
#endif
136
 
137
#ifndef _GLIBCXX_HAVE_HYPOTF
138
  float
139
  hypotf(float x, float y)
140
  {
141
    float s = fabsf(x) + fabsf(y);
142
    if (s == 0.0F)
143
      return s;
144
    x /= s; y /= s;
145
    return s * sqrtf(x * x + y * y);
146
  }
147
#endif
148
 
149
#ifndef _GLIBCXX_HAVE_LDEXPF
150
  float
151
  ldexpf(float x, int exp)
152
  {
153
    return (float) ldexp(x, exp);
154
  }
155
#endif
156
 
157
#ifndef _GLIBCXX_HAVE_LOGF
158
  float
159
  logf(float x)
160
  {
161
    return (float) log(x);
162
  }
163
#endif
164
 
165
#ifndef _GLIBCXX_HAVE_LOG10F
166
  float
167
  log10f(float x)
168
  {
169
    return (float) log10(x);
170
  }
171
#endif
172
 
173
#ifndef _GLIBCXX_HAVE_MODFF
174
  float
175
  modff(float x, float *iptr)
176
  {
177
    double result, temp;
178
 
179
    result = modf(x, &temp);
180
    *iptr = (float) temp;
181
    return (float) result;
182
  }
183
#endif
184
 
185
#ifndef _GLIBCXX_HAVE_POWF
186
  float
187
  powf(float x, float y)
188
  {
189
    return (float) pow(x, y);
190
  }
191
#endif
192
 
193
#ifndef _GLIBCXX_HAVE_SINF
194
  float
195
  sinf(float x)
196
  {
197
    return (float) sin(x);
198
  }
199
#endif
200
 
201
#ifndef _GLIBCXX_HAVE_SINHF
202
  float
203
  sinhf(float x)
204
  {
205
    return (float) sinh(x);
206
  }
207
#endif
208
 
209
#ifndef _GLIBCXX_HAVE_TANF
210
  float
211
  tanf(float x)
212
  {
213
    return (float) tan(x);
214
  }
215
#endif
216
 
217
#ifndef _GLIBCXX_HAVE_TANHF
218
  float
219
  tanhf(float x)
220
  {
221
    return (float) tanh(x);
222
  }
223
#endif
224
} // extern "C"