7#define ADT_RAD Sacado::Rad::
49botch(
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
131 double dx, dy, f, xd, yd;
144 xd = 4.; yd = 4.; f = 0.;
dx = 0.; dy = 0.;
147 fA = operator!=(xAI,yAI);
149 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAI,yAI)", f, fA.val());
150 else if (
differ(xAI.adj(),
dx))
botch(
"d operator!=(xAI,yAI)/dx",
dx, xAI.adj());
151 else if (
differ(yAI.adj(), dy))
botch(
"d operator!=(xAI,yAI)/dy", dy, yAI.adj());
156 fA = operator!=(xcAI,yAI);
158 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAI,yAI)", f, fA.val());
159 else if (
differ(xcAI.adj(),
dx))
botch(
"d operator!=(xcAI,yAI)/dx",
dx, xcAI.adj());
160 else if (
differ(yAI.adj(), dy))
botch(
"d operator!=(xcAI,yAI)/dy", dy, yAI.adj());
166 fA = operator!=(xAI,ycAI);
168 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAI,ycAI)", f, fA.val());
169 else if (
differ(xAI.adj(),
dx))
botch(
"d operator!=(xAI,ycAI)/dx",
dx, xAI.adj());
170 else if (
differ(ycAI.adj(), dy))
botch(
"d operator!=(xAI,ycAI)/dy", dy, ycAI.adj());
176 fA = operator!=(xcAI,ycAI);
178 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAI,ycAI)", f, fA.val());
179 else if (
differ(xcAI.adj(),
dx))
botch(
"d operator!=(xcAI,ycAI)/dx",
dx, xcAI.adj());
180 else if (
differ(ycAI.adj(), dy))
botch(
"d operator!=(xcAI,ycAI)/dy", dy, ycAI.adj());
184 fA = operator!=(xAI,yA);
186 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAI,yA)", f, fA.val());
187 else if (
differ(xAI.adj(),
dx))
botch(
"d operator!=(xAI,yA)/dx",
dx, xAI.adj());
188 else if (
differ(yA.adj(), dy))
botch(
"d operator!=(xAI,yA)/dy", dy, yA.adj());
193 fA = operator!=(xcAI,yA);
195 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAI,yA)", f, fA.val());
196 else if (
differ(xcAI.adj(),
dx))
botch(
"d operator!=(xcAI,yA)/dx",
dx, xcAI.adj());
197 else if (
differ(yA.adj(), dy))
botch(
"d operator!=(xcAI,yA)/dy", dy, yA.adj());
203 fA = operator!=(xAI,ycA);
205 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAI,ycA)", f, fA.val());
206 else if (
differ(xAI.adj(),
dx))
botch(
"d operator!=(xAI,ycA)/dx",
dx, xAI.adj());
207 else if (
differ(ycA.adj(), dy))
botch(
"d operator!=(xAI,ycA)/dy", dy, ycA.adj());
213 fA = operator!=(xcAI,ycA);
215 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAI,ycA)", f, fA.val());
216 else if (
differ(xcAI.adj(),
dx))
botch(
"d operator!=(xcAI,ycA)/dx",
dx, xcAI.adj());
217 else if (
differ(ycA.adj(), dy))
botch(
"d operator!=(xcAI,ycA)/dy", dy, ycA.adj());
221 fA = operator!=(xAI,yC);
223 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAI,yC)", f, fA.val());
224 else if (
differ(xAI.adj(),
dx))
botch(
"d operator!=(xAI,yC)/dx",
dx, xAI.adj());
225 else if (
differ(yC.adj(), dy))
botch(
"d operator!=(xAI,yC)/dy", dy, yC.adj());
230 fA = operator!=(xcAI,yC);
232 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAI,yC)", f, fA.val());
233 else if (
differ(xcAI.adj(),
dx))
botch(
"d operator!=(xcAI,yC)/dx",
dx, xcAI.adj());
234 else if (
differ(yC.adj(), dy))
botch(
"d operator!=(xcAI,yC)/dy", dy, yC.adj());
240 fA = operator!=(xAI,ycC);
242 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAI,ycC)", f, fA.val());
243 else if (
differ(xAI.adj(),
dx))
botch(
"d operator!=(xAI,ycC)/dx",
dx, xAI.adj());
244 else if (
differ(ycC.adj(), dy))
botch(
"d operator!=(xAI,ycC)/dy", dy, ycC.adj());
250 fA = operator!=(xcAI,ycC);
252 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAI,ycC)", f, fA.val());
253 else if (
differ(xcAI.adj(),
dx))
botch(
"d operator!=(xcAI,ycC)/dx",
dx, xcAI.adj());
254 else if (
differ(ycC.adj(), dy))
botch(
"d operator!=(xcAI,ycC)/dy", dy, ycC.adj());
259 fA = operator!=(xAI,yAi);
261 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAI,yAi)", f, fA.val());
262 else if (
differ(xAI.adj(),
dx))
botch(
"d operator!=(xAI,yAi)/dx",
dx, xAI.adj());
263 else if (
differ(yAi.aval, dy))
botch(
"d operator!=(xAI,yAi)/dy", dy, yAi.aval);
269 fA = operator!=(xcAI,yAi);
271 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAI,yAi)", f, fA.val());
272 else if (
differ(xcAI.adj(),
dx))
botch(
"d operator!=(xcAI,yAi)/dx",
dx, xcAI.adj());
273 else if (
differ(yAi.aval, dy))
botch(
"d operator!=(xcAI,yAi)/dy", dy, yAi.aval);
279 fA = operator!=(xAI,ycAi);
281 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAI,ycAi)", f, fA.val());
282 else if (
differ(xAI.adj(),
dx))
botch(
"d operator!=(xAI,ycAi)/dx",
dx, xAI.adj());
283 else if (
differ(ycAi.aval, dy))
botch(
"d operator!=(xAI,ycAi)/dy", dy, ycAi.aval);
289 fA = operator!=(xcAI,ycAi);
291 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAI,ycAi)", f, fA.val());
292 else if (
differ(xcAI.adj(),
dx))
botch(
"d operator!=(xcAI,ycAi)/dx",
dx, xcAI.adj());
293 else if (
differ(ycAi.aval, dy))
botch(
"d operator!=(xcAI,ycAi)/dy", dy, ycAi.aval);
296 fA = operator!=(xAI,yd);
298 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAI,yd)", f, fA.val());
299 else if (
differ(xAI.adj(),
dx))
botch(
"d operator!=(xAI,yd)/dx",
dx, xAI.adj());
303 fA = operator!=(xcAI,yd);
305 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAI,yd)", f, fA.val());
306 else if (
differ(xcAI.adj(),
dx))
botch(
"d operator!=(xcAI,yd)/dx",
dx, xcAI.adj());
310 fA = operator!=(xAI,yL);
312 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAI,yL)", f, fA.val());
313 else if (
differ(xAI.adj(),
dx))
botch(
"d operator!=(xAI,yL)/dx",
dx, xAI.adj());
318 fA = operator!=(xcAI,yL);
320 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAI,yL)", f, fA.val());
321 else if (
differ(xcAI.adj(),
dx))
botch(
"d operator!=(xcAI,yL)/dx",
dx, xcAI.adj());
325 fA = operator!=(xAI,yi);
327 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAI,yi)", f, fA.val());
328 else if (
differ(xAI.adj(),
dx))
botch(
"d operator!=(xAI,yi)/dx",
dx, xAI.adj());
333 fA = operator!=(xcAI,yi);
335 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAI,yi)", f, fA.val());
336 else if (
differ(xcAI.adj(),
dx))
botch(
"d operator!=(xcAI,yi)/dx",
dx, xcAI.adj());
340 fA = operator!=(xA,yAI);
342 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xA,yAI)", f, fA.val());
343 else if (
differ(xA.adj(),
dx))
botch(
"d operator!=(xA,yAI)/dx",
dx, xA.adj());
344 else if (
differ(yAI.adj(), dy))
botch(
"d operator!=(xA,yAI)/dy", dy, yAI.adj());
349 fA = operator!=(xcA,yAI);
351 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcA,yAI)", f, fA.val());
352 else if (
differ(xcA.adj(),
dx))
botch(
"d operator!=(xcA,yAI)/dx",
dx, xcA.adj());
353 else if (
differ(yAI.adj(), dy))
botch(
"d operator!=(xcA,yAI)/dy", dy, yAI.adj());
359 fA = operator!=(xA,ycAI);
361 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xA,ycAI)", f, fA.val());
362 else if (
differ(xA.adj(),
dx))
botch(
"d operator!=(xA,ycAI)/dx",
dx, xA.adj());
363 else if (
differ(ycAI.adj(), dy))
botch(
"d operator!=(xA,ycAI)/dy", dy, ycAI.adj());
369 fA = operator!=(xcA,ycAI);
371 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcA,ycAI)", f, fA.val());
372 else if (
differ(xcA.adj(),
dx))
botch(
"d operator!=(xcA,ycAI)/dx",
dx, xcA.adj());
373 else if (
differ(ycAI.adj(), dy))
botch(
"d operator!=(xcA,ycAI)/dy", dy, ycAI.adj());
377 fA = operator!=(xA,yA);
379 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xA,yA)", f, fA.val());
380 else if (
differ(xA.adj(),
dx))
botch(
"d operator!=(xA,yA)/dx",
dx, xA.adj());
381 else if (
differ(yA.adj(), dy))
botch(
"d operator!=(xA,yA)/dy", dy, yA.adj());
386 fA = operator!=(xcA,yA);
388 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcA,yA)", f, fA.val());
389 else if (
differ(xcA.adj(),
dx))
botch(
"d operator!=(xcA,yA)/dx",
dx, xcA.adj());
390 else if (
differ(yA.adj(), dy))
botch(
"d operator!=(xcA,yA)/dy", dy, yA.adj());
396 fA = operator!=(xA,ycA);
398 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xA,ycA)", f, fA.val());
399 else if (
differ(xA.adj(),
dx))
botch(
"d operator!=(xA,ycA)/dx",
dx, xA.adj());
400 else if (
differ(ycA.adj(), dy))
botch(
"d operator!=(xA,ycA)/dy", dy, ycA.adj());
406 fA = operator!=(xcA,ycA);
408 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcA,ycA)", f, fA.val());
409 else if (
differ(xcA.adj(),
dx))
botch(
"d operator!=(xcA,ycA)/dx",
dx, xcA.adj());
410 else if (
differ(ycA.adj(), dy))
botch(
"d operator!=(xcA,ycA)/dy", dy, ycA.adj());
414 fA = operator!=(xA,yC);
416 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xA,yC)", f, fA.val());
417 else if (
differ(xA.adj(),
dx))
botch(
"d operator!=(xA,yC)/dx",
dx, xA.adj());
418 else if (
differ(yC.adj(), dy))
botch(
"d operator!=(xA,yC)/dy", dy, yC.adj());
423 fA = operator!=(xcA,yC);
425 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcA,yC)", f, fA.val());
426 else if (
differ(xcA.adj(),
dx))
botch(
"d operator!=(xcA,yC)/dx",
dx, xcA.adj());
427 else if (
differ(yC.adj(), dy))
botch(
"d operator!=(xcA,yC)/dy", dy, yC.adj());
433 fA = operator!=(xA,ycC);
435 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xA,ycC)", f, fA.val());
436 else if (
differ(xA.adj(),
dx))
botch(
"d operator!=(xA,ycC)/dx",
dx, xA.adj());
437 else if (
differ(ycC.adj(), dy))
botch(
"d operator!=(xA,ycC)/dy", dy, ycC.adj());
443 fA = operator!=(xcA,ycC);
445 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcA,ycC)", f, fA.val());
446 else if (
differ(xcA.adj(),
dx))
botch(
"d operator!=(xcA,ycC)/dx",
dx, xcA.adj());
447 else if (
differ(ycC.adj(), dy))
botch(
"d operator!=(xcA,ycC)/dy", dy, ycC.adj());
452 fA = operator!=(xA,yAi);
454 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xA,yAi)", f, fA.val());
455 else if (
differ(xA.adj(),
dx))
botch(
"d operator!=(xA,yAi)/dx",
dx, xA.adj());
456 else if (
differ(yAi.aval, dy))
botch(
"d operator!=(xA,yAi)/dy", dy, yAi.aval);
462 fA = operator!=(xcA,yAi);
464 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcA,yAi)", f, fA.val());
465 else if (
differ(xcA.adj(),
dx))
botch(
"d operator!=(xcA,yAi)/dx",
dx, xcA.adj());
466 else if (
differ(yAi.aval, dy))
botch(
"d operator!=(xcA,yAi)/dy", dy, yAi.aval);
472 fA = operator!=(xA,ycAi);
474 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xA,ycAi)", f, fA.val());
475 else if (
differ(xA.adj(),
dx))
botch(
"d operator!=(xA,ycAi)/dx",
dx, xA.adj());
476 else if (
differ(ycAi.aval, dy))
botch(
"d operator!=(xA,ycAi)/dy", dy, ycAi.aval);
482 fA = operator!=(xcA,ycAi);
484 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcA,ycAi)", f, fA.val());
485 else if (
differ(xcA.adj(),
dx))
botch(
"d operator!=(xcA,ycAi)/dx",
dx, xcA.adj());
486 else if (
differ(ycAi.aval, dy))
botch(
"d operator!=(xcA,ycAi)/dy", dy, ycAi.aval);
489 fA = operator!=(xA,yd);
491 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xA,yd)", f, fA.val());
492 else if (
differ(xA.adj(),
dx))
botch(
"d operator!=(xA,yd)/dx",
dx, xA.adj());
496 fA = operator!=(xcA,yd);
498 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcA,yd)", f, fA.val());
499 else if (
differ(xcA.adj(),
dx))
botch(
"d operator!=(xcA,yd)/dx",
dx, xcA.adj());
503 fA = operator!=(xA,yL);
505 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xA,yL)", f, fA.val());
506 else if (
differ(xA.adj(),
dx))
botch(
"d operator!=(xA,yL)/dx",
dx, xA.adj());
511 fA = operator!=(xcA,yL);
513 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcA,yL)", f, fA.val());
514 else if (
differ(xcA.adj(),
dx))
botch(
"d operator!=(xcA,yL)/dx",
dx, xcA.adj());
518 fA = operator!=(xA,yi);
520 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xA,yi)", f, fA.val());
521 else if (
differ(xA.adj(),
dx))
botch(
"d operator!=(xA,yi)/dx",
dx, xA.adj());
526 fA = operator!=(xcA,yi);
528 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcA,yi)", f, fA.val());
529 else if (
differ(xcA.adj(),
dx))
botch(
"d operator!=(xcA,yi)/dx",
dx, xcA.adj());
533 fA = operator!=(xC,yAI);
535 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xC,yAI)", f, fA.val());
536 else if (
differ(xC.adj(),
dx))
botch(
"d operator!=(xC,yAI)/dx",
dx, xC.adj());
537 else if (
differ(yAI.adj(), dy))
botch(
"d operator!=(xC,yAI)/dy", dy, yAI.adj());
542 fA = operator!=(xcC,yAI);
544 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcC,yAI)", f, fA.val());
545 else if (
differ(xcC.adj(),
dx))
botch(
"d operator!=(xcC,yAI)/dx",
dx, xcC.adj());
546 else if (
differ(yAI.adj(), dy))
botch(
"d operator!=(xcC,yAI)/dy", dy, yAI.adj());
552 fA = operator!=(xC,ycAI);
554 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xC,ycAI)", f, fA.val());
555 else if (
differ(xC.adj(),
dx))
botch(
"d operator!=(xC,ycAI)/dx",
dx, xC.adj());
556 else if (
differ(ycAI.adj(), dy))
botch(
"d operator!=(xC,ycAI)/dy", dy, ycAI.adj());
562 fA = operator!=(xcC,ycAI);
564 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcC,ycAI)", f, fA.val());
565 else if (
differ(xcC.adj(),
dx))
botch(
"d operator!=(xcC,ycAI)/dx",
dx, xcC.adj());
566 else if (
differ(ycAI.adj(), dy))
botch(
"d operator!=(xcC,ycAI)/dy", dy, ycAI.adj());
570 fA = operator!=(xC,yA);
572 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xC,yA)", f, fA.val());
573 else if (
differ(xC.adj(),
dx))
botch(
"d operator!=(xC,yA)/dx",
dx, xC.adj());
574 else if (
differ(yA.adj(), dy))
botch(
"d operator!=(xC,yA)/dy", dy, yA.adj());
579 fA = operator!=(xcC,yA);
581 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcC,yA)", f, fA.val());
582 else if (
differ(xcC.adj(),
dx))
botch(
"d operator!=(xcC,yA)/dx",
dx, xcC.adj());
583 else if (
differ(yA.adj(), dy))
botch(
"d operator!=(xcC,yA)/dy", dy, yA.adj());
589 fA = operator!=(xC,ycA);
591 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xC,ycA)", f, fA.val());
592 else if (
differ(xC.adj(),
dx))
botch(
"d operator!=(xC,ycA)/dx",
dx, xC.adj());
593 else if (
differ(ycA.adj(), dy))
botch(
"d operator!=(xC,ycA)/dy", dy, ycA.adj());
599 fA = operator!=(xcC,ycA);
601 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcC,ycA)", f, fA.val());
602 else if (
differ(xcC.adj(),
dx))
botch(
"d operator!=(xcC,ycA)/dx",
dx, xcC.adj());
603 else if (
differ(ycA.adj(), dy))
botch(
"d operator!=(xcC,ycA)/dy", dy, ycA.adj());
607 fA = operator!=(xC,yC);
609 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xC,yC)", f, fA.val());
610 else if (
differ(xC.adj(),
dx))
botch(
"d operator!=(xC,yC)/dx",
dx, xC.adj());
611 else if (
differ(yC.adj(), dy))
botch(
"d operator!=(xC,yC)/dy", dy, yC.adj());
616 fA = operator!=(xcC,yC);
618 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcC,yC)", f, fA.val());
619 else if (
differ(xcC.adj(),
dx))
botch(
"d operator!=(xcC,yC)/dx",
dx, xcC.adj());
620 else if (
differ(yC.adj(), dy))
botch(
"d operator!=(xcC,yC)/dy", dy, yC.adj());
626 fA = operator!=(xC,ycC);
628 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xC,ycC)", f, fA.val());
629 else if (
differ(xC.adj(),
dx))
botch(
"d operator!=(xC,ycC)/dx",
dx, xC.adj());
630 else if (
differ(ycC.adj(), dy))
botch(
"d operator!=(xC,ycC)/dy", dy, ycC.adj());
636 fA = operator!=(xcC,ycC);
638 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcC,ycC)", f, fA.val());
639 else if (
differ(xcC.adj(),
dx))
botch(
"d operator!=(xcC,ycC)/dx",
dx, xcC.adj());
640 else if (
differ(ycC.adj(), dy))
botch(
"d operator!=(xcC,ycC)/dy", dy, ycC.adj());
645 fA = operator!=(xC,yAi);
647 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xC,yAi)", f, fA.val());
648 else if (
differ(xC.adj(),
dx))
botch(
"d operator!=(xC,yAi)/dx",
dx, xC.adj());
649 else if (
differ(yAi.aval, dy))
botch(
"d operator!=(xC,yAi)/dy", dy, yAi.aval);
655 fA = operator!=(xcC,yAi);
657 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcC,yAi)", f, fA.val());
658 else if (
differ(xcC.adj(),
dx))
botch(
"d operator!=(xcC,yAi)/dx",
dx, xcC.adj());
659 else if (
differ(yAi.aval, dy))
botch(
"d operator!=(xcC,yAi)/dy", dy, yAi.aval);
665 fA = operator!=(xC,ycAi);
667 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xC,ycAi)", f, fA.val());
668 else if (
differ(xC.adj(),
dx))
botch(
"d operator!=(xC,ycAi)/dx",
dx, xC.adj());
669 else if (
differ(ycAi.aval, dy))
botch(
"d operator!=(xC,ycAi)/dy", dy, ycAi.aval);
675 fA = operator!=(xcC,ycAi);
677 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcC,ycAi)", f, fA.val());
678 else if (
differ(xcC.adj(),
dx))
botch(
"d operator!=(xcC,ycAi)/dx",
dx, xcC.adj());
679 else if (
differ(ycAi.aval, dy))
botch(
"d operator!=(xcC,ycAi)/dy", dy, ycAi.aval);
682 fA = operator!=(xC,yd);
684 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xC,yd)", f, fA.val());
685 else if (
differ(xC.adj(),
dx))
botch(
"d operator!=(xC,yd)/dx",
dx, xC.adj());
689 fA = operator!=(xcC,yd);
691 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcC,yd)", f, fA.val());
692 else if (
differ(xcC.adj(),
dx))
botch(
"d operator!=(xcC,yd)/dx",
dx, xcC.adj());
696 fA = operator!=(xC,yL);
698 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xC,yL)", f, fA.val());
699 else if (
differ(xC.adj(),
dx))
botch(
"d operator!=(xC,yL)/dx",
dx, xC.adj());
704 fA = operator!=(xcC,yL);
706 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcC,yL)", f, fA.val());
707 else if (
differ(xcC.adj(),
dx))
botch(
"d operator!=(xcC,yL)/dx",
dx, xcC.adj());
711 fA = operator!=(xC,yi);
713 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xC,yi)", f, fA.val());
714 else if (
differ(xC.adj(),
dx))
botch(
"d operator!=(xC,yi)/dx",
dx, xC.adj());
719 fA = operator!=(xcC,yi);
721 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcC,yi)", f, fA.val());
722 else if (
differ(xcC.adj(),
dx))
botch(
"d operator!=(xcC,yi)/dx",
dx, xcC.adj());
727 fA = operator!=(xAi,yAI);
729 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAi,yAI)", f, fA.val());
730 else if (
differ(xAi.aval,
dx))
botch(
"d operator!=(xAi,yAI)/dx",
dx, xAi.aval);
731 else if (
differ(yAI.adj(), dy))
botch(
"d operator!=(xAi,yAI)/dy", dy, yAI.adj());
737 fA = operator!=(xcAi,yAI);
739 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAi,yAI)", f, fA.val());
740 else if (
differ(xcAi.aval,
dx))
botch(
"d operator!=(xcAi,yAI)/dx",
dx, xcAi.aval);
741 else if (
differ(yAI.adj(), dy))
botch(
"d operator!=(xcAi,yAI)/dy", dy, yAI.adj());
747 fA = operator!=(xAi,ycAI);
749 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAi,ycAI)", f, fA.val());
750 else if (
differ(xAi.aval,
dx))
botch(
"d operator!=(xAi,ycAI)/dx",
dx, xAi.aval);
751 else if (
differ(ycAI.adj(), dy))
botch(
"d operator!=(xAi,ycAI)/dy", dy, ycAI.adj());
756 fA = operator!=(xAi,yA);
758 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAi,yA)", f, fA.val());
759 else if (
differ(xAi.aval,
dx))
botch(
"d operator!=(xAi,yA)/dx",
dx, xAi.aval);
760 else if (
differ(yA.adj(), dy))
botch(
"d operator!=(xAi,yA)/dy", dy, yA.adj());
766 fA = operator!=(xcAi,yA);
768 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAi,yA)", f, fA.val());
769 else if (
differ(xcAi.aval,
dx))
botch(
"d operator!=(xcAi,yA)/dx",
dx, xcAi.aval);
770 else if (
differ(yA.adj(), dy))
botch(
"d operator!=(xcAi,yA)/dy", dy, yA.adj());
776 fA = operator!=(xAi,ycA);
778 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAi,ycA)", f, fA.val());
779 else if (
differ(xAi.aval,
dx))
botch(
"d operator!=(xAi,ycA)/dx",
dx, xAi.aval);
780 else if (
differ(ycA.adj(), dy))
botch(
"d operator!=(xAi,ycA)/dy", dy, ycA.adj());
785 fA = operator!=(xAi,yC);
787 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAi,yC)", f, fA.val());
788 else if (
differ(xAi.aval,
dx))
botch(
"d operator!=(xAi,yC)/dx",
dx, xAi.aval);
789 else if (
differ(yC.adj(), dy))
botch(
"d operator!=(xAi,yC)/dy", dy, yC.adj());
795 fA = operator!=(xcAi,yC);
797 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAi,yC)", f, fA.val());
798 else if (
differ(xcAi.aval,
dx))
botch(
"d operator!=(xcAi,yC)/dx",
dx, xcAi.aval);
799 else if (
differ(yC.adj(), dy))
botch(
"d operator!=(xcAi,yC)/dy", dy, yC.adj());
805 fA = operator!=(xAi,ycC);
807 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAi,ycC)", f, fA.val());
808 else if (
differ(xAi.aval,
dx))
botch(
"d operator!=(xAi,ycC)/dx",
dx, xAi.aval);
809 else if (
differ(ycC.adj(), dy))
botch(
"d operator!=(xAi,ycC)/dy", dy, ycC.adj());
814 fA = operator!=(xAi,yAi);
816 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAi,yAi)", f, fA.val());
817 else if (
differ(xAi.aval,
dx))
botch(
"d operator!=(xAi,yAi)/dx",
dx, xAi.aval);
818 else if (
differ(yAi.aval, dy))
botch(
"d operator!=(xAi,yAi)/dy", dy, yAi.aval);
824 fA = operator!=(xcAi,yAi);
826 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAi,yAi)", f, fA.val());
827 else if (
differ(xcAi.aval,
dx))
botch(
"d operator!=(xcAi,yAi)/dx",
dx, xcAi.aval);
828 else if (
differ(yAi.aval, dy))
botch(
"d operator!=(xcAi,yAi)/dy", dy, yAi.aval);
834 fA = operator!=(xAi,ycAi);
836 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAi,ycAi)", f, fA.val());
837 else if (
differ(xAi.aval,
dx))
botch(
"d operator!=(xAi,ycAi)/dx",
dx, xAi.aval);
838 else if (
differ(ycAi.aval, dy))
botch(
"d operator!=(xAi,ycAi)/dy", dy, ycAi.aval);
842 fA = operator!=(xAi,yd);
844 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAi,yd)", f, fA.val());
845 else if (
differ(xAi.aval,
dx))
botch(
"d operator!=(xAi,yd)/dx",
dx, xAi.aval);
850 fA = operator!=(xcAi,yd);
852 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAi,yd)", f, fA.val());
853 else if (
differ(xcAi.aval,
dx))
botch(
"d operator!=(xcAi,yd)/dx",
dx, xcAi.aval);
858 fA = operator!=(xAi,yL);
860 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAi,yL)", f, fA.val());
861 else if (
differ(xAi.aval,
dx))
botch(
"d operator!=(xAi,yL)/dx",
dx, xAi.aval);
867 fA = operator!=(xcAi,yL);
869 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAi,yL)", f, fA.val());
870 else if (
differ(xcAi.aval,
dx))
botch(
"d operator!=(xcAi,yL)/dx",
dx, xcAi.aval);
875 fA = operator!=(xAi,yi);
877 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xAi,yi)", f, fA.val());
878 else if (
differ(xAi.aval,
dx))
botch(
"d operator!=(xAi,yi)/dx",
dx, xAi.aval);
884 fA = operator!=(xcAi,yi);
886 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xcAi,yi)", f, fA.val());
887 else if (
differ(xcAi.aval,
dx))
botch(
"d operator!=(xcAi,yi)/dx",
dx, xcAi.aval);
890 fA = operator!=(xd,yAI);
892 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xd,yAI)", f, fA.val());
893 else if (
differ(yAI.adj(), dy))
botch(
"d operator!=(xd,yAI)/dy", dy, yAI.adj());
897 fA = operator!=(xd,ycAI);
899 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xd,ycAI)", f, fA.val());
900 else if (
differ(ycAI.adj(), dy))
botch(
"d operator!=(xd,ycAI)/dy", dy, ycAI.adj());
903 fA = operator!=(xd,yA);
905 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xd,yA)", f, fA.val());
906 else if (
differ(yA.adj(), dy))
botch(
"d operator!=(xd,yA)/dy", dy, yA.adj());
910 fA = operator!=(xd,ycA);
912 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xd,ycA)", f, fA.val());
913 else if (
differ(ycA.adj(), dy))
botch(
"d operator!=(xd,ycA)/dy", dy, ycA.adj());
916 fA = operator!=(xd,yC);
918 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xd,yC)", f, fA.val());
919 else if (
differ(yC.adj(), dy))
botch(
"d operator!=(xd,yC)/dy", dy, yC.adj());
923 fA = operator!=(xd,ycC);
925 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xd,ycC)", f, fA.val());
926 else if (
differ(ycC.adj(), dy))
botch(
"d operator!=(xd,ycC)/dy", dy, ycC.adj());
930 fA = operator!=(xd,yAi);
932 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xd,yAi)", f, fA.val());
933 else if (
differ(yAi.aval, dy))
botch(
"d operator!=(xd,yAi)/dy", dy, yAi.aval);
938 fA = operator!=(xd,ycAi);
940 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xd,ycAi)", f, fA.val());
941 else if (
differ(ycAi.aval, dy))
botch(
"d operator!=(xd,ycAi)/dy", dy, ycAi.aval);
945 fA = operator!=(xL,yAI);
947 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xL,yAI)", f, fA.val());
948 else if (
differ(yAI.adj(), dy))
botch(
"d operator!=(xL,yAI)/dy", dy, yAI.adj());
953 fA = operator!=(xL,ycAI);
955 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xL,ycAI)", f, fA.val());
956 else if (
differ(ycAI.adj(), dy))
botch(
"d operator!=(xL,ycAI)/dy", dy, ycAI.adj());
960 fA = operator!=(xL,yA);
962 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xL,yA)", f, fA.val());
963 else if (
differ(yA.adj(), dy))
botch(
"d operator!=(xL,yA)/dy", dy, yA.adj());
968 fA = operator!=(xL,ycA);
970 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xL,ycA)", f, fA.val());
971 else if (
differ(ycA.adj(), dy))
botch(
"d operator!=(xL,ycA)/dy", dy, ycA.adj());
975 fA = operator!=(xL,yC);
977 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xL,yC)", f, fA.val());
978 else if (
differ(yC.adj(), dy))
botch(
"d operator!=(xL,yC)/dy", dy, yC.adj());
983 fA = operator!=(xL,ycC);
985 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xL,ycC)", f, fA.val());
986 else if (
differ(ycC.adj(), dy))
botch(
"d operator!=(xL,ycC)/dy", dy, ycC.adj());
991 fA = operator!=(xL,yAi);
993 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xL,yAi)", f, fA.val());
994 else if (
differ(yAi.aval, dy))
botch(
"d operator!=(xL,yAi)/dy", dy, yAi.aval);
1000 fA = operator!=(xL,ycAi);
1002 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xL,ycAi)", f, fA.val());
1003 else if (
differ(ycAi.aval, dy))
botch(
"d operator!=(xL,ycAi)/dy", dy, ycAi.aval);
1007 fA = operator!=(xi,yAI);
1009 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xi,yAI)", f, fA.val());
1010 else if (
differ(yAI.adj(), dy))
botch(
"d operator!=(xi,yAI)/dy", dy, yAI.adj());
1015 fA = operator!=(xi,ycAI);
1017 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xi,ycAI)", f, fA.val());
1018 else if (
differ(ycAI.adj(), dy))
botch(
"d operator!=(xi,ycAI)/dy", dy, ycAI.adj());
1022 fA = operator!=(xi,yA);
1024 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xi,yA)", f, fA.val());
1025 else if (
differ(yA.adj(), dy))
botch(
"d operator!=(xi,yA)/dy", dy, yA.adj());
1030 fA = operator!=(xi,ycA);
1032 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xi,ycA)", f, fA.val());
1033 else if (
differ(ycA.adj(), dy))
botch(
"d operator!=(xi,ycA)/dy", dy, ycA.adj());
1037 fA = operator!=(xi,yC);
1039 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xi,yC)", f, fA.val());
1040 else if (
differ(yC.adj(), dy))
botch(
"d operator!=(xi,yC)/dy", dy, yC.adj());
1045 fA = operator!=(xi,ycC);
1047 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xi,ycC)", f, fA.val());
1048 else if (
differ(ycC.adj(), dy))
botch(
"d operator!=(xi,ycC)/dy", dy, ycC.adj());
1053 fA = operator!=(xi,yAi);
1055 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xi,yAi)", f, fA.val());
1056 else if (
differ(yAi.aval, dy))
botch(
"d operator!=(xi,yAi)/dy", dy, yAi.aval);
1062 fA = operator!=(xi,ycAi);
1064 if (
differ(fA.val(), f))
botch(
"fA = operator!=(xi,ycAi)", f, fA.val());
1065 else if (
differ(ycAi.aval, dy))
botch(
"d operator!=(xi,ycAi)/dy", dy, ycAi.aval);
ADT_RAD IndepADvar< double > AI
const ADT_RAD ConstADvar< double > cC
const ADT_RAD IndepADvar< double > cAI
const ADT_RAD ADvari< double > cAi
const ADT_RAD ADvar< double > cA
ADT_RAD ADvari< double > Ai
ADT_RAD IndepADvar< double > AI
const ADT_RAD ConstADvar< double > cC
const ADT_RAD IndepADvar< double > cAI
ADT_RAD ADvar< double > A
const ADT_RAD ADvari< double > cAi
ADT_RAD ConstADvar< double > C
void botch(const char *what, double wanted, double got)
const ADT_RAD ADvar< double > cA
ADT_RAD ADvari< double > Ai
int differ(double a, double b)