def METHOD_NAME(scheme, tol=1e-6, relaxed=False):
    """
    A scheme is valid if:
    1. All its weights sums up to one;
    2. All the weights are positive;
    3. All its points are inside the reference tetrahedron;
    4. No point lie on an face.
    """
    return math.isclose(numpy.sum(scheme.weights), 1.0, rel_tol=1e-10) \
        and (relaxed or (scheme.weights >= tol).all()) \
        and (scheme.points >= 0).all() \
        and (scheme.points[:, 0] + scheme.points[:, 1] + scheme.points[:, 2] <= 1 - tol).all() \
        and (scheme.points[:, 0] >= tol).all() \
        and (scheme.points[:, 1] >= tol).all() \
        and (scheme.points[:, 2] >= tol).all()