You can throw a loop a curve
Automatic, model-based program transformation relies on the ability to
generate code from a model description of the program. In the context
of automatic parallelisation, cache optimisation and similar
transformations, the task is to generate loop nests which enumerate
the iteration points within given domains. Several approaches to code
generation from polyhedral descriptions of iteration sets have been
proposed and are in use. We present an approach to generating loop
nests for index sets with arbitrary polynomials as bounds using
cylindrical algebraic decomposition. The generated loops are efficient
in the sense that no integer superset is enumerated.
Topic revision: r1 - 07 Jun 2008 - 08:13:09 - Main.JuliaLawall