On 15/03/2015 12:39 a.m., Niels Möller wrote:
> Amos Jeffries writes:
> 
>> Is the compiler optimized code for that for loop faster or slower than a
>> loop suming the differentials?
> 
> Not sure. But I don't think performance is very important here, the
> function is going to be used on pretty small inputs.
> 
>>     volatile unsigned char d;
>>     for (d = 0; ap >= a; ap--, bp--)
>>       d += (*ap - *bp);
> 
> I don't think that is correct, since d may wrap around to zero. One
> would need to accumulate into a larger variable, something like
> 
>   unsigned d;
>   for (d = 0; ap >= a; ap--, bp--)
>      d += (uint8_t)(*ap - *bp);
> 
> which, if unsigned int is 32 bits, would be correct for n up to 2^24. (I
> think the cast necessary, to avoid values being promoted to *signed*
> int). Using | is simpler and more robust.

Aha! Thank you.


AYJ

_______________________________________________
nettle-bugs mailing list
[email protected]
http://lists.lysator.liu.se/mailman/listinfo/nettle-bugs

Reply via email to