partial pivoting
Before eliminating a column, swapping in the row with the largest available entry there -- not just any nonzero one -- so the elimination multiplier that column produces never exceeds 1 in size.
Partial pivoting modifies Gaussian elimination by scanning every row at or below the current pivot position and swapping the row with the largest absolute value in the current column into the pivot row before eliminating. Since the elimination multiplier is m=a_{ik}/a_{kk}, maximizing |a_{kk}| guarantees |m|\le1, which prevents the multiplier from amplifying whatever round-off error is already present in the row being eliminated.
Examples
If column 1 has entries 2, -8, 3 in rows 1-3, partial pivoting swaps row 2 (the largest in magnitude, |-8|) into the pivot position before eliminating, not row 1.
See also