このアルゴリズムでは、入力に線形独立なベクトルの組を与え、出力にそれらと同じ部分空間を張る正規直行系のベクトルの組を得る。
直交化して正規化する (正規化は不要なら省略可能)。
まだ直交化されていないベクトルを一つ選び、そこからすでに直行化してある全てのベクトルついて、その方向の成分を除去すると、直行化されたベクトルが一つ増える。この作業を繰り返すと、全てのベクトルを直交化できる。
以下では、ベクトル
直交化された各ベクトルをその大きさで割り、単位ベクトルにする。
平行成分は以下のように求められる。
数学的には正しいが、計算機で解くと誤差が大きくなる。
直行化における平行成分の計算を愚直に行う。
つまり、
数学的には古典版と同じだが、計算誤差が小さい。
直行化における平行成分の計算を、対象ベクトルから他の平行成分を除去した後に行う。
つまり、
ここで
古典版と修正版、それぞれの
そのため、古典版よりも修正版のほうが、並行成分の減算時の計算が、近い値どうしとなり、情報落ちによる誤差が小さくなる。