Cool stuff, and rather a large number of calculations. In developing that, typos would have cost me hours :).
One thought: can you make the interface more intuitive with a couple of well- chosen immutables? I'm thinking of a SphereN (N = 2 or 3) type that you define with the first nd+1 points, then pass a final PointN for the test. I wonder if some of the calculations could be pre-computed when you define the Sphere, and then perhaps re-used for tests of multiple points. --Tim On Monday, May 12, 2014 07:21:01 AM Ariel Keselman wrote: > p.s. I implemented this some time ago (a few years?) using golang, you can > see some demo here: > > https://www.youtube.com/watch?v=dfx1QA3n2xY&list=UUrqGGYkH7y1W8yH1MbxLXYg > > and using Julia it was much more pleasant... of course I still have to do > all the Voronoi stuff which is really the hard part > > On Monday, May 12, 2014 5:16:21 PM UTC+3, Ariel Keselman wrote: > > see here: > > > > https://gist.github.com/skariel/da85943803a6f57a52fd > > > > it implements fast and robust 2D and 3D orientation and in-circle tests > > according to the algorithms described in this paper: > > > > http://arxiv.org/abs/0901.4107 > > > > i.e. calculate using regular Floats while constraining the error. If in > > danger of getting a bad result repeat using exact calculation. > > > > this is good to implement fast Voronoy/Delaunay tessellations. See some > > usage in the recent biggest cosmological simulation Illustris: > > > > http://www.illustris-project.org/ > > > > These should be faster than say- > > > > http://www.cs.cmu.edu/~quake/robust.html > > > > which use adaptive precision > > > > I intend to implement Voronoy algorithms on top of this, some day :) > > > > Feedback welcome!
