Оптимизация повторного модуля внутри цикла

У меня есть этот оператор в моей программе на языке C, и я хочу его оптимизировать. Под оптимизацией я особенно хочу обратиться к побитовым операторам (но любое другое предложение тоже подойдет).

uint64_t h_one = hash[0];
uint64_t h_two = hash[1];
for ( int i=0; i<k; ++i )
{
    (uint64_t *) k_hash[i] = ( h_one + i * h_two ) % size;   //suggest some optimization for this line.
} 

Любое предложение будет большим подспорьем.

Редактировать: На данный момент sizeможет быть любым int, но это не проблема, и мы можем округлить его до следующего простого числа (но это может быть не степень двойки, так как для больших значений степень числа 2 быстро увеличивается, и это приведет к большой трате памяти)

h_two— это 64-битное целое число (по сути, фрагмент из 64 байт).

6
задан Mysticial 15 June 2012 в 20:11
поделиться