parameters: (angle, axis)
return_statement: return quaternion
docstring: Return quaternion for rotation about axis.
  
      >>> q = quaternion_about_axis(0.123, (1, 0, 0))
      >>> numpy.allclose(q, [0.06146124, 0, 0, 0.99810947])
      True
docstring_summary: Return quaternion for rotation about axis.
docstring_tokens: Return quaternion for rotation about axis .
function: def quaternion_about_axis(angle, axis):
      """Return quaternion for rotation about axis.
  
      >>> q = quaternion_about_axis(0.123, (1, 0, 0))
      >>> numpy.allclose(q, [0.06146124, 0, 0, 0.99810947])
      True
  
      """
      quaternion = numpy.zeros((4, ), dtype=numpy.float64)
      quaternion[:3] = axis[:3]
      qlen = vector_norm(quaternion)
      if qlen > _EPS:
          quaternion *= math.sin(angle/2.0) / qlen
      quaternion[3] = math.cos(angle/2.0)
      return quaternion
function_tokens: def quaternion_about_axis ( angle , axis ) : quaternion = numpy . zeros ( ( 4 , ) , dtype = numpy . float64 ) quaternion [ : 3 ] = axis [ : 3 ] qlen = vector_norm ( quaternion ) if qlen > _EPS : quaternion *= math . sin ( angle / 2.0 ) / qlen quaternion [ 3 ] = math . cos ( angle / 2.0 ) return quaternion