![]() |
Prev | Next | PrintFor.cpp |
# include <cppad/cppad.hpp>
int main(void)
{
using namespace CppAD;
using std::cout;
using std::endl;
// independent variable vector
size_t n = 2;
CPPAD_TEST_VECTOR< AD<double> > X(n);
X[0] = 0.;
X[1] = 1.;
Independent(X);
// print a VecAD<double>::reference object
VecAD<double> V(1);
AD<double> Zero(0);
V[Zero] = X[0];
PrintFor("x[0] = ", V[Zero]);
// dependent variable vector
size_t m = 1;
CPPAD_TEST_VECTOR< AD<double> > Y(m);
Y[0] = V[Zero] + X[1];
// First print a newline to separate this from previous output,
// then print an AD<double> object.
PrintFor( "\nx[0] + x[1] = ", Y[0]);
// define f: x -> y and stop tape recording
ADFun<double> f(X, Y);
// zero order forward with x[0] = 1 and x[1] = 1
CPPAD_TEST_VECTOR<double> x(n);
x[0] = 1.;
x[1] = 1.;
cout << "x[0] = 1" << endl;
cout << "x[0] + x[1] = 2" << endl;
cout << "Test passes if two lines above repeat below:" << endl;
f.Forward(0, x);
// print a new line after output
std::cout << std::endl;
return 0;
}
x[0] = 1
x[0] + x[1] = 2
Test passes if two lines above repeat below:
x[0] = 1
x[0] + x[1] = 2