parameters: (quaternion)
return_statement: return numpy.array([
          [1.0-q[2, 2]-q[3, 3],     q[1, 2]-q[3, 0],     q[1, 3]+q[2, 0], 0.0],
          [    q[1, 2]+q[3, 0], 1.0-q[1, 1]-q[3, 3],     q[2, 3]-q[1, 0], 0.0],
          [    q[1, 3]-q[2, 0],     q[2, 3]+q[1, 0], 1.0-q[1, 1]-q[2, 2], 0.0],
          [                0.0,                 0.0,                 0.0, 1.0]])
docstring: Return homogeneous rotation matrix from quaternion.
  
      >>> M = quaternion_matrix([0.99810947, 0.06146124, 0, 0])
      >>> numpy.allclose(M, rotation_matrix(0.123, [1, 0, 0]))
      True
      >>> M = quaternion_matrix([1, 0, 0, 0])
      >>> numpy.allclose(M, numpy.identity(4))
      True
      >>> M = quaternion_matrix([0, 1, 0, 0])
      >>> numpy.allclose(M, numpy.diag([1, -1, -1, 1]))
      True
docstring_summary: Return homogeneous rotation matrix from quaternion.
docstring_tokens: Return homogeneous rotation matrix from quaternion .
function: def quaternion_matrix(quaternion):
      """Return homogeneous rotation matrix from quaternion.
  
      >>> M = quaternion_matrix([0.99810947, 0.06146124, 0, 0])
      >>> numpy.allclose(M, rotation_matrix(0.123, [1, 0, 0]))
      True
      >>> M = quaternion_matrix([1, 0, 0, 0])
      >>> numpy.allclose(M, numpy.identity(4))
      True
      >>> M = quaternion_matrix([0, 1, 0, 0])
      >>> numpy.allclose(M, numpy.diag([1, -1, -1, 1]))
      True
  
      """
      q = numpy.array(quaternion, dtype=numpy.float64, copy=True)
      n = numpy.dot(q, q)
      if n < _EPS:
          return numpy.identity(4)
      q *= math.sqrt(2.0 / n)
      q = numpy.outer(q, q)
      return numpy.array([
          [1.0-q[2, 2]-q[3, 3],     q[1, 2]-q[3, 0],     q[1, 3]+q[2, 0], 0.0],
          [    q[1, 2]+q[3, 0], 1.0-q[1, 1]-q[3, 3],     q[2, 3]-q[1, 0], 0.0],
          [    q[1, 3]-q[2, 0],     q[2, 3]+q[1, 0], 1.0-q[1, 1]-q[2, 2], 0.0],
          [                0.0,                 0.0,                 0.0, 1.0]])
function_tokens: def quaternion_matrix ( quaternion ) : q = numpy . array ( quaternion , dtype = numpy . float64 , copy = True ) n = numpy . dot ( q , q ) if n < _EPS : return numpy . identity ( 4 ) q *= math . sqrt ( 2.0 / n ) q = numpy . outer ( q , q ) return numpy . array ( [ [ 1.0 - q [ 2 , 2 ] - q [ 3 , 3 ] , q [ 1 , 2 ] - q [ 3 , 0 ] , q [ 1 , 3 ] + q [ 2 , 0 ] , 0.0 ] , [ q [ 1 , 2 ] + q [ 3 , 0 ] , 1.0 - q [ 1 , 1 ] - q [ 3 , 3 ] , q [ 2 , 3 ] - q [ 1 , 0 ] , 0.0 ] , [ q [ 1 , 3 ] - q [ 2 , 0 ] , q [ 2 , 3 ] + q [ 1 , 0 ] , 1.0 - q [ 1 , 1 ] - q [ 2 , 2 ] , 0.0 ] , [ 0.0 , 0.0 , 0.0 , 1.0 ] ] )