Publication: The Stan Math Library: Reverse-Mode Automatic Differentiation in C++
Introduction
Applications
Tools
Research Groups
Workshops
Publications
   List Publications
   Advanced Search
   Info
   Add Publications
My Account
About
Impress

The Stan Math Library: Reverse-Mode Automatic Differentiation in C++

- Article in a journal -
 

Area
Dynamical Systems, General Purpose Software Packages, Inverse Problems, Machine Learning, Optimization, Uncertainty Analysis, Statistics

Author(s)
Bob Carpenter , Matthew D Hoffman , Marcus Brubaker , Daniel Lee , Peter Li

Published in
arXiv

Year
2015

Abstract
The Stan Math Library is a C++, reverse-mode automatic differentiation library designed to be usable, extensive and extensible, efficient, scalable, stable, portable, and redistributable in order to facilitate the construction and utilization of such algorithms. Usability is achieved through a simple direct interface and a cleanly abstracted functional interface. The extensive built-in library includes functions for matrix operations, linear algebra, differential equation solving, and most common probability functions. Extensibility derives from a straightforward object-oriented framework for expressions, allowing users to easily create custom functions. Efficiency is achieved through a combination of custom memory management, subexpression caching, traits-based metaprogramming, and expression templates. Partial derivatives for compound functions are evaluated lazily for improved scalability. Stability is achieved by taking care with arithmetic precision in algebraic expressions and providing stable, compound functions where possible. For portability, the library is standards-compliant C++ (03) and has been tested for all major compilers for Windows, Mac OS X, and Linux.

AD Tools
Stan Math Library

AD Theory and Techniques
Adjoint, Code Optimization, Implementation Strategies, Memory, Reverse Mode, Software Engineering, Toolkits

BibTeX
@ARTICLE{
         Carpenter2015TSM,
       title = "The Stan Math Library: Reverse-Mode Automatic Differentiation in {C++}",
       author = "Carpenter, Bob and Hoffman, Matthew D and Brubaker, Marcus and Lee, Daniel and Li,
         Peter",
       year = "2015",
       journal = "arXiv",
       volume = "1509.07164",
       pages = "1--96",
       url = "https://arxiv.org/abs/1509.07164",
       abstract = "The Stan Math Library is a C++, reverse-mode automatic differentiation library
         designed to be usable, extensive and extensible, efficient, scalable, stable, portable, and
         redistributable in order to facilitate the construction and utilization of such algorithms.
         Usability is achieved through a simple direct interface and a cleanly abstracted functional
         interface. The extensive built-in library includes functions for matrix operations, linear algebra,
         differential equation solving, and most common probability functions. Extensibility derives from a
         straightforward object-oriented framework for expressions, allowing users to easily create custom
         functions. Efficiency is achieved through a combination of custom memory management, subexpression
         caching, traits-based metaprogramming, and expression templates. Partial derivatives for compound
         functions are evaluated lazily for improved scalability. Stability is achieved by taking care with
         arithmetic precision in algebraic expressions and providing stable, compound functions where
         possible. For portability, the library is standards-compliant C++ (03) and has been tested for all
         major compilers for Windows, Mac OS X, and Linux.",
       ad_area = "Dynamical Systems, General Purpose Software Packages, Inverse Problems, Machine
         Learning, Optimization, Uncertainty Analysis, Statistics",
       ad_tools = "Stan Math Library",
       ad_theotech = "Adjoint, Code Optimization, Implementation Strategies, Memory, Reverse Mode,
         Software Engineering, Toolkits"
}


back
  

Contact:
autodiff.org
Username:
Password:
(lost password)