46 {
49
50
51
52
53
54 double** X;
55 double** Y;
58 X[0][0] = 0.5;
59 X[0][1] = 1.0;
62 double** Z;
64
66
67 trace_on(tag);
68 x <<= X[0][0];
70 y >>= Y[0][0];
71 trace_off();
72
73 double u[1];
74 u[0]=1;
76 { forward(tag,1,1,
i,
i+1,X,Y);
78 cout << Y[0][
i] <<
" - " << y.value() <<
" = " << Y[0][
i]-y.value()
79 << " (should be 0)\n";
80 else {
81 Z[0][
i] = Z[0][
i-1]/
i;
82 cout << Y[0][
i] <<
" - " << Z[0][
i] <<
" = " << Y[0][
i]-Z[0][
i]
83 << " (should be 0)\n";
84 }
85 reverse(tag,1,1,
i,u,Z);
86 }
87
88 return 0;
89}
adouble power(adouble x, int n)
FTensor::Index< 'n', SPACE_DIM > n
FTensor::Index< 'i', SPACE_DIM > i