Abstract
AbstractAlgorithmic differentiation is a tool used in several branches of computational science, both in conjunction with the interval calculus, and apart of it. This paper presents the ADHC library [14] developed by the author, and identified as package “na60” by Numerical Algorithms journal. This library makes intensive use of the C++ template meta-programming, and it has several unique features. ADHC seems particularly useful for interval-related applications. The library has been used by some solvers, also developed by the author, including HIBA_USNE. The paper describes the library, presenting its features, focusing on the new ones, added in version 2.0; in particular, we describe bounding subdifferentials of non-smooth functions and computing derivatives over various datatypes. Efficiency comparison with respect to other packages is also presented. Then some examples of ADHC applications are given, involving the use of HIBA_USNE and standard benchmark problems for solving nonlinear systems. A particular emphasis is put on examples related to modern machine learning, but not limited to them. Planned extensions and possible directions for future development of ADHC are also outlined and discussed.
Publisher
Springer Science and Business Media LLC
Reference61 articles.
1. PROFIL/BIAS library. https://www.tuhh.de/ti3/keil/profil/index_e.html (2009)
2. FILIB++ library. http://www2.math.uni-wuppertal.de/wrswt/software/filib.html (2011)
3. C++ eXtended Scientific Computing library. http://www.xsc.de (2014)
4. GAOL – Not Just Another Interval Library. https://github.com/goualard-f/GAOL (2020)
5. Adept (Automatic Differentiation using Expression Templates) C++ library. http://www.met.rdg.ac.uk/clouds/adept (2021)