I was building some triangulation graphs on a fairly large data (150k points) and it took 25 minutes. I figured that vast majority of time was consumed by the handing of coincident points, even though there were no coincident points in the whole dataset. With this PR, the same Gabriel graph took 7s.
See the timings on a repr:
coords = np.random.rand(10000, 2)
g = Graph.build_triangulation(coords, kernel="identity")
# main: 10 s ± 58.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
# this PR: 193 ms ± 1.81 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
I was building some triangulation graphs on a fairly large data (150k points) and it took 25 minutes. I figured that vast majority of time was consumed by the handing of coincident points, even though there were no coincident points in the whole dataset. With this PR, the same Gabriel graph took 7s.
See the timings on a repr:
The tests on this will fail until #709 is merged.