4 ms·
I agree on all fronts. I think GA is a poor choice for practical programming for the same reasons you identify: nobody knows how to do it well, tools / architec
by sago 11y ago
I agree on all fronts. I think GA is a poor choice for practical programming for the same reasons you identify: nobody knows how to do it well, tools / architectures are not made for it, and nobody has publicly demonstrated its utility on a practical problem in my domain yet (I intended to, and failed).
The second issue, about performance, makes me slightly skeptical of the 'made with GA' claims of Geomeric's engine. I don't doubt there's a GA system in there doing something, but I wonder how much of the actual hard problems in global illumination it is handling, given that global illumination is primarily compute-bound.
As I said, I'd like to be proven wrong. The math does have nice features in the abstract (as you point out).
- jacobolus 11y agoBy the way, it’s totally off topic (I’d email but you don’t have an email listed in your HN profile), but on the subject of new mathematical technologies with practical application, I’ve really been enjoying learning about this thing for the last month or two: http://www.chebfun.org http://www.chebfun.org Here are a couple of hour-long lecture videos https://www.youtube.com/watch?v=cQp-kB9EOQs https://www.youtube.com/watch?v=cQp-kB9EOQs http://downloads.sms.cam.ac.uk/1160831/1160835.mp4 http://downloads.sms.cam.ac.uk/1160831/1160835.mp4 and the first 6 chapters of a book explaining the basics of the underlying theory are freely available online (the rest of the book is great too) http://www.chebfun.org/ATAP/ http://www.chebfun.org/ATAP/ Basic concept is to approximate functions as high-degree polynomials, to within machine precision, and then do operations on those approximations instead of on the original functions, at each step chucking out any coefficients which are smaller than machine precision. This in many cases provides a dramatic speed boost over existing methods for taking integrals/derivatives, finding roots, solving differential equations, convolution, etc. etc., while staying extremely accurate, much better than discrete solutions. It’s not universally applicable to all functions (for obvious reasons) or all problems, but the team responsible has really done an incredible amount of solid work on the project. Apparently it’s 10+ years old now, but nobody I’ve asked has ever heard of it before. Which is kind of surprising, because it seems amazing to me so far. Unfortunately stuck as a Matlab library for the moment (there are partial ports to NumPy and Julia but they are very feature poor compared to the Matlab version).
- sago 11y agoThat sound? That was my weekend going poof! Thank you. A worthwhile OT. Maybe you could submit it as a link?
- jacobolus 11y agoIt was submitted as a link a few times 2–4 years ago but got no traction: few votes and no comments https://news.ycombinator.com/item?id=3350754 https://news.ycombinator.com/item?id=3350754 https://news.ycombinator.com/item?id=9463006 https://news.ycombinator.com/item?id=9463006 https://news.ycombinator.com/item?id=6352216 https://news.ycombinator.com/item?id=6352216 https://news.ycombinator.com/item?id=5324400 https://news.ycombinator.com/item?id=5324400 I want to write some examples (as long blog posts or similar) in a few concrete science fields showing how to use these tools in practice and submit those. I feel like the chebfun guys haven’t really figured out some good introductory hooks yet, or done much marketing/outreach: most of their output is papers about approximation theory which takes some amount of effort to figure out and only get seen by academics working in the same subfield, and the practical examples on their site are pretty small pieces (and don’t have comparisons vs. alternative approaches) so it’s hard to see the big picture. Those lecture videos are pretty good, but an hour long lecture is a somewhat big commitment and hard to skim. BTW, I’m serious about the email thing: shoot me a note (address in my profile) and I’d love to hear about your attempts to implement Geometric Algebra in code. One of my goals for the next few years is to at some point sit down and write a nice web-based introduction to GA filled with interactive diagrams.
- mc808 11y agoI happened upon this presentation just a couple days ago - compile-time geometric algebra in C++ via metaprogramming. https://www.youtube.com/watch?v=W4p-e-g37tg https://www.youtube.com/watch?v=W4p-e-g37tg Not sure how useful it is in day-to-day reality, but at the very least it might make other GA implementations seem simple by comparison.
- cschwan 11y agoCompile time is the most efficient way (IMO) to deal with all the types that can appear (also in intermediate steps of a calculation). I found this idea first realized in this implementation: https://github.com/JaapSuter/Vital https://github.com/JaapSuter/Vital. According to the comments in the code is from 2004 so it did could not make use of C++0x, which is why I adopted it rewrote it for C++11. This was motivated by an actual problem I had to solve but, sadly, it turned out GA isn't fit for it.
- eggy 11y agoI think GA allows for fewer symbols to express similar mathematical ideas, just as J or APL allow for more concise programs. The whole 'Notation as a Tool of Thought' thing by Ken Iverson. I believe new notations require time to sink in to usage for thinking, and then implemented in to the things of the world. We are heading towards concurrent and parallel hardware, distributed systems, GPUs, array languages, and vector processing machines. Maybe a GA implementation will work at a more basic level when we step away from the archaic hardware architecture we have grown so accustomed to and speak GA at a more native level. Lisp machines that speak native GA! Call me a convert or a 'gusher'. I like the beauty of the GA as written, although I plead ignorance to any of the attempts to render it in today's software/hardware. I did read of a company trying to embed it into a graphics processor chip vs. a software library. I'll have to find the reference again. [EDIT] Here's the link for the chip: http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6783758 http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6...