OpenCoverage

MathExtras.h

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/src/3rdparty/masm/wtf/MathExtras.h
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3const double piDouble = -
4 3.14159265358979323846-
5 ;-
6const float piFloat = static_cast<float>(-
7 3.14159265358979323846-
8 );-
9-
10-
11-
12-
13-
14-
15const double piOverTwoDouble = -
16 1.57079632679489661923-
17 ;-
18const float piOverTwoFloat = static_cast<float>(-
19 1.57079632679489661923-
20 );-
21-
22-
23-
24-
25-
26-
27const double piOverFourDouble = -
28 0.78539816339744830962-
29 ;-
30const float piOverFourFloat = static_cast<float>(-
31 0.78539816339744830962-
32 );-
33inline double deg2rad(double d) { return
never executed: return d * piDouble / 180.0;
d * piDouble / 180.0;
never executed: return d * piDouble / 180.0;
}
0
34inline double rad2deg(double r) { return
never executed: return r * 180.0 / piDouble;
r * 180.0 / piDouble;
never executed: return r * 180.0 / piDouble;
}
0
35inline double deg2grad(double d) { return
never executed: return d * 400.0 / 360.0;
d * 400.0 / 360.0;
never executed: return d * 400.0 / 360.0;
}
0
36inline double grad2deg(double g) { return
never executed: return g * 360.0 / 400.0;
g * 360.0 / 400.0;
never executed: return g * 360.0 / 400.0;
}
0
37inline double turn2deg(double t) { return
never executed: return t * 360.0;
t * 360.0;
never executed: return t * 360.0;
}
0
38inline double deg2turn(double d) { return
never executed: return d / 360.0;
d / 360.0;
never executed: return d / 360.0;
}
0
39inline double rad2grad(double r) { return
never executed: return r * 200.0 / piDouble;
r * 200.0 / piDouble;
never executed: return r * 200.0 / piDouble;
}
0
40inline double grad2rad(double g) { return
never executed: return g * piDouble / 200.0;
g * piDouble / 200.0;
never executed: return g * piDouble / 200.0;
}
0
41-
42inline float deg2rad(float d) { return
never executed: return d * piFloat / 180.0f;
d * piFloat / 180.0f;
never executed: return d * piFloat / 180.0f;
}
0
43inline float rad2deg(float r) { return
never executed: return r * 180.0f / piFloat;
r * 180.0f / piFloat;
never executed: return r * 180.0f / piFloat;
}
0
44inline float deg2grad(float d) { return
never executed: return d * 400.0f / 360.0f;
d * 400.0f / 360.0f;
never executed: return d * 400.0f / 360.0f;
}
0
45inline float grad2deg(float g) { return
never executed: return g * 360.0f / 400.0f;
g * 360.0f / 400.0f;
never executed: return g * 360.0f / 400.0f;
}
0
46inline float turn2deg(float t) { return
never executed: return t * 360.0f;
t * 360.0f;
never executed: return t * 360.0f;
}
0
47inline float deg2turn(float d) { return
never executed: return d / 360.0f;
d / 360.0f;
never executed: return d / 360.0f;
}
0
48inline float rad2grad(float r) { return
never executed: return r * 200.0f / piFloat;
r * 200.0f / piFloat;
never executed: return r * 200.0f / piFloat;
}
0
49inline float grad2rad(float g) { return
never executed: return g * piFloat / 200.0f;
g * piFloat / 200.0f;
never executed: return g * piFloat / 200.0f;
}
0
50-
51-
52template<typename T> inline T defaultMinimumForClamp() { return
never executed: return std::numeric_limits<T>::min();
std::numeric_limits<T>::min();
never executed: return std::numeric_limits<T>::min();
}
0
53template<> inline float defaultMinimumForClamp() { return
never executed: return -std::numeric_limits<float>::max();
-std::numeric_limits<float>::max();
never executed: return -std::numeric_limits<float>::max();
}
0
54template<> inline double defaultMinimumForClamp() { return
never executed: return -std::numeric_limits<double>::max();
-std::numeric_limits<double>::max();
never executed: return -std::numeric_limits<double>::max();
}
0
55template<typename T> inline T defaultMaximumForClamp() { return
never executed: return std::numeric_limits<T>::max();
std::numeric_limits<T>::max();
never executed: return std::numeric_limits<T>::max();
}
0
56-
57template<typename T> inline T clampTo(double value, T min = defaultMinimumForClamp<T>(), T max = defaultMaximumForClamp<T>())-
58{-
59 if (value >= static_cast<double>(max)
value >= stati...t<double>(max)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
60 return
never executed: return max;
max;
never executed: return max;
0
61 if (value <= static_cast<double>(min)
value <= stati...t<double>(min)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
62 return
never executed: return min;
min;
never executed: return min;
0
63 return
never executed: return static_cast<T>(value);
static_cast<T>(value);
never executed: return static_cast<T>(value);
0
64}-
65template<> long long int clampTo(double, long long int, long long int);-
66-
67inline int clampToInteger(double value)-
68{-
69 return
never executed: return clampTo<int>(value);
clampTo<int>(value);
never executed: return clampTo<int>(value);
0
70}-
71-
72inline float clampToFloat(double value)-
73{-
74 return
never executed: return clampTo<float>(value);
clampTo<float>(value);
never executed: return clampTo<float>(value);
0
75}-
76-
77inline int clampToPositiveInteger(double value)-
78{-
79 return
never executed: return clampTo<int>(value, 0);
clampTo<int>(value, 0);
never executed: return clampTo<int>(value, 0);
0
80}-
81-
82inline int clampToInteger(float value)-
83{-
84 return
never executed: return clampTo<int>(value);
clampTo<int>(value);
never executed: return clampTo<int>(value);
0
85}-
86-
87inline int clampToInteger(unsigned x)-
88{-
89 const unsigned intMax = static_cast<unsigned>(std::numeric_limits<int>::max());-
90-
91 if (x >= intMax
x >= intMaxDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
92 return
never executed: return std::numeric_limits<int>::max();
std::numeric_limits<int>::max();
never executed: return std::numeric_limits<int>::max();
0
93 return
never executed: return static_cast<int>(x);
static_cast<int>(x);
never executed: return static_cast<int>(x);
0
94}-
95-
96inline bool isWithinIntRange(float x)-
97{-
98 return
never executed: return x > static_cast<float>(std::numeric_limits<int>::min()) && x < static_cast<float>(std::numeric_limits<int>::max());
x > static_cast<float>(std::numeric_limits<int>::min()) && x < static_cast<float>(std::numeric_limits<int>::max());
never executed: return x > static_cast<float>(std::numeric_limits<int>::min()) && x < static_cast<float>(std::numeric_limits<int>::max());
0
99}-
100-
101template<typename T> inline bool hasOneBitSet(T value)-
102{-
103 return
never executed: return !((value - 1) & value) && value;
!((value - 1) & value) && value;
never executed: return !((value - 1) & value) && value;
0
104}-
105-
106template<typename T> inline bool hasZeroOrOneBitsSet(T value)-
107{-
108 return
never executed: return !((value - 1) & value);
!((value - 1) & value);
never executed: return !((value - 1) & value);
0
109}-
110-
111template<typename T> inline bool hasTwoOrMoreBitsSet(T value)-
112{-
113 return
never executed: return !hasZeroOrOneBitsSet(value);
!hasZeroOrOneBitsSet(value);
never executed: return !hasZeroOrOneBitsSet(value);
0
114}-
115-
116template <typename T> inline unsigned getLSBSet(T value)-
117{-
118 unsigned result = 0;-
119-
120 while (value >>= 1
value >>= 1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
121 ++
never executed: ++result;
result;
never executed: ++result;
0
122-
123 return
never executed: return result;
result;
never executed: return result;
0
124}-
125-
126template<typename T> inline T timesThreePlusOneDividedByTwo(T value)-
127{-
128-
129-
130-
131-
132-
133 return
never executed: return value + (value >> 1) + (value & 1);
value + (value >> 1) + (value & 1);
never executed: return value + (value >> 1) + (value & 1);
0
134}-
135inline void decomposeDouble(double number, bool& sign, int32_t& exponent, uint64_t& mantissa)-
136{-
137 (!(std::isfinite(number)) ? (qmlWTFReportAssertionFailure(__FILE__, 379, __PRETTY_FUNCTION__, "std::isfinite(number)"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0);-
138-
139 sign = std::signbit(number);-
140-
141 uint64_t bits = WTF::bitwise_cast<uint64_t>(number);-
142 exponent = (static_cast<int32_t>(bits >> 52) & 0x7ff) - 0x3ff;-
143 mantissa = bits & 0xFFFFFFFFFFFFFull;-
144-
145-
146-
147 if (exponent == -0x3ff
exponent == -0x3ffDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
148 exponent = mantissa
mantissaDescription
TRUEnever evaluated
FALSEnever evaluated
? -0x3fe : 0;
never executed: exponent = mantissa ? -0x3fe : 0;
0
149 else-
150 mantissa |= 0x10000000000000ull;
never executed: mantissa |= 0x10000000000000ull;
0
151}-
152-
153-
154inline void doubleToInteger(double d, unsigned long long& value)-
155{-
156 if (std::isnan(d)
std::isnan(d)Description
TRUEnever evaluated
FALSEnever evaluated
|| std::isinf(d)
std::isinf(d)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
157 value = 0;
never executed: value = 0;
0
158 else {-
159-
160 double fmodValue = fmod(trunc(d), std::numeric_limits<unsigned long long>::max() + 1.0);-
161 if (fmodValue >= 0
fmodValue >= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
162-
163-
164 value = static_cast<unsigned long long>(fmodValue);-
165 }
never executed: end of block
else {
0
166-
167-
168 unsigned long long fmodValueInUnsignedLongLong = static_cast<unsigned long long>(-fmodValue);-
169-
170-
171 value = std::numeric_limits<unsigned long long>::max() - fmodValueInUnsignedLongLong + 1;-
172 }
never executed: end of block
0
173 }-
174}-
175-
176namespace WTF {-
177-
178-
179inline uint32_t roundUpToPowerOfTwo(uint32_t v)-
180{-
181 v--;-
182 v |= v >> 1;-
183 v |= v >> 2;-
184 v |= v >> 4;-
185 v |= v >> 8;-
186 v |= v >> 16;-
187 v++;-
188 return
never executed: return v;
v;
never executed: return v;
0
189}-
190-
191inline unsigned fastLog2(unsigned i)-
192{-
193 unsigned log2 = 0;-
194 if (i & (i - 1)
i & (i - 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
195 log2 += 1;
never executed: log2 += 1;
0
196 if (i >> 16
i >> 16Description
TRUEnever evaluated
FALSEnever evaluated
)
0
197 log2 += 16, i >>= 16;
never executed: log2 += 16, i >>= 16;
0
198 if (i >> 8
i >> 8Description
TRUEnever evaluated
FALSEnever evaluated
)
0
199 log2 += 8, i >>= 8;
never executed: log2 += 8, i >>= 8;
0
200 if (i >> 4
i >> 4Description
TRUEnever evaluated
FALSEnever evaluated
)
0
201 log2 += 4, i >>= 4;
never executed: log2 += 4, i >>= 4;
0
202 if (i >> 2
i >> 2Description
TRUEnever evaluated
FALSEnever evaluated
)
0
203 log2 += 2, i >>= 2;
never executed: log2 += 2, i >>= 2;
0
204 if (i >> 1
i >> 1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
205 log2 += 1;
never executed: log2 += 1;
0
206 return
never executed: return log2;
log2;
never executed: return log2;
0
207}-
208-
209}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.0