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!

Reply via email to