7 #define ADT_RAD Sacado::Rad:: 51 botch(
const char *what,
double wanted,
double got)
55 printf(
"%s: expected %g, got %g, diff = %.2g\n", what, wanted, got, wanted-got);
63 const double tol = 5e-16;
107 #ifdef RAD_AUTO_AD_Const 142 xd = 1.25;
f =
acosh(1.25);
dx = 1.3333333333333333;
146 if (
differ(fA.val(),
f))
botch(
"fA = acosh(xAI)",
f, fA.val());
147 else if (
differ(xAI.adj(),
dx))
botch(
"d acosh(xAI)/dx",
dx, xAI.adj());
153 if (
differ(fA.val(),
f))
botch(
"fA = acosh(xcAI)",
f, fA.val());
154 else if (
differ(xcAI.adj(),
dx))
botch(
"d acosh(xcAI)/dx",
dx, xcAI.adj());
159 if (
differ(fA.val(),
f))
botch(
"fA = acosh(xA)",
f, fA.val());
166 if (
differ(fA.val(),
f))
botch(
"fA = acosh(xcA)",
f, fA.val());
167 else if (
differ(xcA.adj(),
dx))
botch(
"d acosh(xcA)/dx",
dx, xcA.adj());
172 if (
differ(fA.val(),
f))
botch(
"fA = acosh(xC)",
f, fA.val());
179 if (
differ(fA.val(),
f))
botch(
"fA = acosh(xcC)",
f, fA.val());
180 else if (
differ(xcC.adj(),
dx))
botch(
"d acosh(xcC)/dx",
dx, xcC.adj());
186 if (
differ(fA.val(),
f))
botch(
"fA = acosh(xcAi)",
f, fA.val());
187 else if (
differ(xcAi.aval,
dx))
botch(
"d acosh(xcAi)/dx",
dx, xcAi.aval);
194 if (
differ(fA.val(),
f))
botch(
"fA = acosh(xcAi)",
f, fA.val());
195 else if (
differ(xcAi.aval,
dx))
botch(
"d acosh(xcAi)/dx",
dx, xcAi.aval);
ADT_RAD ConstADvar< double > C
const ADT_RAD IndepADvar< double > cAI
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)
const ADT_RAD ADvari< double > cAi
void botch(const char *what, double wanted, double got)
ADT_RAD ADvar< double > A
expr acosh(expr.val())) FAD_UNARYOP_MACRO(asinh
const ADT_RAD ConstADvar< double > cC
ADT_RAD IndepADvar< double > AI
const ADT_RAD ADvar< double > cA
const ADT_RAD ConstADvar< double > cC
const ADT_RAD ADvar< double > cA