def volTetra(xyz, A, B, C, D):
    """
    Returns the volume for tetrahedras volume specified by the indexes A to D.

    :param numpy.ndarray xyz: X,Y,Z vertex vector
    :param numpy.ndarray A,B,C,D: vert index of the tetrahedra
    :rtype: numpy.ndarray
    :return: V, volume of the tetrahedra

    Algorithm https://en.wikipedia.org/wiki/Tetrahedron#Volume

    .. math::

       V = {1 \\over 3} A  h

       V = {1 \\over 6} | ( a - d ) \\cdot ( ( b - d )  ( c - d ) ) |

    """
    AD = xyz[(A), :] - xyz[(D), :]
    BD = xyz[(B), :] - xyz[(D), :]
    CD = xyz[(C), :] - xyz[(D), :]
    V = (BD[:, (0)] * CD[:, (1)] - BD[:, (1)] * CD[:, (0)]) * AD[:, (2)] - (
        BD[:, (0)] * CD[:, (2)] - BD[:, (2)] * CD[:, (0)]) * AD[:, (1)] + (
        BD[:, (1)] * CD[:, (2)] - BD[:, (2)] * CD[:, (1)]) * AD[:, (0)]
    return V / 6
