| |
| | Techniques for Scientific C++ |
 | | Separate versions of the list code will be generated for both A and B, even though most of it will be identical (for example, when you are traversing a list you usually don't care about how the data was allocated). |
 | | Here's a partial list of some of the refinements people have implemented: type promotion, glommable expression templates, loop nest optimizations (tiling, loop interchange, unrolling,...) stack iterators for multidimensional arrays, updaters, pretty-printing, unit stride optimizations, shape conformance checking, loop collapsing, pattern matching, index placeholders, tensor notation, reductions, etc. etc. |
 | | This version will run at peak speed: unrolling exposes low-level parallelism and removes loop overhead; and inlining eliminates function call overhead, permits data to be registerized, and permits floating-point operations to be scheduled around adjacent computations. |
| www.osl.iu.edu /~tveldhui/papers/techniques/techniques01.html (8572 words) |
|