Good question. I had a look at javax.vecmath, which is actually pretty good for a lot of purposes. Eventually I decided against using it (believe me, it would have been nice to re-use it so this was not a decision I took lightly!)
Here were the main issues: - No support for large vectors / matrices. Maybe not critical for some game apps, but essential for simulations and machine learning. I feel a good vector library should be able to handle both. - It's a bit too specialised around concrete classes. There aren't any abstractions that you can use for different vector types. Not fun in clojure when you want to work with abstractions (in vectorz I use an abstract base class AVector, for example, which makes it possible to implement many algorithms in a much more generic and flexible way) - Performance is good in vecmath, but not perfect: there are some other optimisations worth making and I wanted the flexibility to do that. For example, it is often worth creating specialised matrix classes for scaling, identity etc. On balance, I felt it was worth building a better library that fitted the broader design goals. On Tuesday, December 4, 2012 2:23:38 AM UTC+8, Michael Gardner wrote: > On Dec 2, 2012, at 06:24 , Mikera <mike.r.an...@gmail.com <javascript:>> > wrote: > > > Contributions / comments / suggestions very welcome. API is not yet set > in stone, so I'm very open to ideas on how to make it better. > > Since the vast majority of physical applications will use 2D or 3D > vectors, did you consider building around javax.vecmath? I have to imagine > that would be faster than any generic vector implementation. I believe Zach > Tellman's cantor (no longer maintained) used a similar approach. > -- 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 Note that posts from new members are moderated - please be patient with your first post. 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