1/* Public domain. */
2
3#ifndef _LINUX_MATH_H
4#define _LINUX_MATH_H
5
6#define mult_frac(x, n, d) (((x) * (n)) / (d))
7
8#define round_up(x, y) ((((x) + ((y) - 1)) / (y)) * (y))
9#define round_down(x, y) (((x) / (y)) * (y)) /* y is power of two */
10#define rounddown(x, y) (((x) / (y)) * (y)) /* arbitrary y */
11#define DIV_ROUND_UP(x, y)	(((x) + ((y) - 1)) / (y))
12#define DIV_ROUND_UP_ULL(x, y)	DIV_ROUND_UP(x, y)
13#define DIV_ROUND_DOWN(x, y)	((x) / (y))
14#define DIV_ROUND_DOWN_ULL(x, y)	DIV_ROUND_DOWN(x, y)
15#define DIV_ROUND_CLOSEST(x, y)	(((x) + ((y) / 2)) / (y))
16#define DIV_ROUND_CLOSEST_ULL(x, y)	DIV_ROUND_CLOSEST(x, y)
17
18#endif
19