code: def is_obtuse(p1, v, p2):
      '''Determine whether the angle, p1 - v - p2 is obtuse
      
      p1 - N x 2 array of coordinates of first point on edge
      v - N x 2 array of vertex coordinates
      p2 - N x 2 array of coordinates of second point on edge
      
      returns vector of booleans
      '''
      p1x = p1[:,1]
      p1y = p1[:,0]
      p2x = p2[:,1]
      p2y = p2[:,0]
      vx = v[:,1]
      vy = v[:,0]
      Dx = vx - p2x
      Dy = vy - p2y
      Dvp1x = p1x - vx
      Dvp1y = p1y - vy
      return Dvp1x * Dx + Dvp1y * Dy > f is_obtuse(p1, v, p2):
      '''Determine whether the angle, p1 - v - p2 is obtuse
      
      p1 - N x 2 array of coordinates of first point on edge
      v - N x 2 array of vertex coordinates
      p2 - N x 2 array of coordinates of second point on edge
      
      returns vector of booleans
      '''
      p1x = p1[:,1]
      p1y = p1[:,0]
      p2x = p2[:,1]
      p2y = p2[:,0]
      vx = v[:,1]
      vy = v[:,0]
      Dx = vx - p2x
      Dy = vy - p2y
      Dvp1x = p1x - vx
      Dvp1y = p1y - vy
      return Dvp1x * Dx + Dvp1y * Dy > 0
docs: Determine whether the angle, p1 - v - p2 is obtuse
      
      p1 - N x 2 array of coordinates of first point on edge
      v - N x 2 array of vertex coordinates
      p2 - N x 2 array of coordinates of second point on edge
      
      returns vector of booleans