Skip to navigation

holoscan::detail::scale_magnitude_exact

Beta
View as Markdown
bool holoscan::detail::scale_magnitude_exact(
std::uint64_t magnitude,
std::uint64_t numerator_a,
std::uint64_t numerator_b,
std::uint64_t denominator_a,
std::uint64_t denominator_b,
std::uint64_t limit,
std::uint64_t &output
) noexcept

Scale one unsigned magnitude exactly without overflowing intermediate products.

Returns: true only when the rational result is integral and fits limit.

Parameters

magnitude
std::uint64_t

Input magnitude.

numerator_a
std::uint64_t

First numerator factor.

numerator_b
std::uint64_t

Second numerator factor.

denominator_a
std::uint64_t

First denominator factor.

denominator_b
std::uint64_t

Second denominator factor.

limit
std::uint64_t

Inclusive output limit.

output
std::uint64_t &

Receives the scaled magnitude on success.