Техника оптимизации под линуха

пример с неочевидной разбивкой на подвыражения


Даже для человека не совсем очевидно, что его можно переписать так, сократив количество операций умножения с четырех до одного:

       inj

= i*n + j;                    // однократное вычисление подвыражения

       up

=    val[inj - n];             // избавление от лишнего сложения

       down

=  val[inj + n];             // избавления от одного сложения и умножения

       left

=  val[inj - 1];             // избавление от одного сложения и умножения

       right

= val[inj + 1];             // избавление от одного сложения и умножения

       sum = up + down + left + right;



Содержание раздела