
Sarrus Scheme for Cross Products and Determinants
Submitted by 
Sarrus scheme
aka: Sarrus Rule, Rule of Sarrus, The Sarrus Expansion, aka The
Enigmatic Sarrus's 12 steps to better Cross products
named for P.F. Sarrus but previously created by Takakazu Seki
Here is a little tip for anyone who ever has trouble remembering how to
calculate a cross product.
I just picked it up while reading through the appendix of RealTime
Rendering by AkenineMoller and Haines.
let:
i be the X axis,
j be the Y axis,
k be the Z axis. 
given vectors A and vectors B
A = <Ax,Ay,Az>
B = <Bx,By,Bz> 
list a matrix that looks like this:
now write it twice side by side:
+ + +   
\ \ \ / / /
i j k i j k
Ax Ay Az Ax Ay Az
Bx By Bz Bx By Bz 
then follow the + and  along the diagonals to add up the terms:
i*Ay*Bz + j*Az*Bx + k*Ax*By  i*AzBy  j*AxBz  K*AyBx 
gather the terms:
i(AyBz  AzBy) + j(AzBx  AxBz) + k(AxBy  AyBx) 
the stuff inside the parenthesis are the components of your new vector
A cross B = < (AyBzAzBy), (AzBxAxBz), (AxByAyBx) > 
This same technique can be used to compute the determinant too.
I'm sure this is an old trick to some of you, but it's new to me.
may you never forget how to compute a cross product again.
 Clint Brewer

The zip file viewer built into the Developer Toolbox made use
of the zlib library, as well as the zlibdll source additions.
