def det_4x3(a,b,c,d):
    '''
    det_4x3(a,b,c,d) yields the determinate of the matrix formed the given rows, which may have
      more than 1 dimension, in which case the later dimensions are multiplied and added point-wise.
      The point's must be 3D points; the matrix is given a fourth column of 1s and the resulting
      determinant is of this matrix. 
    '''
    # I just solved this in Mathematica, copy-pasted, and replaced the string '] m' with ']*m':
    # Mathematica code: Det@Table[If[j == 3, 1, i[j]], {i, {a, b, c, d}}, {j, 0, 3}]
    return (a[1]*b[2]*c[0] + a[2]*b[0]*c[1] - a[2]*b[1]*c[0] - a[0]*b[2]*c[1] -
            a[1]*b[0]*c[2] + a[0]*b[1]*c[2] + a[2]*b[1]*d[0] - a[1]*b[2]*d[0] -
            a[2]*c[1]*d[0] + b[2]*c[1]*d[0] + a[1]*c[2]*d[0] - b[1]*c[2]*d[0] -
            a[2]*b[0]*d[1] + a[0]*b[2]*d[1] + a[2]*c[0]*d[1] - b[2]*c[0]*d[1] -
            a[0]*c[2]*d[1] + b[0]*c[2]*d[1] + a[1]*b[0]*d[2] - a[0]*b[1]*d[2] -
            a[1]*c[0]*d[2] + b[1]*c[0]*d[2] + a[0]*c[1]*d[2] - b[0]*c[1]*d[2])
det_4x3(a,b,c,d) yields the determinate of the matrix formed the given rows, which may have
      more than 1 dimension, in which case the later dimensions are multiplied and added point-wise.
      The point's must be 3D points; the matrix is given a fourth column of 1s and the resulting
      determinant is of this matrix.