NumericalDiff.cpp File Reference
#include <stdio.h>
#include "main.h"
#include <unsupported/Eigen/NumericalDiff>

Classes

struct  Functor< Scalar_, NX, NY >
 
struct  my_functor
 

Functions

void test_forward ()
 
void test_central ()
 
 EIGEN_DECLARE_TEST (NumericalDiff)
 

Function Documentation

◆ EIGEN_DECLARE_TEST()

EIGEN_DECLARE_TEST ( NumericalDiff  )
99  {
102 }
void test_forward()
Definition: NumericalDiff.cpp:61
void test_central()
Definition: NumericalDiff.cpp:81
#define CALL_SUBTEST(FUNC)
Definition: main.h:382

References CALL_SUBTEST, test_central(), and test_forward().

◆ test_central()

void test_central ( )
81  {
82  VectorXd x(3);
83  MatrixXd jac(15, 3);
84  MatrixXd actual_jac(15, 3);
85  my_functor functor;
86 
87  x << 0.082, 1.13, 2.35;
88 
89  // real one
90  functor.actual_df(x, actual_jac);
91 
92  // using NumericalDiff
93  NumericalDiff<my_functor, Central> numDiff(functor);
94  numDiff.df(x, jac);
95 
96  VERIFY_IS_APPROX(jac, actual_jac);
97 }
Definition: NumericalDiff.h:35
#define VERIFY_IS_APPROX(a, b)
Definition: integer_types.cpp:13
list x
Definition: plotDoE.py:28
Definition: NumericalDiff.cpp:29
int actual_df(const VectorXd &x, MatrixXd &fjac) const
Definition: NumericalDiff.cpp:45

References my_functor::actual_df(), Eigen::NumericalDiff< Functor_, mode >::df(), VERIFY_IS_APPROX, and plotDoE::x.

Referenced by EIGEN_DECLARE_TEST().

◆ test_forward()

void test_forward ( )
61  {
62  VectorXd x(3);
63  MatrixXd jac(15, 3);
64  MatrixXd actual_jac(15, 3);
65  my_functor functor;
66 
67  x << 0.082, 1.13, 2.35;
68 
69  // real one
70  functor.actual_df(x, actual_jac);
71  // std::cout << actual_jac << std::endl << std::endl;
72 
73  // using NumericalDiff
74  NumericalDiff<my_functor> numDiff(functor);
75  numDiff.df(x, jac);
76  // std::cout << jac << std::endl;
77 
78  VERIFY_IS_APPROX(jac, actual_jac);
79 }

References my_functor::actual_df(), Eigen::NumericalDiff< Functor_, mode >::df(), VERIFY_IS_APPROX, and plotDoE::x.

Referenced by EIGEN_DECLARE_TEST().