7 #define ADT_RAD Sacado::Rad:: 49 botch(
const char *what,
double wanted,
double got)
53 printf(
"%s: expected %g, got %g, diff = %.2g\n", what, wanted, got, wanted-got);
61 const double tol = 5e-16;
105 #ifdef RAD_AUTO_AD_Const 140 xd = 3.; f =
cos(3.);
dx = -
sin(3.);
144 if (
differ(fA.val(), f))
botch(
"fA = cos(xAI)", f, fA.val());
151 if (
differ(fA.val(), f))
botch(
"fA = cos(xcAI)", f, fA.val());
152 else if (
differ(xcAI.adj(),
dx))
botch(
"d cos(xcAI)/dx",
dx, xcAI.adj());
157 if (
differ(fA.val(), f))
botch(
"fA = cos(xA)", f, fA.val());
164 if (
differ(fA.val(), f))
botch(
"fA = cos(xcA)", f, fA.val());
170 if (
differ(fA.val(), f))
botch(
"fA = cos(xC)", f, fA.val());
177 if (
differ(fA.val(), f))
botch(
"fA = cos(xcC)", f, fA.val());
184 if (
differ(fA.val(), f))
botch(
"fA = cos(xcAi)", f, fA.val());
185 else if (
differ(xcAi.aval,
dx))
botch(
"d cos(xcAi)/dx",
dx, xcAi.aval);
192 if (
differ(fA.val(), f))
botch(
"fA = cos(xcAi)", f, fA.val());
193 else if (
differ(xcAi.aval,
dx))
botch(
"d cos(xcAi)/dx",
dx, xcAi.aval);
const ADT_RAD ADvari< double > cAi
ADT_RAD IndepADvar< double > AI
const ADT_RAD IndepADvar< double > cAI
ADT_RAD ADvari< double > Ai
int differ(double a, double b)
ADT_RAD ADvar< double > A
SimpleFad< ValueT > sin(const SimpleFad< ValueT > &a)
const ADT_RAD ADvari< double > cAi
void botch(const char *what, double wanted, double got)
const ADT_RAD ConstADvar< double > cC
SimpleFad< ValueT > cos(const SimpleFad< ValueT > &a)
const ADT_RAD ADvar< double > cA
const ADT_RAD ConstADvar< double > cC
ADT_RAD IndepADvar< double > AI
const ADT_RAD ADvar< double > cA
ADT_RAD ConstADvar< double > C
const ADT_RAD IndepADvar< double > cAI