1 #pragma once 2 3 #include <cstdint> 4 #include <iosfwd> 5 6 namespace at { 7 8 struct Range { RangeRange9 Range(int64_t begin, int64_t end) 10 : begin(begin) 11 , end(end) {} 12 sizeRange13 int64_t size() const { return end - begin; } 14 15 Range operator/(int64_t divisor) { 16 return Range(begin / divisor, end / divisor); 17 } 18 19 int64_t begin; 20 int64_t end; 21 }; 22 23 std::ostream& operator<<(std::ostream& out, const Range& range); 24 25 } // namespace at 26