diff options
Diffstat (limited to 'standalone/common.h')
-rw-r--r-- | standalone/common.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/standalone/common.h b/standalone/common.h index 3581c946d16..ae45683f1ee 100644 --- a/standalone/common.h +++ b/standalone/common.h @@ -112,6 +112,21 @@ template <typename T> inline void shuffle(T *A, u32 N, u32 *RandState) { *RandState = State; } +inline void computePercentage(uptr Numerator, uptr Denominator, uptr *Integral, + uptr *Fractional) { + constexpr uptr Digits = 100; + if (Denominator == 0) { + *Integral = 100; + *Fractional = 0; + return; + } + + *Integral = Numerator * Digits / Denominator; + *Fractional = + (((Numerator * Digits) % Denominator) * Digits + Denominator / 2) / + Denominator; +} + // Platform specific functions. extern uptr PageSizeCached; |