Вы не поняли: я не про OpenMP: это мне понятно, но данный кусок кода занимает ничтожную часть времени от общего времени расчета.
Возможно, это просто единственная разница, которую я заметил без внимательного разглядывания кода.
Честно говоря, вникать лень, особенно учитывая, что комментарии перестали соответствовать коду.
Тем не менее, второе впечатление - перестановка операций, возможно для лучшей работы кеша. Подобные изменения могут ускорить на порядок.
Понятно. Но, вообще говоря, уже самые первые строчки отличаются, так что разницу трудно не заметить. Тем не менее спасибо за проявленный интерес: все-таки прагму заметили. Дело в том, что я использую эту функцию для совсем иных задач, нежели диагонализация, и мне надо вносить изменения в другие участки кода. А без понимания, что, как и почему это трудно сделать, хотя для yuriisig, возможно, это и легко: он ведь об этом пишет. Может он и сам не знает?