-
Notifications
You must be signed in to change notification settings - Fork 4
An Object Oriented Design and Implementation for Automatic Differentiation
fqiang edited this page Dec 6, 2014
·
8 revisions
- build and tested with icpc, gcc on Linux and MacOS
- requires boost library for sparse matrix types
- the demonstrative auto test project using boost
- build the autodiff_library.a static library
cd ./autodiff_library/Release/.
make clean;make - build the test project
cd ./autodiff_test/Release/.
make clean;make - run the test routines in the test project.
./autodiff_library_test
- Expression tree is building into a DAG and allows repeated expression.
- Adapts OO-Design principle and implemented in C++
- Separate Tapes for holding indices and values.
- Compiled to a Static-library that can be linked with other application.
- Computing sparsity pattern in gradient and Hessian matrix.
- Reverse gradient computation.
- Reverse Hessian-vector computation.
- Full reverse Hessian computation (Implemented Edge_pushing algorithm by Rober Gower).
- Move the tree expression structure onto tape.
- Implement OO-Design concept for supporting new function operators.
- so an additional implemented operator can be added as a new class object.
- Graph coloring algorithm for sparse Hessian.