code: def rodrigues_axis_angle_rotate(x, vec, theta):
      
      x = np.array(x).T
      vec = np.array(vec).T
      theta = np.array(theta).T[...,None]
  
      out = np.cos(theta)*x + np.sin(theta)*np.cross(vec, x) + \
          (1 - np.cos(theta)) * (vec * x).sum(axis=-1)[...,None] * vec
  
      return out.T
docs: Rotated the input vector or set of vectors `x` around the axis
      `vec` by the angle `theta`.
  
      Parameters
      ----------
      x : array_like
          The vector or array of vectors to transform. Must have shape