First Post!
The talk I showed this morning is available at https://indico.cern.ch/contributionDisplay.py?contribId=2&sessionId=0&am... (the CERN indico for the last LHCb computing week, which was the 1st week of November) For those that don’t have access to that, I’ve attached a copy — note that it has more than just C++11 and ‘data layout’; feel free to ignore those other bits (and on the 14th slide, thinking about it for a 2nd time, it is better have two pointers in the ‘red’ stuff, one to the blue and one to the green directly, and pair up the offsets and thus creating a ‘zipped’ iteration; anyway, just an example that there is room for obvious improvement compared to what I wrote).
The talks I mentioned can be found at http://channel9.msdn.com/Events/GoingNative/2013 esp. the talks from Sean Parent (Adobe) and STL (MS) & Alexandrescu (Facebook) are inspiring. Then there is http://channel9.msdn.com/Events/GoingNative/GoingNative-2012 and https://www.facebook.com/notes/facebook-engineering/three-optimization-tips-...
An example of what looks to me as very clean C++11 code are the ‘ranges’ introduced here: https://github.com/ericniebler/range-v3 — this is work in progress, but Eric Niebler is the author boost::proto, which I wish I could understand in detail, as it is probably one of the most clever bits of C++ ‘out there’.
Then there is an entire website devoted to ‘data oriented programming’ — not surprisingly, it is http://www.dataorienteddesign.com/dodmain/ (go one level up for several more links), and there is http://gameprogrammingpatterns.com and finally, the toy example (which has morphed around a bit) is attached as a tar.gz file. As mentioned it was inspired by ArrowStreet (see https://github.com/ExaScience/arrow-street and https://indico.cern.ch/contributionDisplay.py?contribId=475&sessionId=7&...
Then there is some documentation on the algorithm which I find the most suited to ‘attack’, namely the ‘forward patter recognition’ here: https://twiki.cern.ch/twiki/bin/view/LHCb/PatForward The code lives eg. at http://svnweb.cern.ch/world/wsvn/lhcb/Rec/trunk/Tf/PatAlgorithms/src/?#a3ed3... and to be concrete, what matters is everything invoked from the ‘execute’ method of http://svnweb.cern.ch/world/wsvn/lhcb/Rec/trunk/Tf/PatAlgorithms/src/PatForw...
I guess that covers most of what we discussed this morning ;-)
Cheers, — Gerhard