mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-04-22 09:39:34 +08:00
documentation + move "namespace eigen" to the main file, as others do.
This commit is contained in:
parent
cddc83752c
commit
09cb27c587
@ -42,12 +42,10 @@ namespace Eigen {
|
||||
*/
|
||||
//@{
|
||||
|
||||
}
|
||||
|
||||
#include "src/NumericalDiff/NumericalDiff.h"
|
||||
|
||||
namespace Eigen {
|
||||
//@}
|
||||
}
|
||||
|
||||
|
||||
#endif // EIGEN_NUMERICALDIFF_MODULE
|
||||
|
@ -25,16 +25,42 @@
|
||||
#ifndef EIGEN_NUMERICAL_DIFF_H
|
||||
#define EIGEN_NUMERICAL_DIFF_H
|
||||
|
||||
namespace Eigen
|
||||
{
|
||||
|
||||
enum NumericalDiffMode {
|
||||
Forward,
|
||||
Central
|
||||
};
|
||||
|
||||
|
||||
template<typename Functor, NumericalDiffMode mode=Forward> class NumericalDiff : public Functor
|
||||
/**
|
||||
* \brief asdf
|
||||
*
|
||||
* This class allows you to add a method df() to your functor, which will
|
||||
* use numerical differentiation to compute an approximate of the
|
||||
* derivative for the functor. Of course, if you have an analytical form
|
||||
* for the derivative, you should rather implement df() using it.
|
||||
*
|
||||
* More information on
|
||||
* http://en.wikipedia.org/wiki/Numerical_differentiation
|
||||
*
|
||||
* Currently only "Forward" and "Central" scheme are implemented. Those
|
||||
* are basic methods, and there exist some more elaborated way of
|
||||
* computing such approximates. They are implemented using both
|
||||
* proprietary and free software, and usually requires linking to an
|
||||
* external library. It is very easy for you to write a functor
|
||||
* using such software, and the purpose is quite orthogonal to what we
|
||||
* want to achieve with Eigen.
|
||||
*
|
||||
* This is why we will not provide wrappers for every great numerical
|
||||
* differenciation software that exist, but should rather stick with those
|
||||
* basic ones, that still are useful for testing.
|
||||
*
|
||||
* Also, the module "Non linear optimization" needs this in order to
|
||||
* provide full features compatibility with the original (c)minpack
|
||||
* package.
|
||||
*
|
||||
*/
|
||||
template<typename Functor, NumericalDiffMode mode=Forward>
|
||||
class NumericalDiff : public Functor
|
||||
{
|
||||
public:
|
||||
typedef typename Functor::Scalar Scalar;
|
||||
@ -119,6 +145,4 @@ private:
|
||||
Scalar epsfcn;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
#endif // EIGEN_NUMERICAL_DIFF_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user