{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,10]],"date-time":"2026-03-10T02:15:23Z","timestamp":1773108923818,"version":"3.50.1"},"reference-count":27,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2019,12,9]],"date-time":"2019-12-09T00:00:00Z","timestamp":1575849600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Enabling Performance Engineering in Hesse and Rhineland-Palatinate"},{"DOI":"10.13039\/501100001659","name":"Deutsche Forschungsgemeinschaft","doi-asserted-by":"crossref","award":["320898076"],"award-info":[{"award-number":["320898076"]}],"id":[{"id":"10.13039\/501100001659","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Math. Softw."],"published-print":{"date-parts":[[2019,12,31]]},"abstract":"<jats:p>There are several AD tools available that all implement different strategies for the reverse mode of AD. The most common strategies are primal value taping (implemented e.g. by ADOL-C) and Jacobian taping (implemented e.g. by Adept and dco\/c++). Particulary for Jacobian taping, recent advances using expression templates make it very attractive for large scale software. However, the current implementations are either closed source or miss essential features and flexibility. Therefore, we present the new AD tool CoDiPack (Code Differentiation Package) in this paper. It is specifically designed for minimal memory consumption and optimal runtime, such that it can be used for the differentiation of large scale software. An essential part of the design of CoDiPack is the modular layout and the recursive data structures which not only allow the efficient implementation of the Jacobian taping approach but will also enable other approaches like the primal value taping or new research ideas. We will finally present the performance values of CoDiPack on a generic PDE example and on the SU2 code.<\/jats:p>","DOI":"10.1145\/3356900","type":"journal-article","created":{"date-parts":[[2019,12,9]],"date-time":"2019-12-09T13:35:27Z","timestamp":1575898527000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":90,"title":["High-Performance Derivative Computations using CoDiPack"],"prefix":"10.1145","volume":"45","author":[{"given":"Max","family":"Sagebaum","sequence":"first","affiliation":[{"name":"TU Kaiserslautern, Kaiserslautern, Germany"}]},{"given":"Tim","family":"Albring","sequence":"additional","affiliation":[{"name":"TU Kaiserslautern, Kaiserslautern, Germany"}]},{"given":"Nicolas R.","family":"Gauger","sequence":"additional","affiliation":[{"name":"TU Kaiserslautern, Kaiserslautern, Germany"}]}],"member":"320","published-online":{"date-parts":[[2019,12,9]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.2514\/6.2015-3240"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1007\/s007910000048"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0096-3003(02)00091-7"},{"key":"e_1_2_1_4_1","volume-title":"Retrieved","author":"Beal S.","year":"2004","unstructured":"S. Beal. 2004. Supermacros: Powerful, Maintainable Preprocessor Macros in C++. Retrieved December 21, 2016 from http:\/\/wanderinghorse.net\/computing\/papers\/supermacros_cpp.pdf."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","unstructured":"B. M. Bell and J. V. Burke. 2008. Algorithmic differentiation of implicit functions and optimal values. In Advances in Automatic Differentiation Christian H. Bischof H. Martin B\u00fccker Paul D. Hovland Uwe Naumann and J. Utke (Eds.). Springer 67--77. DOI:https:\/\/doi.org\/10.1007\/978-3-540-68942-3_7","DOI":"10.1007\/978-3-540-68942-3_7"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.mcm.2008.12.006"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1080\/10556789408805572"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.2514\/6.2018-3111"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.2514\/1.J053813"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1137\/1.9780898717761"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2560359"},{"key":"e_1_2_1_12_1","volume-title":"International Conference on Computational Science. Springer, 480--486","author":"H\u00fcck A.","unstructured":"A. H\u00fcck, S. Kreutzer, D. Messig, A. Scholtissek, C. Bischof, and C. Hasse. 2018. Application of algorithmic differentiation for exact Jacobians to the universal laminar flame solver. In International Conference on Computational Science. Springer, 480--486."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1080\/10556788.2017.1396602"},{"key":"e_1_2_1_14_1","volume-title":"RWTH Aachen University. Retrieved","author":"Leppkes K.","year":"2019","unstructured":"K. Leppkes, J. Lotz, and U. Naumann. 2016. Derivative Code by Overloading in C++ (dco\/c++): Introduction and Summary of Features. Technical Report AIB-2016-08. RWTH Aachen University. Retrieved October 22, 2019 from http:\/\/aib.informatik.rwth-aachen.de\/2016\/2016-08.pdf."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.11588\/ans.2017.1.27477"},{"key":"e_1_2_1_16_1","volume-title":"2018 Multidisciplinary Analysis and Optimization Conference. AIAA 2018-3638","author":"Luers M.","unstructured":"M. Luers, M. Sagebaum, S. Mann, J. Backhaus, D. Grossmann, and N. R. Gauger. 2018. Adjoint-based volumetric shape optimization of turbine blades. In 2018 Multidisciplinary Analysis and Optimization Conference. AIAA 2018-3638."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00158-017-1708-2"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","unstructured":"E. Phipps and R. Pawlowski. 2012. Efficient expression templates for operator overloading-based automatic differentiation. In Recent Advances in Algorithmic Differentiation Shaun Forth Paul Hovland Eric Phipps Jean Utke and Andrea Walther (Eds.). Lecture Notes in Computational Science and Engineering Vol. 87. Springer Berlin 309--319. DOI:https:\/\/doi.org\/10.1007\/978-3-642-30023-3_28","DOI":"10.1007\/978-3-642-30023-3_28"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","unstructured":"E. T. Phipps R. A. Bartlett D. M. Gay and R. J. Hoekstra. 2008. Large-scale transient sensitivity analysis of a radiation-damaged bipolar junction transistor via automatic differentiation. In Advances in Automatic Differentiation Christian H. Bischof H. Martin B\u00fccker Paul D. Hovland Uwe Naumann and J. Utke (Eds.). Springer 351--362. DOI:https:\/\/doi.org\/10.1007\/978-3-540-68942-3_31","DOI":"10.1007\/978-3-540-68942-3_31"},{"key":"e_1_2_1_20_1","volume-title":"Retrieved","author":"Sagebaum M.","year":"2017","unstructured":"M. Sagebaum. 2017. MeDiPack: Message Differentiation Package. Retrieved October 22, 2019 from https:\/\/www.scicomp.uni-kl.de\/software\/medi."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1080\/10556788.2018.1471140"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1002\/nme.5700"},{"key":"e_1_2_1_23_1","volume-title":"Conference Proceedings of GPPS","author":"Schwalbach M.","year":"2018","unstructured":"M. Schwalbach, L. M\u00fcller, T. Verstraete, and N. R. Gauger. 2018. CAD-based adjoint multidisciplinary optimization of a radial turbine under structural constraints. Conference Proceedings of GPPS 2018. GPPS, 1--8."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-28438-9_11"},{"key":"e_1_2_1_26_1","doi-asserted-by":"crossref","unstructured":"A. Walther and A. Griewank. 2009. Getting started with ADOL-C. In Combinatorial Scientific Computing. Chapman-Hall CRC Computational Science 181--202.","DOI":"10.1201\/b11644-8"},{"key":"e_1_2_1_27_1","doi-asserted-by":"crossref","unstructured":"B. Y. Zhou T. Albring N. R. Gauger C. R. Ilario da Silva T. D. Economon and J. J. Alonso. 2016. An efficient unsteady aerodynamic and aeroacoustic design framework using discrete adjoint. AIAA 1--18.","DOI":"10.2514\/6.2016-3369"},{"key":"e_1_2_1_28_1","doi-asserted-by":"crossref","unstructured":"H. Zhu H. Shu and M. Ding. 2010. Numerical solutions of two-dimensional Burgers\u2019 equations by discrete Adomian decomposition method. Computers 8 Mathematics with Applications 60 3 840--848.","DOI":"10.1016\/j.camwa.2010.05.031"}],"container-title":["ACM Transactions on Mathematical Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3356900","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3356900","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:44:37Z","timestamp":1750203877000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3356900"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,12,9]]},"references-count":27,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2019,12,31]]}},"alternative-id":["10.1145\/3356900"],"URL":"https:\/\/doi.org\/10.1145\/3356900","relation":{},"ISSN":["0098-3500","1557-7295"],"issn-type":[{"value":"0098-3500","type":"print"},{"value":"1557-7295","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,12,9]]},"assertion":[{"value":"2017-10-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-07-01","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-12-09","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}