Sacado Development
Loading...
Searching...
No Matches
Sacado: Automatic Differentation Tools for C++ Applications

Outline

Introduction

Sacado is a set of automatic differentiation tools for C++ applications. It provides templated classes for forward, reverse and Taylor mode automatic differentiation.

Overview of sacado

Sacado contains several basic AD classes:

  • Forward mode AD with the number of derivative components chosen at run-time: Sacado::Fad::DFad (most flexible)
  • Forward mode AD with the number of derivative components chosen at compile-time: Sacado::Fad::SFad (most efficient)
  • Forward mode AD with the maximum number of derivative components chosen at compile-time but actual number used chosen at run-time: Sacado::Fad::SLFad (sits between Sacado::Fad::DFad and Sacado::Fad::SFad in flexibility and efficiency)
  • Reverse mode: Sacado::Rad::ADvar
  • High-order univariate Taylor polynomials: Sacado::Tay::Taylor

Experimental AD classes:

  • Forward mode AD using caching expression templates: Sacado::CacheFad::DFad. Preliminary testing indicates this approach is more efficient for deep expressions with large number of derivative components, but is less efficient and Sacado::Fad::DFad otherwise.
  • Taylor polynomial AD using caching expression templates: Sacado::Tay::CacheTaylor. Preliminary testing indicates this approach is less efficient than Sacado::Tay::Taylor.

Browse all of sacado as a single doxygen collection

You can browse all of Sacado as a single doxygen collection. Warning, this is not the recommended way to learn about Sacado software. However, this is a good way to browse the directory structure of sacado, to locate files, etc.