anchor.diff:  
   Very straight forward. This is the fastest function you can have, it only does a transpose and some dot products. If we add in scales, it takes a little more time to do rescaling, but still pretty fast. There is a little trick for calculating squared size, we can make use of the fact that we need to transpose 3x3 rotation part anyway, do squared size after and calculate 3 axes in one go.
   
  -[source, C/C++]
  +[source,C++]
   ----
   #define SMALL_NUMBER		(1.e-8f)
   
  
positive.code: 
  Here’s the code for these three functions:
  
  [source, C/C++]
  ----
  // for row major matrix
  // we use __m128 to represent 2x2 matrix as A = | A0  A1 |
  
negative.code: 
  Before we jump in intrinsics, I would like to define a bunch of shuffle/swizzle macros. Hopefully they will make it easier to read. We also make use of faster instructions for special shuffles.
  
  [source,C++]
  ----
  #define MakeShuffleMask(x,y,z,w)			(x | (y<<2) | (z<<4) | (w<<6))
  
  