{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,17]],"date-time":"2026-04-17T18:33:26Z","timestamp":1776450806032,"version":"3.51.2"},"reference-count":57,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2025,5,15]],"date-time":"2025-05-15T00:00:00Z","timestamp":1747267200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"research training group SIVERT"},{"name":"German Federal State of Rhineland-Palatinate"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Math. Softw."],"published-print":{"date-parts":[[2025,6,30]]},"abstract":"<jats:p>\n            Algorithmic differentiation (AD) is a set of techniques that provide partial derivatives of computer-implemented functions. Such functions can be supplied to state-of-the-art AD tools via their\n            <jats:italic>source code<\/jats:italic>\n            , or via intermediate representations produced while compiling their source code.\n          <\/jats:p>\n          <jats:p>\n            We present the novel AD tool Derivgrind, which augments the\n            <jats:italic>machine code<\/jats:italic>\n            of compiled programs with forward-mode AD logic. Derivgrind leverages the Valgrind instrumentation framework for structured access to the machine code, and a shadow memory tool to store dot values. Access to the source code is required at most for the files in which input and output variables are defined.\n          <\/jats:p>\n          <jats:p>Derivgrind\u2019s versatility mainly comes at the price of reduced run-time performance. According to our extensive regression test suite, Derivgrind produces correct results on GCC- and Clang-compiled programs, including a Python interpreter, with a small number of exceptions. We provide a list of \u201cbit-tricks\u201d that Derivgrind does not handle correctly, some of which actually appear in highly optimized math libraries. As long as differentiating those is avoided, Derivgrind enables black-box forward-mode AD for an unprecedentedly wide range of cross-language software with little integration efforts.<\/jats:p>","DOI":"10.1145\/3716309","type":"journal-article","created":{"date-parts":[[2025,2,19]],"date-time":"2025-02-19T16:30:10Z","timestamp":1739982610000},"page":"1-25","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Forward-Mode Automatic Differentiation of Compiled Programs"],"prefix":"10.1145","volume":"51","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-6739-5890","authenticated-orcid":false,"given":"Max","family":"Aehle","sequence":"first","affiliation":[{"name":"Chair for Scientific Computing, University of Kaiserslautern-Landau (RPTU), Kaiserslautern, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3840-6941","authenticated-orcid":false,"given":"Johannes","family":"Bl\u00fchdorn","sequence":"additional","affiliation":[{"name":"Chair for Scientific Computing, University of Kaiserslautern-Landau (RPTU), Kaiserslautern, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-9038-3428","authenticated-orcid":false,"given":"Max","family":"Sagebaum","sequence":"additional","affiliation":[{"name":"Chair for Scientific Computing, University of Kaiserslautern-Landau (RPTU), Kaiserslautern, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5863-7384","authenticated-orcid":false,"given":"Nicolas R.","family":"Gauger","sequence":"additional","affiliation":[{"name":"Chair for Scientific Computing, University of Kaiserslautern-Landau (RPTU), Kaiserslautern, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2025,5,15]]},"reference":[{"key":"e_1_3_3_2_1","unstructured":"Mart\u00edn Abadi Ashish Agarwal Paul Barham Eugene Brevdo Zhifeng Chen Craig Citro Greg S. Corrado Andy Davis Jeffrey Dean Matthieu Devin et al. 2015. TensorFlow: Large-Scale Machine Learning on Heterogeneous Systems. arXiv:1603.04467. Retrieved from https:\/\/arxiv.org\/abs\/1603.04467"},{"key":"e_1_3_3_3_1","unstructured":"Max Aehle Lorenzo Arsini R. Bel\u00e9n Barreiro Anastasios Belias Florian Bury Susana Cebrian Alexander Demin Jennet Dickinson Julien Donini Tommaso Dorigo et al. 2023. Progress in end-to-end optimization of detectors for fundamental physics with differentiable programming. arXiv:2310.05673. Retrieved from https:\/\/arxiv.org\/abs\/2310.05673"},{"key":"e_1_3_3_4_1","unstructured":"Max Aehle Xuan Tung Nguyen Mih\u00e1ly Nov\u00e1k Tommaso Dorigo Nicolas R. Gauger Jan Kieseler Markus Klute and Vassil Vassilev. 2024. Efficient forward-mode algorithmic derivatives of Geant4. arXiv:2407.02966. Retrieved from https:\/\/arxiv.org\/abs\/2407.02966"},{"key":"e_1_3_3_5_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.cpc.2024.109491"},{"key":"e_1_3_3_6_1","volume":"1","author":"AMD64 Technology","year":"2021","unstructured":"AMD64 Technology. 2021. AMD64 Architecture Programmer\u2019s Manual, Volumes 1\u20135. Technical Report. Revision 4.04.","journal-title":"AMD64 Architecture Programmer\u2019s Manual"},{"key":"e_1_3_3_7_1","doi-asserted-by":"crossref","first-page":"295","DOI":"10.1145\/2465351.2465380","volume-title":"Proceedings of the 8th ACM European Conference on Computer Systems (EuroSys \u201913)","author":"Anand Kapil","year":"2013","unstructured":"Kapil Anand, Matthew Smithson, Khaled Elwazeer, Aparna Kotha, Jim Gruen, Nathan Giles, and Rajeev Barua. 2013. A compiler-level intermediate representation based binary analysis and rewriting system. In Proceedings of the 8th ACM European Conference on Computer Systems (EuroSys \u201913). ACM, New York, NY, 295\u2013308. DOI: 10.1145\/2465351.2465380"},{"issue":"1","key":"e_1_3_3_8_1","first-page":"5595","article-title":"Automatic differentiation in machine learning: A survey","volume":"18","author":"Baydin At\u0131l\u0131m G\u00fcnes","year":"2017","unstructured":"At\u0131l\u0131m G\u00fcnes Baydin, Barak A. Pearlmutter, Alexey Andreyevich Radul, and Jeffrey Mark Siskind. 2017. Automatic differentiation in machine learning: A survey. J. Mach. Learn. Res. 18, 1 (2017), 5595\u20135637.","journal-title":"J. Mach. Learn. Res"},{"key":"e_1_3_3_9_1","doi-asserted-by":"crossref","first-page":"453","DOI":"10.1145\/2254064.2254118","volume-title":"Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI \u201912)","author":"Benz Florian","year":"2012","unstructured":"Florian Benz, Andreas Hildebrandt, and Sebastian Hack. 2012. A dynamic program analysis to find floating-point accuracy problems. In Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI \u201912). ACM, New York, NY, 453\u2013462. DOI: 10.1145\/2254064.2254118"},{"key":"e_1_3_3_10_1","doi-asserted-by":"publisher","DOI":"10.1155\/1992\/717832"},{"key":"e_1_3_3_11_1","doi-asserted-by":"crossref","first-page":"163","DOI":"10.1007\/978-3-540-68942-3_15","volume-title":"Advances in Automatic Differentiation","author":"Bischof Christian","year":"2008","unstructured":"Christian Bischof, Niels Guertler, Andreas Kowarz, and Andrea Walther. 2008. Parallel reverse mode automatic differentiation for OpenMP programs with ADOL-C. In Advances in Automatic Differentiation. Christian H. Bischof, H. Martin B\u00fccker, Paul Hovland, Uwe Naumann, and Jean Utke (Eds.), Springer, Berlin, 163\u2013173."},{"key":"e_1_3_3_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/3570159"},{"key":"e_1_3_3_13_1","unstructured":"James Bradbury Roy Frostig Peter Hawkins Matthew James Johnson Chris Leary Dougal Maclaurin George Necula Adam Paszke Jake VanderPlas Skye Wanderman-Milne and Qiao Zhang. 2018. JAX: Composable Transformations of Python+NumPy Programs. Retrieved from http:\/\/github.com\/google\/jax"},{"key":"e_1_3_3_14_1","first-page":"213","volume-title":"Proceedings of the 9th Annual IEEE\/ACM International Symposium on Code Generation and Optimization (CGO \u201911)","author":"Bruening Derek","year":"2011","unstructured":"Derek Bruening and Qin Zhao. 2011. Practical memory checking with Dr. Memory. In Proceedings of the 9th Annual IEEE\/ACM International Symposium on Code Generation and Optimization (CGO \u201911). IEEE Computer Society, 213\u2013223."},{"key":"e_1_3_3_15_1","doi-asserted-by":"crossref","first-page":"220","DOI":"10.1145\/967900.967948","volume-title":"Proceedings of the 2004 ACM Symposium on Applied Computing (SAC \u201904)","author":"B\u00fccker H. Martin","year":"2004","unstructured":"H. Martin B\u00fccker, Arno Rasch, and Andreas Wolf. 2004. A class of OpenMP applications involving nested parallelism. In Proceedings of the 2004 ACM Symposium on Applied Computing (SAC \u201904). ACM, New York, NY, 220\u2013224. DOI: 10.1145\/967900.967948"},{"key":"e_1_3_3_16_1","doi-asserted-by":"crossref","first-page":"749","DOI":"10.1109\/ISCC.2006.158","volume-title":"Proceedings of the 11th IEEE Symposium on Computers and Communications (ISCC \u201906)","author":"Cheng Winnie","year":"2006","unstructured":"Winnie Cheng, Qin Zhao, Bei Yu, and Scott Hiroshige. 2006. TaintTrace: Efficient flow tracing with dynamic binary rewriting. In Proceedings of the 11th IEEE Symposium on Computers and Communications (ISCC \u201906), 749\u2013754. DOI: 10.1109\/ISCC.2006.158"},{"key":"e_1_3_3_17_1","unstructured":"Tommaso Dorigo Max Aehle Julien Donini Michele Doro Nicolas R. Gauger Rafael Izbicki Ann Lee Luca Masserano Federico Nardi Sidharth S. S. et al. 2023. End-to-end optimization of the layout of a gamma ray observatory. arXiv:2310.01857. Retrieved from https:\/\/arxiv.org\/abs\/2310.01857"},{"key":"e_1_3_3_18_1","first-page":"9","volume-title":"Proceedings of the 1st USENIX Workshop on Offensive Technologies (WOOT \u201907)","author":"Drewry Will","year":"2007","unstructured":"Will Drewry and Tavis Ormandy. 2007. Flayer: Exposing application internals. In Proceedings of the 1st USENIX Workshop on Offensive Technologies (WOOT \u201907). USENIX Association, Berkeley, CA, 9 pages. Retrieved from https:\/\/www.usenix.org\/conference\/woot-07\/flayer-exposing-application-internals"},{"key":"e_1_3_3_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1236463.1236468"},{"key":"e_1_3_3_20_1","doi-asserted-by":"crossref","first-page":"61","DOI":"10.1007\/978-3-319-63501-9_5","volume-title":"Proceedings of the 10th International Workshop on Numerical Software Verification (NSV)","author":"F\u00e9votte Fran\u00e7ois","year":"2017","unstructured":"Fran\u00e7ois F\u00e9votte and Bruno Lathuili\u00e8re. 2017. Studying the numerical quality of an industrial computing code: A case study on code_aster. In Proceedings of the 10th International Workshop on Numerical Software Verification (NSV). Alessandro Abate and Sylvie Boldo (Eds.), Springer International Publishing AG, Cham, Switzerland, 61\u201380. DOI: 10.1007\/978-3-319-63501-9_5"},{"key":"e_1_3_3_21_1","first-page":"1","volume-title":"Proceedings of the International Workshop on Software Correctness for HPC Applications (Correctness)","author":"F\u00e9votte Fran\u00e7ois","year":"2019","unstructured":"Fran\u00e7ois F\u00e9votte and Bruno Lathuili\u00e8re. 2019. Debugging and optimization of HPC programs with the Verrou tool. In Proceedings of the International Workshop on Software Correctness for HPC Applications (Correctness). Curran Associates, Inc., New York, NY, 1\u201310. DOI: 10.1109\/Correctness49594.2019.00006"},{"key":"e_1_3_3_22_1","first-page":"431","volume-title":"Proceedings of the IADIS International Conference on Applied Computing","author":"Gendler Dmitrij","year":"2007","unstructured":"Dmitrij Gendler, Uwe Naumann, and Bruce Christianson. 2007. Automatic differentiation of assembler code. In Proceedings of the IADIS International Conference on Applied Computing. IADIS, 431\u2013436."},{"key":"e_1_3_3_23_1","doi-asserted-by":"publisher","DOI":"10.1051\/epjconf\/201921405025"},{"key":"e_1_3_3_24_1","doi-asserted-by":"publisher","DOI":"10.1137\/1.9780898717761"},{"key":"e_1_3_3_25_1","doi-asserted-by":"publisher","DOI":"10.1038\/s41586-020-2649-2"},{"key":"e_1_3_3_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2450153.2450158"},{"key":"e_1_3_3_27_1","doi-asserted-by":"crossref","first-page":"434","DOI":"10.1109\/CSMR-WCRE.2014.6747212","volume-title":"Proceedings of the 2014 Software Evolution Week\u2014IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE)","author":"Heing-Becker Marcel","year":"2014","unstructured":"Marcel Heing-Becker, Timo Kamph, and Sibylle Schupp. 2014. Bit-error injection for software developers. In Proceedings of the 2014 Software Evolution Week\u2014IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE), 434\u2013439. DOI: 10.1109\/CSMR-WCRE.2014.6747212"},{"key":"e_1_3_3_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3472796"},{"key":"e_1_3_3_29_1","unstructured":"Jan H\u00fcckelheim Harshitha Menon William Moses Bruce Christianson Paul Hovland and Laurent Hasco\u00ebt. 2023. Understanding automatic differentiation pitfalls. arXiv:2305.07546. Retrieved from https:\/\/arxiv.org\/abs\/2305.07546"},{"key":"e_1_3_3_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/IEEESTD.2008.4610935"},{"key":"e_1_3_3_31_1","unstructured":"Wenzel Jakob Jason Rhinelander and Dean Moldovan. 2017. pybind11\u2014Seamless Operability between C++11 and Python. Retrieved from https:\/\/github.com\/pybind\/pybind11"},{"key":"e_1_3_3_32_1","unstructured":"Louis Jenkins and Michael L. Scott. 2020. Persistent Memory Analysis Tool (PMAT). Retrieved from https:\/\/louisjenkinscs.github.io\/publications\/PMAT_EA.pdf"},{"key":"e_1_3_3_33_1","unstructured":"Mateusz Jurczyk. 2018. Detecting Kernel Memory Disclosure with x86 Emulation and Taint Tracking. Retrieved from https:\/\/j00ru.vexillium.org\/papers\/2018\/bochspwn_reloaded.pdf"},{"key":"e_1_3_3_34_1","unstructured":"Tomasz Kapela. 2015. An Introduction to pmemcheck (Part I)\u2014Basics. Retrieved from https:\/\/pmem.io\/2015\/07\/17\/pmemcheck-basic.html"},{"key":"e_1_3_3_35_1","first-page":"1100","volume-title":"Proceedings of the 2022 IEEE Symposium on Security and Privacy (SP)","author":"Liu Zhibo","year":"2022","unstructured":"Zhibo Liu, Yuanyuan Yuan, Shuai Wang, and Yuyan Bao. 2022. SoK: Demystifying binary lifters through the lens of downstream applications. In Proceedings of the 2022 IEEE Symposium on Security and Privacy (SP), 1100\u20131119. DOI: 10.1109\/SP46214.2022.9833799"},{"key":"e_1_3_3_36_1","first-page":"2018","volume-title":"Proceedings of the 2018 Multidisciplinary Analysis and Optimization Conference","author":"Luers Mathias","year":"2018","unstructured":"Mathias Luers, Max Sagebaum, Sebastian Mann, Jan Backhaus, David Grossmann, and Nicolas R. Gauger. 2018. Adjoint-based volumetric shape optimization of turbine blades. In Proceedings of the 2018 Multidisciplinary Analysis and Optimization Conference. American Institute of Aeronautics and Astronautics, Reston, VA, 2018\u20133638. DOI: 10.2514\/6.2018-3638"},{"key":"e_1_3_3_37_1","first-page":"5","volume-title":"Proceedings of the ICML 2015 AutoML Workshop","volume":"238","author":"Maclaurin Dougal","year":"2015","unstructured":"Dougal Maclaurin, David Duvenaud, and Ryan P. Adams. 2015. Autograd: Effortless gradients in Numpy. In Proceedings of the ICML 2015 AutoML Workshop, Vol. 238, 5."},{"key":"e_1_3_3_38_1","unstructured":"Michael Matz Jan Hubi\u010dka Andreas Jaeger and Mark Mitchell. 2012. System V Application Binary Interface AMD64 Architecture Processor Supplement Draft Version 0.99.6. Technical Report. Retrieved from https:\/\/refspecs.linuxbase.org\/elf\/x86_64-abi-0.99.pdf"},{"key":"e_1_3_3_39_1","first-page":"12472","volume-title":"Advances in Neural Information Processing Systems","volume":"33","author":"Moses William","year":"2020","unstructured":"William Moses and Valentin Churavy. 2020. Instead of rewriting foreign code for machine learning, automatically synthesize fast gradients. In Advances in Neural Information Processing Systems. H. Larochelle, M. Ranzato, R. Hadsell, M. F. Balcan, and H. Lin (Eds.), Vol. 33. Curran Associates, Inc., New York, NY, 12472\u201312485. Retrieved from https:\/\/proceedings.neurips.cc\/paper\/2020\/file\/9332c513ef44b682e9347822c2e457ac-Paper.pdf"},{"key":"e_1_3_3_40_1","first-page":"1","volume-title":"Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC \u201922)","author":"Moses William S.","year":"2022","unstructured":"William S. Moses, Sri Hari Krishna Narayanan, Ludger Paehler, Valentin Churavy, Michel Schanen, Jan H\u00fcckelheim, Johannes Doerfert, and Paul Hovland. 2022. Scalable automatic differentiation of multiple parallel paradigms through compiler augmentation. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC \u201922), 1\u201318. DOI: 10.1109\/SC41404.2022.00065"},{"key":"e_1_3_3_41_1","doi-asserted-by":"crossref","first-page":"65","DOI":"10.1145\/1254810.1254820","volume-title":"Proceedings of the 3rd International Conference on Virtual Execution Environments (VEE \u201907)","author":"Nethercote Nicholas","year":"2007","unstructured":"Nicholas Nethercote and Julian Seward. 2007. How to shadow every byte of memory used by a program. In Proceedings of the 3rd International Conference on Virtual Execution Environments (VEE \u201907). ACM, New York, NY, 65\u201374. DOI: 10.1145\/1254810.1254820"},{"key":"e_1_3_3_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/1273442.1250746"},{"key":"e_1_3_3_43_1","first-page":"17","volume-title":"Proceedings of the 12th Annual Network and Distributed System Security Symposium (NDSS \u201905)","author":"Newsome James","year":"2015","unstructured":"James Newsome and Dawn Song. 2015. Dynamic taint analysis for automatic detection, analysis, and signature generation of exploits on commodity software. In Proceedings of the 12th Annual Network and Distributed System Security Symposium (NDSS \u201905). The Internet Society, Reston, VA, 17 pages."},{"key":"e_1_3_3_44_1","unstructured":"Adam Paszke Sam Gross Francisco Massa Adam Lerer James Bradbury Gregory Chanan Trevor Killeen Zeming Lin Natalia Gimelshein Luca Antiga et al. 2019. PyTorch: An imperative style high-performance deep learning library. In Advances in Neural Information Processing Systems 32. H. Wallach H. Larochelle A. Beygelzimer F. d\u2019Alch\u00e9-Buc E. Fox and R. Garnett (Eds.) Curran Associates Inc. 8024\u20138035. Retrieved from http:\/\/papers.neurips.cc\/paper\/9015-pytorch-an-imperative-style-high-performance-deep-learning-library.pdf"},{"key":"e_1_3_3_45_1","unstructured":"Christopher Rackauckas. 2021. Engineering Trade-Offs in Automatic Differentiation: From TensorFlow and PyTorch to Jax and Julia. Retrieved from https:\/\/www.stochasticlifestyle.com\/engineering-trade-offs-in-automatic-differentiation-from-tensorflow-and-pytorch-to-jax-and-julia\/"},{"key":"e_1_3_3_46_1","doi-asserted-by":"publisher","DOI":"10.1080\/10556788.2018.1471140"},{"key":"e_1_3_3_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/3356900"},{"key":"e_1_3_3_48_1","unstructured":"Max Sagebaum Johannes Bl\u00fchdorn and Nicolas R. Gauger. 2021. Index handling and assign optimization for algorithmic differentiation reuse index managers. arXiv:2006.12992. Retrieved from https:\/\/arxiv.org\/abs\/2006.12992"},{"key":"e_1_3_3_49_1","doi-asserted-by":"crossref","first-page":"256","DOI":"10.1145\/3192366.3192411","volume-title":"Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI \u201918)","author":"Sanchez-Stern Alex","year":"2018","unstructured":"Alex Sanchez-Stern, Pavel Panchekha, Sorin Lerner, and Zachary Tatlock. 2018. Finding root causes of floating point error. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI \u201918). ACM, New York, NY, 256\u2013269. DOI: 10.1145\/3192366.3192411"},{"key":"e_1_3_3_50_1","doi-asserted-by":"crossref","unstructured":"Robert Schenck Ola R\u00f8nning Troels Henriksen and Cosmin E. Oancea. 2022. AD for an array language with nested parallelism. arXiv:2202.10297. Retrieved from https:\/\/arxiv.org\/abs\/2202.10297","DOI":"10.1109\/SC41404.2022.00063"},{"key":"e_1_3_3_51_1","doi-asserted-by":"crossref","first-page":"312","DOI":"10.1007\/978-3-031-73716-9_22","volume-title":"Proceedings of the High Performance Computing, ISC High Performance 2024 International Workshops. Mich\u00e8le Weiland","author":"Schoder Johannes","year":"2025","unstructured":"Johannes Schoder and H. Martin B\u00fccker. 2025. Scaling an augmented RISC-V processor design with high-level synthesis. In Proceedings of the High Performance Computing, ISC High Performance 2024 International Workshops. Mich\u00e8le Weiland, Sarah Neuwirth, Carola Kruse, and Tobias Weinzierl (Eds.), Springer Nature, Switzerland, Cham, 312\u2013324."},{"key":"e_1_3_3_52_1","first-page":"14","volume-title":"Proceedings of the 2005 USENIX Annual Technical Conference (USENIX ATC \u201905)","author":"Seward Julian","year":"2005","unstructured":"Julian Seward and Nicholas Nethercote. 2005. Using Valgrind to detect undefined value errors with bit-precision. In Proceedings of the 2005 USENIX Annual Technical Conference (USENIX ATC \u201905). USENIX Association, Berkeley, CA, 14\u201330. Retrieved from https:\/\/www.usenix.org\/conference\/2005-usenix-annual-technical-conference\/using-valgrind-detect-undefined-value-errors-bit"},{"key":"e_1_3_3_53_1","unstructured":"Julian Seward Nicholas Nethercote Tom Hughes Jeremy Fitzhardinge Josef Weidendorfer Paul Mackerras Greg Parker Dirk Mueller Robert Walsh Bart Van Assche et al. 2022. Valgrind Documentation. Retrieved from https:\/\/sourceware.org\/pub\/valgrind\/valgrind-3.19.0.tar.bz2"},{"key":"e_1_3_3_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/2904901"},{"key":"e_1_3_3_55_1","doi-asserted-by":"publisher","DOI":"10.1088\/1742-6596\/608\/1\/012055"},{"key":"e_1_3_3_56_1","unstructured":"Tanya Volnina. 2022. Enable AVX-512 Instructions in Valgrind. Retrieved from https:\/\/archive.fosdem.org\/2022\/schedule\/event\/valgrind_avx512\/"},{"key":"e_1_3_3_57_1","doi-asserted-by":"crossref","first-page":"181","DOI":"10.1201\/b11644-8","article-title":"Getting started with ADOL-C","volume":"7","author":"Walther Andrea","year":"2012","unstructured":"Andrea Walther and Andreas Griewank. 2012. Getting started with ADOL-C. In Combinatorial Scientific Computing. Uwe Naumann and Olaf Schenk (Eds.), Chapman-Hall CRC Computational Science, Boca Raton, FL, Chapter 7, 181\u2013202.","journal-title":"Combinatorial Scientific Computing"},{"key":"e_1_3_3_58_1","first-page":"440","volume-title":"Proceedings of the 4th International Conference on Computational Science (ICCS \u201904)","author":"Weidendorfer Josef","year":"2004","unstructured":"Josef Weidendorfer, Markus Kowarschik, and Carsten Trinitis. 2004. A tool suite for simulation based analysis of memory access behavior. In Proceedings of the 4th International Conference on Computational Science (ICCS \u201904), 440\u2013447."}],"container-title":["ACM Transactions on Mathematical Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3716309","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3716309","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T18:43:42Z","timestamp":1750272222000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3716309"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,5,15]]},"references-count":57,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2025,6,30]]}},"alternative-id":["10.1145\/3716309"],"URL":"https:\/\/doi.org\/10.1145\/3716309","relation":{},"ISSN":["0098-3500","1557-7295"],"issn-type":[{"value":"0098-3500","type":"print"},{"value":"1557-7295","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,5,15]]},"assertion":[{"value":"2023-07-18","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-01-05","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-05-15","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}