Lines Matching full:denominator
400 /// Returns the integer ceil(Numerator / Denominator). Unsigned version.
403 constexpr T divideCeil(U Numerator, V Denominator) { in divideCeil() argument
404 assert(Denominator && "Division by zero"); in divideCeil()
406 return (Numerator - Bias) / Denominator + Bias; in divideCeil()
410 constexpr uint64_t divideCeil(uint64_t Numerator, uint64_t Denominator) { in divideCeil() argument
411 assert(Denominator && "Division by zero"); in divideCeil()
413 return (Numerator - Bias) / Denominator + Bias; in divideCeil()
417 // happens only when Numerator = INT_MIN and Denominator = -1.
419 constexpr bool divideSignedWouldOverflow(U Numerator, V Denominator) { in divideSignedWouldOverflow() argument
420 return Numerator == std::numeric_limits<U>::min() && Denominator == -1; in divideSignedWouldOverflow()
423 /// Returns the integer ceil(Numerator / Denominator). Signed version.
426 constexpr T divideCeilSigned(U Numerator, V Denominator) { in divideCeilSigned() argument
427 assert(Denominator && "Division by zero"); in divideCeilSigned()
428 assert(!divideSignedWouldOverflow(Numerator, Denominator) && in divideCeilSigned()
433 T Bias = Denominator >= 0 ? 1 : -1; in divideCeilSigned()
434 bool SameSign = (Numerator >= 0) == (Denominator >= 0); in divideCeilSigned()
435 return SameSign ? (Numerator - Bias) / Denominator + 1 in divideCeilSigned()
436 : Numerator / Denominator; in divideCeilSigned()
439 /// Returns the integer floor(Numerator / Denominator). Signed version.
442 constexpr T divideFloorSigned(U Numerator, V Denominator) { in divideFloorSigned() argument
443 assert(Denominator && "Division by zero"); in divideFloorSigned()
444 assert(!divideSignedWouldOverflow(Numerator, Denominator) && in divideFloorSigned()
449 T Bias = Denominator >= 0 ? -1 : 1; in divideFloorSigned()
450 bool SameSign = (Numerator >= 0) == (Denominator >= 0); in divideFloorSigned()
451 return SameSign ? Numerator / Denominator in divideFloorSigned()
452 : (Numerator - Bias) / Denominator - 1; in divideFloorSigned()
458 constexpr T mod(U Numerator, V Denominator) { in mod() argument
459 assert(Denominator >= 1 && "Mod by non-positive number"); in mod()
460 T Mod = Numerator % Denominator; in mod()
461 return Mod < 0 ? Mod + Denominator : Mod; in mod()
464 /// Returns (Numerator / Denominator) rounded by round-half-up. Guaranteed to
467 constexpr T divideNearest(U Numerator, V Denominator) { in divideNearest() argument
468 assert(Denominator && "Division by zero"); in divideNearest()
469 T Mod = Numerator % Denominator; in divideNearest()
470 return (Numerator / Denominator) + in divideNearest()
471 (Mod > (static_cast<T>(Denominator) - 1) / 2); in divideNearest()