Algorithmic, or automatic, differentiation (AD) is a growing area of theoretical research and software development concerned with the accurate and efficient evaluation of derivatives for function evaluations given as computer programs. The resulting derivative values are useful for all scientific computations that are based on linear, quadratic, or higher order approximations to nonlinear scalar or vector functions. This second edition covers recent developments in applications and theory, including an elegant NP completeness argument and an introduction to scarcity. There is also added material on checkpointing and iterative differentiation. To improve readability the more detailed analysis of memory and complexity bounds has been relegated to separate, optional chapters. The book consists of: a stand-alone introduction to the fundamentals of AD and its software; a thorough treatment of methods for sparse problems; and final chapters on program-reversal schedules, higher derivatives, nonsmooth problems and iterative processes.
Andreas Griewank is a former senior scientist of Argonne National Laboratory and authored the first edition of this book in 2000. He holds a Ph.D. from the Australian National University and is currently Deputy Director of the Institute of Mathematics at Humboldt University Berlin and a member of the DFG Research Center Matheon, Mathematics for Key Technologies. His main research interests are nonlinear optimization and scientific computing. Andrea Walther studied mathematics and economy at the University of Bayreuth. She holds a doctorate degree from the Technische Universitat Dresden. Since 2003 Andrea Walther has been Juniorprofessor for the analysis and optimization of computer models at the Technische Universitat Dresden. Her main research interests are scientific computing and nonlinear optimization.
Rules; Preface; Prologue; Mathematical symbols; 1. Introduction; 2. A framework for evaluating functions; 3. Fundamentals of forward and reverse; 4. Memory issues and complexity bounds; 5. Repeating and extending reverse; 6. Implementation and software; 7. Sparse forward and reverse; 8. Exploiting sparsity by compression; 9. Going beyond forward and reverse; 10. Jacobian and Hessian accumulation; 11. Observations on efficiency; 12. Reversal schedules and checkpointing; 13. Taylor and tensor coefficients; 14. Differentiation without differentiability; 15. Implicit and iterative differentiation; Epilogue; List of figures; List of tables; Assumptions and definitions; Propositions, corollaries, and lemmas; Bibliography; Index.