We present a specialized constant folding algorithm to decrease the size of the combinatorial problem in order to increase the efficiency of heuristics for its solution.

Jacobian accumulation, linearities, constant folding

To our knowledge general-purpose compilers do not perform this kind of extended static constant folding analysis.

We present new algorithms for the optimality-preserving elimination of linearities in Jacobian accumulation by constant folding. Numerical results are presented in Section 4 with the help of three case studies.

Linearities and Constant Folding. The edge label multiplications can be categorized into trivial, constant, and variable multiplications ([*.sub.t], [*.sub.c], [*.sub.[upsilon]]) based on the type of operands as shown in Figure 3.1.

One can argue that code optimization via constant propagation and constant folding algorithms built into compilers is already capable of optimizing [*.sub.t] and [*.sub.c] away.

Reduction of the problem size through constant folding in G

The application of the constant folding to seu graphs is a theoretical exercise as the optimal solution is constructed and does not require a search space reduction.

In Section 4.1 we introduce the format of the output graph generated by OpenAD (5) and we illustrate the effect of constant folding at the level of local partial derivatives.

Constant folding as presented here is implemented in the OpenAD (7) framework of the Adjoint Compiler Technology & Standards (ACTS) project.