On Wednesday 28 January 2009 18:09:30 bOR_ wrote:
> Errata: Hanno works in Groningen. As I work in Utrecht, I sort of
> automatically appended 'Utrecht' after 'Theoretical Biology'.
>
> Ontopic: There is a thing called Hilbert curves that you could use.
> http://en.wikipedia.org/wiki/Hilbert_curve
>
> You could define a 1d array, and translate the bird 2d position into a
> position in that array, using the hilbert curve. Now, if you want to
> have a subset of nearby birds, you can just take a subarray of that
> array around the bird of interest, and base your bird behaviour on the
> birds in that subarray.
>
> Not sure what the best data structure is to implement this in, or what
> way to do it in clojure, but it gives you an idea.

That is an academically fascinating idea that I once persued when I was an 
academic (in the context of dynamical matrix preconditioning). :-)

Unfortunately, it does not work out well in practice despite the existence of 
some great Hilbert curve libraries:

  http://www.tiac.net/~sw/2008/10/Hilbert/moore/index.html

The reason is that cache locality much prefers striping over suitably-sized 
tiles rather than fancy curves.

-- 
Dr Jon Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/?e

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to