use `std::ceil`