Re: [PATCH RFC] reciprocal_divide: correction/update of the algorithm

From: Randy Dunlap
Date: Tue Jan 14 2014 - 13:02:29 EST


On 01/13/2014 01:42 PM, Hannes Frederic Sowa wrote:
>
> I propose an correction/update of the algorithm
> based on the paper "T. Granlund and P. L. Montgomery:
> Division by Invariant Integers Using Multiplication"
> <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.1.2556>
>
> The assembler implementation from Agner Fog, found here
> <http://www.agner.org/optimize/asmlib.zip>, helped a lot while
> implementing.
>
> I would like to have feedback if people see problems with this patch or
> have concerns about performance. I did some testing on x86-64 and found
> no problems so far but did no performance evaluation, yet.
>
> The current code does break the call-sides of reciprocal_divide. The necessary
> changes will be part of the full series, then.
>
> Thanks!
> ---
> include/linux/reciprocal_div.h | 12 +++++++++---
> lib/reciprocal_div.c | 22 ++++++++++++++++++----
> 2 files changed, 27 insertions(+), 7 deletions(-)

Just trivia (coding style and spelling):

> diff --git a/lib/reciprocal_div.c b/lib/reciprocal_div.c
> index 75510e9..b741b30 100644
> --- a/lib/reciprocal_div.c
> +++ b/lib/reciprocal_div.c
> @@ -1,11 +1,25 @@
> +#include <linux/kernel.h>
> #include <asm/div64.h>
> #include <linux/reciprocal_div.h>
> #include <linux/export.h>
>
> -u32 reciprocal_value(u32 k)
> +/* For a description of the algorithmus please look at

algorithms

> + * linux/reciprocal_div.h
> + */

and kernel coding style for multi-line comments is like so:

/*
* For a description of the algorithms, please look at
* linux/reciprocal_div.h
*/

> +
> +struct reciprocal_value reciprocal_value(u32 d)
> {



--
~Randy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/