{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/dual-numbers-for-arbitrary-order-automatic","title":"Dual Numbers for Arbitrary Order Automatic Differentiation","arxiv_id":"2501.04159","date":"2025-01-07","proceeding":null,"authors":["F. Peñuñuri","K. B. Cantún-Avila","R. Peón-Escalante"],"abstract":"Dual numbers are a well-established tool for computing derivatives and constitute the basis of forward-mode automatic differentiation. While the theoretical framework for computing derivatives of arbitrary order is well understood, practical and scalable implementations remain limited. Existing approaches based on nested dual numbers, such as those used in modern high-level languages, suffer from severe memory growth and poor scalability as the derivative order increases. In this work, we introduce DNAOAD, a Fortran-based automatic differentiation framework capable of computing derivatives of arbitrary order using dual numbers with a direct, non-nested representation. By avoiding recursive data structures, DNAOAD significantly reduces memory usage and enables the efficient computation of derivatives of very high order, overcoming key scalability limitations of existing methods and making it particularly well suited for high-performance scientific computing applications.","url_abs":"https://arxiv.org/abs/2501.04159v1","url_pdf":"https://arxiv.org/pdf/2501.04159v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"dual-numbers-for-arbitrary-order-automatic","repo_url":"https://github.com/fpenunuri/dnaoad","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":null,"mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}