  We investigate the computation of Hessian matrices via Automatic
Differentiation, using a graph model and an algebraic model. The graph model
reveals the inherent symmetries involved in calculating the Hessian. The
algebraic model, based on Griewank and Walther's state transformations,
synthesizes the calculation of the Hessian as a formula. These dual points of
view, graphical and algebraic, lead to a new framework for Hessian computation.
This is illustrated by developing edge_pushing, a new truly reverse Hessian
computation algorithm that fully exploits the Hessian's symmetry. Computational
experiments compare the performance of edge_pushing on sixteen functions from
the CUTE collection against two algorithms available as drivers of the software
ADOL-C, and the results are very promising.
