74 else |
78 else |
75 #endif |
79 #endif |
76 return int(floor(v)); |
80 return int(floor(v)); |
77 } |
81 } |
78 |
82 |
|
83 inline qreal qFabs(qreal v) |
|
84 { |
|
85 #ifdef QT_USE_MATH_H_FLOATS |
|
86 if(sizeof(qreal) == sizeof(float)) |
|
87 return fabsf(float(v)); |
|
88 else |
|
89 #endif |
|
90 return fabs(v); |
|
91 } |
|
92 |
79 inline qreal qSin(qreal v) |
93 inline qreal qSin(qreal v) |
80 { |
94 { |
81 #ifdef QT_USE_MATH_H_FLOATS |
95 #ifdef Q_OS_SYMBIAN |
82 if (sizeof(qreal) == sizeof(float)) |
96 TReal sin_v; |
83 return sinf(float(v)); |
97 Math::Sin(sin_v, static_cast<TReal>(v)); |
84 else |
98 return static_cast<qreal>(sin_v); |
85 #endif |
99 #else |
86 return sin(v); |
100 # ifdef QT_USE_MATH_H_FLOATS |
|
101 if (sizeof(qreal) == sizeof(float)) |
|
102 return sinf(float(v)); |
|
103 else |
|
104 # endif |
|
105 return sin(v); |
|
106 #endif |
87 } |
107 } |
88 |
108 |
89 inline qreal qCos(qreal v) |
109 inline qreal qCos(qreal v) |
90 { |
110 { |
91 #ifdef QT_USE_MATH_H_FLOATS |
111 #ifdef Q_OS_SYMBIAN |
92 if (sizeof(qreal) == sizeof(float)) |
112 TReal cos_v; |
93 return cosf(float(v)); |
113 Math::Cos(cos_v, static_cast<TReal>(v)); |
94 else |
114 return static_cast<qreal>(cos_v); |
95 #endif |
115 #else |
96 return cos(v); |
116 # ifdef QT_USE_MATH_H_FLOATS |
|
117 if (sizeof(qreal) == sizeof(float)) |
|
118 return cosf(float(v)); |
|
119 else |
|
120 # endif |
|
121 return cos(v); |
|
122 #endif |
|
123 } |
|
124 |
|
125 inline qreal qTan(qreal v) |
|
126 { |
|
127 #ifdef Q_OS_SYMBIAN |
|
128 TReal tan_v; |
|
129 Math::Tan(tan_v, static_cast<TReal>(v)); |
|
130 return static_cast<qreal>(tan_v); |
|
131 #else |
|
132 # ifdef QT_USE_MATH_H_FLOATS |
|
133 if (sizeof(qreal) == sizeof(float)) |
|
134 return tanf(float(v)); |
|
135 else |
|
136 # endif |
|
137 return tan(v); |
|
138 #endif |
97 } |
139 } |
98 |
140 |
99 inline qreal qAcos(qreal v) |
141 inline qreal qAcos(qreal v) |
100 { |
142 { |
101 #ifdef QT_USE_MATH_H_FLOATS |
143 #ifdef Q_OS_SYMBIAN |
102 if (sizeof(qreal) == sizeof(float)) |
144 TReal acos_v; |
103 return acosf(float(v)); |
145 Math::ACos(acos_v, static_cast<TReal>(v)); |
104 else |
146 return static_cast<qreal>(acos_v); |
105 #endif |
147 #else |
106 return acos(v); |
148 # ifdef QT_USE_MATH_H_FLOATS |
|
149 if (sizeof(qreal) == sizeof(float)) |
|
150 return acosf(float(v)); |
|
151 else |
|
152 # endif |
|
153 return acos(v); |
|
154 #endif |
|
155 } |
|
156 |
|
157 inline qreal qAsin(qreal v) |
|
158 { |
|
159 #ifdef Q_OS_SYMBIAN |
|
160 TReal asin_v; |
|
161 Math::ASin(asin_v, static_cast<TReal>(v)); |
|
162 return static_cast<qreal>(asin_v); |
|
163 #else |
|
164 # ifdef QT_USE_MATH_H_FLOATS |
|
165 if (sizeof(qreal) == sizeof(float)) |
|
166 return asinf(float(v)); |
|
167 else |
|
168 # endif |
|
169 return asin(v); |
|
170 #endif |
|
171 } |
|
172 |
|
173 inline qreal qAtan(qreal v) |
|
174 { |
|
175 #ifdef Q_OS_SYMBIAN |
|
176 TReal atan_v; |
|
177 Math::ATan(atan_v, static_cast<TReal>(v)); |
|
178 return static_cast<qreal>(atan_v); |
|
179 #else |
|
180 # ifdef QT_USE_MATH_H_FLOATS |
|
181 if(sizeof(qreal) == sizeof(float)) |
|
182 return atanf(float(v)); |
|
183 else |
|
184 # endif |
|
185 return atan(v); |
|
186 #endif |
|
187 } |
|
188 |
|
189 inline qreal qAtan2(qreal x, qreal y) |
|
190 { |
|
191 #ifdef Q_OS_SYMBIAN |
|
192 TReal atan2_v; |
|
193 Math::ATan(atan2_v, static_cast<TReal>(x), static_cast<TReal>(y)); |
|
194 return static_cast<qreal>(atan2_v); |
|
195 #else |
|
196 # ifdef QT_USE_MATH_H_FLOATS |
|
197 if(sizeof(qreal) == sizeof(float)) |
|
198 return atan2f(float(x), float(y)); |
|
199 else |
|
200 # endif |
|
201 return atan2(x, y); |
|
202 #endif |
107 } |
203 } |
108 |
204 |
109 inline qreal qSqrt(qreal v) |
205 inline qreal qSqrt(qreal v) |
110 { |
206 { |
111 #ifdef QT_USE_MATH_H_FLOATS |
207 #ifdef Q_OS_SYMBIAN |
112 if (sizeof(qreal) == sizeof(float)) |
208 TReal sqrt_v; |
113 return sqrtf(float(v)); |
209 Math::Sqrt(sqrt_v, static_cast<TReal>(v)); |
114 else |
210 return static_cast<qreal>(sqrt_v); |
115 #endif |
211 #else |
116 return sqrt(v); |
212 # ifdef QT_USE_MATH_H_FLOATS |
|
213 if (sizeof(qreal) == sizeof(float)) |
|
214 return sqrtf(float(v)); |
|
215 else |
|
216 # endif |
|
217 return sqrt(v); |
|
218 #endif |
117 } |
219 } |
118 |
220 |
119 inline qreal qLn(qreal v) |
221 inline qreal qLn(qreal v) |
120 { |
222 { |
121 #ifdef QT_USE_MATH_H_FLOATS |
223 #ifdef QT_USE_MATH_H_FLOATS |
124 else |
226 else |
125 #endif |
227 #endif |
126 return log(v); |
228 return log(v); |
127 } |
229 } |
128 |
230 |
|
231 inline qreal qExp(qreal v) |
|
232 { |
|
233 #ifdef Q_OS_SYMBIAN |
|
234 TReal exp_v; |
|
235 Math::Exp(exp_v, static_cast<TReal>(v)); |
|
236 return static_cast<qreal>(exp_v); |
|
237 #else |
|
238 // only one signature |
|
239 // exists, exp(double) |
|
240 return exp(v); |
|
241 #endif |
|
242 } |
|
243 |
129 inline qreal qPow(qreal x, qreal y) |
244 inline qreal qPow(qreal x, qreal y) |
130 { |
245 { |
131 #ifdef QT_USE_MATH_H_FLOATS |
246 #ifdef Q_OS_SYMBIAN |
132 if (sizeof(qreal) == sizeof(float)) |
247 TReal pow_v; |
133 return powf(float(x), float(y)); |
248 Math::Pow(pow_v, static_cast<TReal>(x), static_cast<TReal>(y)); |
134 else |
249 return static_cast<qreal>(pow_v); |
135 #endif |
250 #else |
136 return pow(x, y); |
251 # ifdef QT_USE_MATH_H_FLOATS |
|
252 if (sizeof(qreal) == sizeof(float)) |
|
253 return powf(float(x), float(y)); |
|
254 else |
|
255 # endif |
|
256 return pow(x, y); |
|
257 #endif |
137 } |
258 } |
138 |
259 |
139 #ifndef M_PI |
260 #ifndef M_PI |
140 #define M_PI (3.14159265358979323846) |
261 #define M_PI (3.14159265358979323846) |
141 #endif |
262 #endif |