Adding Peter Thatcher to the owners file.
[chromium-blink-merge.git] / cc / base / util.h
bloba16d4855283f849c0330efcd79a339a2982f0271
1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CC_BASE_UTIL_H_
6 #define CC_BASE_UTIL_H_
8 #include <limits>
10 #include "base/basictypes.h"
12 namespace cc {
14 template <typename T> T RoundUp(T n, T mul) {
15 static_assert(std::numeric_limits<T>::is_integer,
16 "T must be an integer type");
17 return (n > 0) ? ((n + mul - 1) / mul) * mul
18 : (n / mul) * mul;
21 template <typename T> T RoundDown(T n, T mul) {
22 static_assert(std::numeric_limits<T>::is_integer,
23 "T must be an integer type");
24 return (n > 0) ? (n / mul) * mul
25 : (n == 0) ? 0
26 : ((n - mul + 1) / mul) * mul;
29 } // namespace cc
31 #endif // CC_BASE_UTIL_H_