anchor.diff:  }
   ----
   
  -おまけとして、最適化の４ｘ４行列式と随伴行列を求め方もこの関数にあります。この関数の２つのことについてもう少し話したいと思います。
  +おまけとして、４ｘ４行列式と随伴行列を求め方もこの関数にあります。
   
   小行列の行列式を計算する時、４つの行列式をまとめて一気に計算する方法を書いたけど、私のCPUでは、別々で計算したあと_mm_set1_ps命令を使ってベクトルレジスタにロードする方が早いです。どうしてと言うと、まとめて計算してもあとで４つのshuffleを使った別々のレジスタに分離しないといけませんので、まとめて計算は近道ではないと思います。実際に使う時両方ともパフォーマンスを確認した上で選んでください。
   
  
positive.code: 
  === 付録その一 
  
  残った仕事はまた一つあります。この方法は仮定なしでも成立するのを証明することです。先ずは何を仮定したのかを振り返ってみよう：
  
  [stem]
  ++++
  
negative.code: M=\left( \begin{matrix} a\vec{X} & 0 \\ b\vec{Y} & 0 \\ c\vec{Z} & 0 \\ \vec{T} & 1 \\ \end{matrix} \right) = \left( \begin{matrix} aX_0 & aX_1 & aX_2 & 0 \\ bY_0 & bY_1 & bY_2 & 0 \\ cZ_0 & cZ_1 & cZ_2 & 0 \\ T_0 & T_1 & T_2 & 1 \\ \end{matrix} \right)
  ++++
  
  第4行の最初の3つの成分は位置stem:[\vec{T}]です。左上の３ｘ３小行列はスケール回転行列で、その3行ともスケール変換した回転軸であります。つまりstem:[\vec{X}\cdot\vec{Y}=\vec{X}\cdot\vec{Z}=\vec{Y}\cdot\vec{Z}=0]、stem:[\left|\vec{X}\right|=\left|\vec{Y}\right|=\left|\vec{Z}\right|=1]、そしてスケールはstem:[(a,b,c)]です。 
  
  ゲームに使う行列はほとんどこの形になります。例えば、stem:[M]はローカルからワールドへの座標変換、stem:[\vec{X}], stem:[\vec{Y}], stem:[\vec{Z}]はローカル座標の軸と考えます。ローカル空間内の位置stem:[\vec{P}(P_0,P_1,P_2)]をローカル座標からワールド座標へ変換する時、次の式を使います：
  
  