то этой суммой пренебрегаем. Помним, что
Если
приведение завершено.
(ii) Для всех значений
от
до
вычисляем
и записываем в рабочей ячейке Каждая сумма, если возможно, вычисляется с двойной точностью, и поэтому необходимы две ячейки. После того как все
вычислены, выявляем
и если
то запоминаем
Если максимум достигается несколькими
берем первую такую а.
(iii) Переставляем строки
(включая
столбцы
Округляем текущее
до одинарной точности, получаем
и записываем на место
Это ведущий элемент.
(iv) Для всех значений
от
до
вычисляем
и записываем на место
Некоторые пункты требуют специального комментария. Если на каком-либо этапе
то
не определены, и мы можем взять любые значения, по модулю меньшие единицы. При этом сохранится численная устойчивость. Наиболее просто взять соответствующие
равными нулю. Если используется арифметика с плавающей запятой и накоплением скалярных произведений, то мы мало теряем, если округляются до одинарной точности сразу после вычисления. Тогда каждое а временно может храниться на месте соответствующего
до тех пор, пока оно не понадобится для вычисления
. В этом случае мы можем обойтись без ячеек, обозначенных
При использовании накопления с фиксированной запятой мы должны запоминать
с двойной точностью, если желательно получить полную выгоду. Однако, так как таких
на на
шаге только
то в ячейках
всегда есть место для величин
Надо подчеркнуть, что, за исключением ошибок округления, процесс, который мы сейчас описали, совпадает с процессом в §§ 8, 9. При точных вычислениях перестановки
одинаковы.