Re: [PATCH v9 06/10] math.h: Add macros for rounding to closest value

From: Andy Shevchenko
Date: Mon May 27 2024 - 16:33:19 EST


On Sun, May 26, 2024 at 11:38:56PM +0530, Devarsh Thakkar wrote:
> Add below rounding related macros:
>
> round_closest_up(x, y) : Rounds x to closest multiple of y where y is a
> power of 2, with a preference to round up in case two nearest values are
> possible.
>
> round_closest_down(x, y) : Rounds x to closest multiple of y where y is a
> power of 2, with a preference to round down in case two nearest values are
> possible.
>
> roundclosest(x, y) : Rounds x to closest multiple of y, this macro should
> generally be used only when y is not multiple of 2 as otherwise
> round_closest* macros should be used which are much faster.
>
> Examples:
> * round_closest_up(17, 4) = 16
> * round_closest_up(15, 4) = 16
> * round_closest_up(14, 4) = 16
> * round_closest_down(17, 4) = 16
> * round_closest_down(15, 4) = 16
> * round_closest_down(14, 4) = 12
> * roundclosest(21, 5) = 20
> * roundclosest(19, 5) = 20
> * roundclosest(17, 5) = 15

..

> +/**
> + * round_closest_up - round closest to be multiple of specified value (which is
> + * power of 2) with preference to rounding up
> +

Not that big deal, but missing '*' here. Personally I would not even put
a blank line between Summary and Field Descriptions.

> + * @x: the value to round
> + * @y: multiple to round closest to (must be a power of 2)
> + *
> + * Rounds @x to closest multiple of @y (which must be a power of 2).
> + * The value can be either rounded up or rounded down depending upon rounded
> + * value's closeness to the specified value. If there are two closest possible
> + * values, i.e. the difference between the specified value and it's rounded up
> + * and rounded down values is same then preference is given to rounded up
> + * value.
> + *
> + * To perform arbitrary rounding to closest value (not multiple of 2), use
> + * roundclosest().
> + *
> + * Examples :

What is this suppose to be rendered to?

> + * round_closest_up(17, 4) = 16
> + * round_closest_up(15, 4) = 16
> + * round_closest_up(14, 4) = 16

Btw, is kernel-doc validator happy about all kernel docs you added?

> + */

--
With Best Regards,
Andy Shevchenko