Bill Allombert on Wed, 04 Dec 2013 00:03:38 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: reverse of digits()


On Tue, Dec 03, 2013 at 05:40:21PM -0500, Charles Greathouse wrote:
> I see convi here:
> 
> GEN
> sumdigits(GEN n)
> {
>   pari_sp av = avma;
>   ulong s, *res;
>   long l;
> 
>   if (typ(n) != t_INT) pari_err_TYPE("sumdigits", n);
>   l = lgefint(n);
>   switch(l)
>   {
>     case 2: return gen_0;
>     case 3: return utoipos(sumdigitsu(n[2]));
>   }
>   res = convi(n, &l);
> 
> in the git HEAD.

Then it is worse than what I imagined: the only reason sumdigits
is faster than digits is that it use convi which use mpn_get_str
which only works for basis <=256.

Cheers,
Bill.