<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def group_vectors(vectors, angle=1e-4, include_negative=False):
 """ Group vectors based on an angle tolerance, with the option to include negative vectors. Parameters vectors : (n,3) float Direction vector angle : float Group vectors closer than this angle in radians include_negative : bool If True consider the same: [0,0,1] and [0,0,-1] Returns new_vectors : (m,3) float Direction vector groups : (m,) sequence of int Indices of source vectors """


    vectors = np.asanyarray(vectors, dtype=np.float64)
    angle = float(angle)

    if include_negative:
        vectors = util.vector_hemisphere(vectors)

    spherical = util.vector_to_spherical(vectors)
    angles, groups = group_distance(spherical, angle)
    new_vectors = util.spherical_to_vector(angles)
    return new_vectors, groups