yujizhu / MetaAutoDiff

MetaAutoDiff is a C++ template library for automatic differentiation in reverse mode.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MetaAutoDiff

English | 简体中文

MetaAutoDiff is a C++ template library for automatic differentiation in reverse mode based on operator-overloading and expression templates. MetaAutoDiff supports any order derivative for scalar variable. For some matrix operators, MetaAutoDiff only provide first and second order derivative now. This project doesn't provide forward mode now.

Dependencies

MetaAutoDiff also need Eigen's unsupported modules for Kronecker Product.

Set Up

There is no binary library to link to, so if you want to use MetaAutoDiff, you can include the header file in your project.

Date type Support

MetaAutoDiff only support double and ad::MatrixXd(internal implement type is Eigen::MatrixXd). More type support will be added in the future.

GPU Support

MetaAutoDiff doesn't support GPU now.

Implemented Operators

MetaAutoDiff only support addition, subtraction, multiplication, exponential, trigonometric, log, matrix diagonal, matrix transpose, matrix vectorization, matrix kronecker product, matrix unary expression, array division, array multiplication operator now. More operator will be supported in the future.

About

MetaAutoDiff is a C++ template library for automatic differentiation in reverse mode.

License:Apache License 2.0


Languages

Language:C++ 99.4%Language:Makefile 0.6%