Из очевидного - участки вида HR_PRED(LOOP_CASE, 73) используются в самой глубине ваших циклов и, возможно, пересчитываются на каждой итерации.
Можно в самом начале до циклов посчитать все возможные значения для 1...MatrixRows и аргументов 71-75 в табличку размерности MatrixRows * 5 , а в формулах брать готовые значения из этой таблицы.
И вообще, что такое HR_PRED ? может получится чуток свернуть формулы?
Ещё из предложений - значения a/b/c/d/e в циклах заменить на целочисленные (-8...8, step 1), а в самой формуле поменять коэффициенты умножения соответствующим образом (HR_PRED тоже чуть иначе считать потребуется).
Также заметил, что второй аргумент HR_PRED влияет на то, с чем будет складываться. Тогда можно еще больше упростить, предварительно вычислив пять значений HR_PRED(LOOP_CASE, 71)+a, ...72+b ...73+c, и уже их подставлять в формулы на следующем шаге