docs: def triangle_area(a,b,c):
      '''
      triangle_area(a, b, c) yields the area of the triangle whose vertices are given by the points a,
      b, and c.
      '''
      (a,b,c) = [np.asarray(x) for x in (a,b,c)]
      sides = np.sqrt(np.sum([(p1 - p2)**2 for (p1,p2) in zip([b,c,a],[c,a,b])], axis=1))
      s = 0.5 * np.sum(sides, axis=0)
      s = np.clip(s * np.prod(s - sides, axis=0), 0.0, None)
      return np.sqrt(s)