parameters: (q)
return_statement: return [a11,a21,a31,a12,a22,a32,a13,a23,a33]
docstring: Given a unit quaternion (w,x,y,z), produce the corresponding rotation
      matrix.
docstring_summary: Given a unit quaternion (w,x,y,z), produce the corresponding rotation
      matrix.
docstring_tokens: Given a unit quaternion ( w x y z ) produce the corresponding rotation matrix .
function: def from_quaternion(q):
      """Given a unit quaternion (w,x,y,z), produce the corresponding rotation
      matrix."""
      w,x,y,z = q
      x2 = x + x; y2 = y + y; z2 = z + z;
      xx = x * x2;   xy = x * y2;   xz = x * z2;
      yy = y * y2;   yz = y * z2;   zz = z * z2;
      wx = w * x2;   wy = w * y2;   wz = w * z2;
  
      a11 = 1.0 - (yy + zz)
      a12 = xy - wz
      a13 = xz + wy
      a21 = xy + wz
      a22 = 1.0 - (xx + zz)
      a23 = yz - wx
      a31 = xz - wy
      a32 = yz + wx
      a33 = 1.0 - (xx + yy)
      return [a11,a21,a31,a12,a22,a32,a13,a23,a33]
function_tokens: def from_quaternion ( q ) : w , x , y , z = q x2 = x + x y2 = y + y z2 = z + z xx = x * x2 xy = x * y2 xz = x * z2 yy = y * y2 yz = y * z2 zz = z * z2 wx = w * x2 wy = w * y2 wz = w * z2 a11 = 1.0 - ( yy + zz ) a12 = xy - wz a13 = xz + wy a21 = xy + wz a22 = 1.0 - ( xx + zz ) a23 = yz - wx a31 = xz - wy a32 = yz + wx a33 = 1.0 - ( xx + yy ) return [ a11 , a21 , a31 , a12 , a22 , a32 , a13 , a23 , a33 ]