#include #include // IWYU pragma: keep #include #include namespace xrpl { std::optional mulDiv(std::uint64_t value, std::uint64_t mul, std::uint64_t div) { boost::multiprecision::uint128_t result; result = multiply(result, value, mul); result /= div; if (result > xrpl::muldiv_max) return std::nullopt; return static_cast(result); } } // namespace xrpl