PADRE2

PADRE2, a Fortran precompiler yielding error estimates and second derivatives. PADRE2 is a precomplier that generates a Fortran subprogram from another Fortran subprogram (source subprogram) representing a scalar-valued function or a vector-valued function with many variables. The generated subprogram comprises three types of subprograms, which compute the gradient, the product of the Hessian matrix and a constant vector, and the product of the Jacobian matrix and a constant vector as well as the estimates of the rounding errors. The computation involves algorithms based on Fast Automatic Differentiation (and automatic differentiation). Since the error estimates are indispensable to determine whether the computed value is numerically zero, software systems for Fast Automatic Differentiation like PADRE2 are valuable. We discuss the performance of Fast Automatic Differentiation, specifically, the overhead for using the technique with PADRE2. Our results show that the execution times of the generated subprograms are 4∼85 times as large as those of the source subprograms in our numerical experiments. Although the ratio might become larger (∼ 460) when the source program is executed on a vector processor, we can reduce the ratio with adequate modification of the generated subprogram. The implementation of PADRE2, as well as future improvements, is briefly explained.