Kirkpatrick–Seidel algorithm