|
|
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
|
|