xref: /aosp_15_r20/external/eigen/unsupported/Eigen/NumericalDiff (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1*bf2c3715SXin Li// This file is part of Eigen, a lightweight C++ template library
2*bf2c3715SXin Li// for linear algebra.
3*bf2c3715SXin Li//
4*bf2c3715SXin Li// Copyright (C) 2009 Thomas Capricelli <[email protected]>
5*bf2c3715SXin Li//
6*bf2c3715SXin Li// This Source Code Form is subject to the terms of the Mozilla
7*bf2c3715SXin Li// Public License v. 2.0. If a copy of the MPL was not distributed
8*bf2c3715SXin Li// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9*bf2c3715SXin Li
10*bf2c3715SXin Li#ifndef EIGEN_NUMERICALDIFF_MODULE
11*bf2c3715SXin Li#define EIGEN_NUMERICALDIFF_MODULE
12*bf2c3715SXin Li
13*bf2c3715SXin Li#include "../../Eigen/Core"
14*bf2c3715SXin Li
15*bf2c3715SXin Linamespace Eigen {
16*bf2c3715SXin Li
17*bf2c3715SXin Li/**
18*bf2c3715SXin Li  * \defgroup NumericalDiff_Module Numerical differentiation module
19*bf2c3715SXin Li  *
20*bf2c3715SXin Li  * \code
21*bf2c3715SXin Li  * #include <unsupported/Eigen/NumericalDiff>
22*bf2c3715SXin Li  * \endcode
23*bf2c3715SXin Li  *
24*bf2c3715SXin Li  * See http://en.wikipedia.org/wiki/Numerical_differentiation
25*bf2c3715SXin Li  *
26*bf2c3715SXin Li  * Warning : this should NOT be confused with automatic differentiation, which
27*bf2c3715SXin Li  * is a different method and has its own module in Eigen : \ref
28*bf2c3715SXin Li  * AutoDiff_Module.
29*bf2c3715SXin Li  *
30*bf2c3715SXin Li  * Currently only "Forward" and "Central" schemes are implemented. Those
31*bf2c3715SXin Li  * are basic methods, and there exist some more elaborated way of
32*bf2c3715SXin Li  * computing such approximates. They are implemented using both
33*bf2c3715SXin Li  * proprietary and free software, and usually requires linking to an
34*bf2c3715SXin Li  * external library. It is very easy for you to write a functor
35*bf2c3715SXin Li  * using such software, and the purpose is quite orthogonal to what we
36*bf2c3715SXin Li  * want to achieve with Eigen.
37*bf2c3715SXin Li  *
38*bf2c3715SXin Li  * This is why we will not provide wrappers for every great numerical
39*bf2c3715SXin Li  * differentiation software that exist, but should rather stick with those
40*bf2c3715SXin Li  * basic ones, that still are useful for testing.
41*bf2c3715SXin Li  *
42*bf2c3715SXin Li  * Also, the \ref NonLinearOptimization_Module needs this in order to
43*bf2c3715SXin Li  * provide full features compatibility with the original (c)minpack
44*bf2c3715SXin Li  * package.
45*bf2c3715SXin Li  *
46*bf2c3715SXin Li  */
47*bf2c3715SXin Li}
48*bf2c3715SXin Li
49*bf2c3715SXin Li//@{
50*bf2c3715SXin Li
51*bf2c3715SXin Li#include "src/NumericalDiff/NumericalDiff.h"
52*bf2c3715SXin Li
53*bf2c3715SXin Li//@}
54*bf2c3715SXin Li
55*bf2c3715SXin Li
56*bf2c3715SXin Li#endif // EIGEN_NUMERICALDIFF_MODULE
57