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 131 double dx, dy, f, xd, yd;
144 xd = 2.; yd = 3.; f = 1.;
dx = 0.; dy = 0.;
149 if (
differ(fA.val(), f))
botch(
"fA = xAI < yAI", f, fA.val());
150 else if (
differ(xAI.adj(),
dx))
botch(
"d xAI < yAI/dx",
dx, xAI.adj());
151 else if (
differ(yAI.adj(), dy))
botch(
"d xAI < yAI/dy", dy, yAI.adj());
158 if (
differ(fA.val(), f))
botch(
"fA = xcAI < yAI", f, fA.val());
159 else if (
differ(xcAI.adj(),
dx))
botch(
"d xcAI < yAI/dx",
dx, xcAI.adj());
160 else if (
differ(yAI.adj(), dy))
botch(
"d xcAI < yAI/dy", dy, yAI.adj());
168 if (
differ(fA.val(), f))
botch(
"fA = xAI < ycAI", f, fA.val());
169 else if (
differ(xAI.adj(),
dx))
botch(
"d xAI < ycAI/dx",
dx, xAI.adj());
170 else if (
differ(ycAI.adj(), dy))
botch(
"d xAI < ycAI/dy", dy, ycAI.adj());
178 if (
differ(fA.val(), f))
botch(
"fA = xcAI < ycAI", f, fA.val());
179 else if (
differ(xcAI.adj(),
dx))
botch(
"d xcAI < ycAI/dx",
dx, xcAI.adj());
180 else if (
differ(ycAI.adj(), dy))
botch(
"d xcAI < ycAI/dy", dy, ycAI.adj());
186 if (
differ(fA.val(), f))
botch(
"fA = xAI < yA", f, fA.val());
188 else if (
differ(yA.adj(), dy))
botch(
"d xAI < yA/dy", dy, yA.adj());
195 if (
differ(fA.val(), f))
botch(
"fA = xcAI < yA", f, fA.val());
196 else if (
differ(xcAI.adj(),
dx))
botch(
"d xcAI < yA/dx",
dx, xcAI.adj());
197 else if (
differ(yA.adj(), dy))
botch(
"d xcAI < yA/dy", dy, yA.adj());
205 if (
differ(fA.val(), f))
botch(
"fA = xAI < ycA", f, fA.val());
206 else if (
differ(xAI.adj(),
dx))
botch(
"d xAI < ycA/dx",
dx, xAI.adj());
207 else if (
differ(ycA.adj(), dy))
botch(
"d xAI < ycA/dy", dy, ycA.adj());
215 if (
differ(fA.val(), f))
botch(
"fA = xcAI < ycA", f, fA.val());
216 else if (
differ(xcAI.adj(),
dx))
botch(
"d xcAI < ycA/dx",
dx, xcAI.adj());
217 else if (
differ(ycA.adj(), dy))
botch(
"d xcAI < ycA/dy", dy, ycA.adj());
223 if (
differ(fA.val(), f))
botch(
"fA = xAI < yC", f, fA.val());
225 else if (
differ(yC.adj(), dy))
botch(
"d xAI < yC/dy", dy, yC.adj());
232 if (
differ(fA.val(), f))
botch(
"fA = xcAI < yC", f, fA.val());
233 else if (
differ(xcAI.adj(),
dx))
botch(
"d xcAI < yC/dx",
dx, xcAI.adj());
234 else if (
differ(yC.adj(), dy))
botch(
"d xcAI < yC/dy", dy, yC.adj());
242 if (
differ(fA.val(), f))
botch(
"fA = xAI < ycC", f, fA.val());
243 else if (
differ(xAI.adj(),
dx))
botch(
"d xAI < ycC/dx",
dx, xAI.adj());
244 else if (
differ(ycC.adj(), dy))
botch(
"d xAI < ycC/dy", dy, ycC.adj());
252 if (
differ(fA.val(), f))
botch(
"fA = xcAI < ycC", f, fA.val());
253 else if (
differ(xcAI.adj(),
dx))
botch(
"d xcAI < ycC/dx",
dx, xcAI.adj());
254 else if (
differ(ycC.adj(), dy))
botch(
"d xcAI < ycC/dy", dy, ycC.adj());
261 if (
differ(fA.val(), f))
botch(
"fA = xAI < yAi", f, fA.val());
262 else if (
differ(xAI.adj(),
dx))
botch(
"d xAI < yAi/dx",
dx, xAI.adj());
263 else if (
differ(yAi.aval, dy))
botch(
"d xAI < yAi/dy", dy, yAi.aval);
271 if (
differ(fA.val(), f))
botch(
"fA = xcAI < yAi", f, fA.val());
272 else if (
differ(xcAI.adj(),
dx))
botch(
"d xcAI < yAi/dx",
dx, xcAI.adj());
273 else if (
differ(yAi.aval, dy))
botch(
"d xcAI < yAi/dy", dy, yAi.aval);
281 if (
differ(fA.val(), f))
botch(
"fA = xAI < ycAi", f, fA.val());
282 else if (
differ(xAI.adj(),
dx))
botch(
"d xAI < ycAi/dx",
dx, xAI.adj());
283 else if (
differ(ycAi.aval, dy))
botch(
"d xAI < ycAi/dy", dy, ycAi.aval);
291 if (
differ(fA.val(), f))
botch(
"fA = xcAI < ycAi", f, fA.val());
292 else if (
differ(xcAI.adj(),
dx))
botch(
"d xcAI < ycAi/dx",
dx, xcAI.adj());
293 else if (
differ(ycAi.aval, dy))
botch(
"d xcAI < ycAi/dy", dy, ycAi.aval);
298 if (
differ(fA.val(), f))
botch(
"fA = xAI < yd", f, fA.val());
305 if (
differ(fA.val(), f))
botch(
"fA = xcAI < yd", f, fA.val());
306 else if (
differ(xcAI.adj(),
dx))
botch(
"d xcAI < yd/dx",
dx, xcAI.adj());
312 if (
differ(fA.val(), f))
botch(
"fA = xAI < yL", f, fA.val());
320 if (
differ(fA.val(), f))
botch(
"fA = xcAI < yL", f, fA.val());
321 else if (
differ(xcAI.adj(),
dx))
botch(
"d xcAI < yL/dx",
dx, xcAI.adj());
327 if (
differ(fA.val(), f))
botch(
"fA = xAI < yi", f, fA.val());
335 if (
differ(fA.val(), f))
botch(
"fA = xcAI < yi", f, fA.val());
336 else if (
differ(xcAI.adj(),
dx))
botch(
"d xcAI < yi/dx",
dx, xcAI.adj());
342 if (
differ(fA.val(), f))
botch(
"fA = xA < yAI", f, fA.val());
344 else if (
differ(yAI.adj(), dy))
botch(
"d xA < yAI/dy", dy, yAI.adj());
351 if (
differ(fA.val(), f))
botch(
"fA = xcA < yAI", f, fA.val());
352 else if (
differ(xcA.adj(),
dx))
botch(
"d xcA < yAI/dx",
dx, xcA.adj());
353 else if (
differ(yAI.adj(), dy))
botch(
"d xcA < yAI/dy", dy, yAI.adj());
361 if (
differ(fA.val(), f))
botch(
"fA = xA < ycAI", f, fA.val());
363 else if (
differ(ycAI.adj(), dy))
botch(
"d xA < ycAI/dy", dy, ycAI.adj());
371 if (
differ(fA.val(), f))
botch(
"fA = xcA < ycAI", f, fA.val());
372 else if (
differ(xcA.adj(),
dx))
botch(
"d xcA < ycAI/dx",
dx, xcA.adj());
373 else if (
differ(ycAI.adj(), dy))
botch(
"d xcA < ycAI/dy", dy, ycAI.adj());
379 if (
differ(fA.val(), f))
botch(
"fA = xA < yA", f, fA.val());
381 else if (
differ(yA.adj(), dy))
botch(
"d xA < yA/dy", dy, yA.adj());
388 if (
differ(fA.val(), f))
botch(
"fA = xcA < yA", f, fA.val());
390 else if (
differ(yA.adj(), dy))
botch(
"d xcA < yA/dy", dy, yA.adj());
398 if (
differ(fA.val(), f))
botch(
"fA = xA < ycA", f, fA.val());
400 else if (
differ(ycA.adj(), dy))
botch(
"d xA < ycA/dy", dy, ycA.adj());
408 if (
differ(fA.val(), f))
botch(
"fA = xcA < ycA", f, fA.val());
409 else if (
differ(xcA.adj(),
dx))
botch(
"d xcA < ycA/dx",
dx, xcA.adj());
410 else if (
differ(ycA.adj(), dy))
botch(
"d xcA < ycA/dy", dy, ycA.adj());
416 if (
differ(fA.val(), f))
botch(
"fA = xA < yC", f, fA.val());
418 else if (
differ(yC.adj(), dy))
botch(
"d xA < yC/dy", dy, yC.adj());
425 if (
differ(fA.val(), f))
botch(
"fA = xcA < yC", f, fA.val());
427 else if (
differ(yC.adj(), dy))
botch(
"d xcA < yC/dy", dy, yC.adj());
435 if (
differ(fA.val(), f))
botch(
"fA = xA < ycC", f, fA.val());
437 else if (
differ(ycC.adj(), dy))
botch(
"d xA < ycC/dy", dy, ycC.adj());
445 if (
differ(fA.val(), f))
botch(
"fA = xcA < ycC", f, fA.val());
446 else if (
differ(xcA.adj(),
dx))
botch(
"d xcA < ycC/dx",
dx, xcA.adj());
447 else if (
differ(ycC.adj(), dy))
botch(
"d xcA < ycC/dy", dy, ycC.adj());
454 if (
differ(fA.val(), f))
botch(
"fA = xA < yAi", f, fA.val());
456 else if (
differ(yAi.aval, dy))
botch(
"d xA < yAi/dy", dy, yAi.aval);
464 if (
differ(fA.val(), f))
botch(
"fA = xcA < yAi", f, fA.val());
465 else if (
differ(xcA.adj(),
dx))
botch(
"d xcA < yAi/dx",
dx, xcA.adj());
466 else if (
differ(yAi.aval, dy))
botch(
"d xcA < yAi/dy", dy, yAi.aval);
474 if (
differ(fA.val(), f))
botch(
"fA = xA < ycAi", f, fA.val());
476 else if (
differ(ycAi.aval, dy))
botch(
"d xA < ycAi/dy", dy, ycAi.aval);
484 if (
differ(fA.val(), f))
botch(
"fA = xcA < ycAi", f, fA.val());
485 else if (
differ(xcA.adj(),
dx))
botch(
"d xcA < ycAi/dx",
dx, xcA.adj());
486 else if (
differ(ycAi.aval, dy))
botch(
"d xcA < ycAi/dy", dy, ycAi.aval);
491 if (
differ(fA.val(), f))
botch(
"fA = xA < yd", f, fA.val());
498 if (
differ(fA.val(), f))
botch(
"fA = xcA < yd", f, fA.val());
505 if (
differ(fA.val(), f))
botch(
"fA = xA < yL", f, fA.val());
513 if (
differ(fA.val(), f))
botch(
"fA = xcA < yL", f, fA.val());
520 if (
differ(fA.val(), f))
botch(
"fA = xA < yi", f, fA.val());
528 if (
differ(fA.val(), f))
botch(
"fA = xcA < yi", f, fA.val());
535 if (
differ(fA.val(), f))
botch(
"fA = xC < yAI", f, fA.val());
537 else if (
differ(yAI.adj(), dy))
botch(
"d xC < yAI/dy", dy, yAI.adj());
544 if (
differ(fA.val(), f))
botch(
"fA = xcC < yAI", f, fA.val());
545 else if (
differ(xcC.adj(),
dx))
botch(
"d xcC < yAI/dx",
dx, xcC.adj());
546 else if (
differ(yAI.adj(), dy))
botch(
"d xcC < yAI/dy", dy, yAI.adj());
554 if (
differ(fA.val(), f))
botch(
"fA = xC < ycAI", f, fA.val());
556 else if (
differ(ycAI.adj(), dy))
botch(
"d xC < ycAI/dy", dy, ycAI.adj());
564 if (
differ(fA.val(), f))
botch(
"fA = xcC < ycAI", f, fA.val());
565 else if (
differ(xcC.adj(),
dx))
botch(
"d xcC < ycAI/dx",
dx, xcC.adj());
566 else if (
differ(ycAI.adj(), dy))
botch(
"d xcC < ycAI/dy", dy, ycAI.adj());
572 if (
differ(fA.val(), f))
botch(
"fA = xC < yA", f, fA.val());
574 else if (
differ(yA.adj(), dy))
botch(
"d xC < yA/dy", dy, yA.adj());
581 if (
differ(fA.val(), f))
botch(
"fA = xcC < yA", f, fA.val());
583 else if (
differ(yA.adj(), dy))
botch(
"d xcC < yA/dy", dy, yA.adj());
591 if (
differ(fA.val(), f))
botch(
"fA = xC < ycA", f, fA.val());
593 else if (
differ(ycA.adj(), dy))
botch(
"d xC < ycA/dy", dy, ycA.adj());
601 if (
differ(fA.val(), f))
botch(
"fA = xcC < ycA", f, fA.val());
602 else if (
differ(xcC.adj(),
dx))
botch(
"d xcC < ycA/dx",
dx, xcC.adj());
603 else if (
differ(ycA.adj(), dy))
botch(
"d xcC < ycA/dy", dy, ycA.adj());
609 if (
differ(fA.val(), f))
botch(
"fA = xC < yC", f, fA.val());
611 else if (
differ(yC.adj(), dy))
botch(
"d xC < yC/dy", dy, yC.adj());
618 if (
differ(fA.val(), f))
botch(
"fA = xcC < yC", f, fA.val());
620 else if (
differ(yC.adj(), dy))
botch(
"d xcC < yC/dy", dy, yC.adj());
628 if (
differ(fA.val(), f))
botch(
"fA = xC < ycC", f, fA.val());
630 else if (
differ(ycC.adj(), dy))
botch(
"d xC < ycC/dy", dy, ycC.adj());
638 if (
differ(fA.val(), f))
botch(
"fA = xcC < ycC", f, fA.val());
639 else if (
differ(xcC.adj(),
dx))
botch(
"d xcC < ycC/dx",
dx, xcC.adj());
640 else if (
differ(ycC.adj(), dy))
botch(
"d xcC < ycC/dy", dy, ycC.adj());
647 if (
differ(fA.val(), f))
botch(
"fA = xC < yAi", f, fA.val());
649 else if (
differ(yAi.aval, dy))
botch(
"d xC < yAi/dy", dy, yAi.aval);
657 if (
differ(fA.val(), f))
botch(
"fA = xcC < yAi", f, fA.val());
658 else if (
differ(xcC.adj(),
dx))
botch(
"d xcC < yAi/dx",
dx, xcC.adj());
659 else if (
differ(yAi.aval, dy))
botch(
"d xcC < yAi/dy", dy, yAi.aval);
667 if (
differ(fA.val(), f))
botch(
"fA = xC < ycAi", f, fA.val());
669 else if (
differ(ycAi.aval, dy))
botch(
"d xC < ycAi/dy", dy, ycAi.aval);
677 if (
differ(fA.val(), f))
botch(
"fA = xcC < ycAi", f, fA.val());
678 else if (
differ(xcC.adj(),
dx))
botch(
"d xcC < ycAi/dx",
dx, xcC.adj());
679 else if (
differ(ycAi.aval, dy))
botch(
"d xcC < ycAi/dy", dy, ycAi.aval);
684 if (
differ(fA.val(), f))
botch(
"fA = xC < yd", f, fA.val());
691 if (
differ(fA.val(), f))
botch(
"fA = xcC < yd", f, fA.val());
698 if (
differ(fA.val(), f))
botch(
"fA = xC < yL", f, fA.val());
706 if (
differ(fA.val(), f))
botch(
"fA = xcC < yL", f, fA.val());
713 if (
differ(fA.val(), f))
botch(
"fA = xC < yi", f, fA.val());
721 if (
differ(fA.val(), f))
botch(
"fA = xcC < yi", f, fA.val());
729 if (
differ(fA.val(), f))
botch(
"fA = xAi < yAI", f, fA.val());
731 else if (
differ(yAI.adj(), dy))
botch(
"d xAi < yAI/dy", dy, yAI.adj());
739 if (
differ(fA.val(), f))
botch(
"fA = xcAi < yAI", f, fA.val());
740 else if (
differ(xcAi.aval,
dx))
botch(
"d xcAi < yAI/dx",
dx, xcAi.aval);
741 else if (
differ(yAI.adj(), dy))
botch(
"d xcAi < yAI/dy", dy, yAI.adj());
749 if (
differ(fA.val(), f))
botch(
"fA = xAi < ycAI", f, fA.val());
751 else if (
differ(ycAI.adj(), dy))
botch(
"d xAi < ycAI/dy", dy, ycAI.adj());
758 if (
differ(fA.val(), f))
botch(
"fA = xAi < yA", f, fA.val());
760 else if (
differ(yA.adj(), dy))
botch(
"d xAi < yA/dy", dy, yA.adj());
768 if (
differ(fA.val(), f))
botch(
"fA = xcAi < yA", f, fA.val());
769 else if (
differ(xcAi.aval,
dx))
botch(
"d xcAi < yA/dx",
dx, xcAi.aval);
770 else if (
differ(yA.adj(), dy))
botch(
"d xcAi < yA/dy", dy, yA.adj());
778 if (
differ(fA.val(), f))
botch(
"fA = xAi < ycA", f, fA.val());
780 else if (
differ(ycA.adj(), dy))
botch(
"d xAi < ycA/dy", dy, ycA.adj());
787 if (
differ(fA.val(), f))
botch(
"fA = xAi < yC", f, fA.val());
789 else if (
differ(yC.adj(), dy))
botch(
"d xAi < yC/dy", dy, yC.adj());
797 if (
differ(fA.val(), f))
botch(
"fA = xcAi < yC", f, fA.val());
798 else if (
differ(xcAi.aval,
dx))
botch(
"d xcAi < yC/dx",
dx, xcAi.aval);
799 else if (
differ(yC.adj(), dy))
botch(
"d xcAi < yC/dy", dy, yC.adj());
807 if (
differ(fA.val(), f))
botch(
"fA = xAi < ycC", f, fA.val());
809 else if (
differ(ycC.adj(), dy))
botch(
"d xAi < ycC/dy", dy, ycC.adj());
816 if (
differ(fA.val(), f))
botch(
"fA = xAi < yAi", f, fA.val());
818 else if (
differ(yAi.aval, dy))
botch(
"d xAi < yAi/dy", dy, yAi.aval);
826 if (
differ(fA.val(), f))
botch(
"fA = xcAi < yAi", f, fA.val());
827 else if (
differ(xcAi.aval,
dx))
botch(
"d xcAi < yAi/dx",
dx, xcAi.aval);
828 else if (
differ(yAi.aval, dy))
botch(
"d xcAi < yAi/dy", dy, yAi.aval);
836 if (
differ(fA.val(), f))
botch(
"fA = xAi < ycAi", f, fA.val());
838 else if (
differ(ycAi.aval, dy))
botch(
"d xAi < ycAi/dy", dy, ycAi.aval);
844 if (
differ(fA.val(), f))
botch(
"fA = xAi < yd", f, fA.val());
852 if (
differ(fA.val(), f))
botch(
"fA = xcAi < yd", f, fA.val());
853 else if (
differ(xcAi.aval,
dx))
botch(
"d xcAi < yd/dx",
dx, xcAi.aval);
860 if (
differ(fA.val(), f))
botch(
"fA = xAi < yL", f, fA.val());
869 if (
differ(fA.val(), f))
botch(
"fA = xcAi < yL", f, fA.val());
870 else if (
differ(xcAi.aval,
dx))
botch(
"d xcAi < yL/dx",
dx, xcAi.aval);
877 if (
differ(fA.val(), f))
botch(
"fA = xAi < yi", f, fA.val());
886 if (
differ(fA.val(), f))
botch(
"fA = xcAi < yi", f, fA.val());
887 else if (
differ(xcAi.aval,
dx))
botch(
"d xcAi < yi/dx",
dx, xcAi.aval);
892 if (
differ(fA.val(), f))
botch(
"fA = xd < yAI", f, fA.val());
893 else if (
differ(yAI.adj(), dy))
botch(
"d xd < yAI/dy", dy, yAI.adj());
899 if (
differ(fA.val(), f))
botch(
"fA = xd < ycAI", f, fA.val());
900 else if (
differ(ycAI.adj(), dy))
botch(
"d xd < ycAI/dy", dy, ycAI.adj());
905 if (
differ(fA.val(), f))
botch(
"fA = xd < yA", f, fA.val());
906 else if (
differ(yA.adj(), dy))
botch(
"d xd < yA/dy", dy, yA.adj());
912 if (
differ(fA.val(), f))
botch(
"fA = xd < ycA", f, fA.val());
913 else if (
differ(ycA.adj(), dy))
botch(
"d xd < ycA/dy", dy, ycA.adj());
918 if (
differ(fA.val(), f))
botch(
"fA = xd < yC", f, fA.val());
919 else if (
differ(yC.adj(), dy))
botch(
"d xd < yC/dy", dy, yC.adj());
925 if (
differ(fA.val(), f))
botch(
"fA = xd < ycC", f, fA.val());
926 else if (
differ(ycC.adj(), dy))
botch(
"d xd < ycC/dy", dy, ycC.adj());
932 if (
differ(fA.val(), f))
botch(
"fA = xd < yAi", f, fA.val());
933 else if (
differ(yAi.aval, dy))
botch(
"d xd < yAi/dy", dy, yAi.aval);
940 if (
differ(fA.val(), f))
botch(
"fA = xd < ycAi", f, fA.val());
941 else if (
differ(ycAi.aval, dy))
botch(
"d xd < ycAi/dy", dy, ycAi.aval);
947 if (
differ(fA.val(), f))
botch(
"fA = xL < yAI", f, fA.val());
948 else if (
differ(yAI.adj(), dy))
botch(
"d xL < yAI/dy", dy, yAI.adj());
955 if (
differ(fA.val(), f))
botch(
"fA = xL < ycAI", f, fA.val());
956 else if (
differ(ycAI.adj(), dy))
botch(
"d xL < ycAI/dy", dy, ycAI.adj());
962 if (
differ(fA.val(), f))
botch(
"fA = xL < yA", f, fA.val());
963 else if (
differ(yA.adj(), dy))
botch(
"d xL < yA/dy", dy, yA.adj());
970 if (
differ(fA.val(), f))
botch(
"fA = xL < ycA", f, fA.val());
971 else if (
differ(ycA.adj(), dy))
botch(
"d xL < ycA/dy", dy, ycA.adj());
977 if (
differ(fA.val(), f))
botch(
"fA = xL < yC", f, fA.val());
978 else if (
differ(yC.adj(), dy))
botch(
"d xL < yC/dy", dy, yC.adj());
985 if (
differ(fA.val(), f))
botch(
"fA = xL < ycC", f, fA.val());
986 else if (
differ(ycC.adj(), dy))
botch(
"d xL < ycC/dy", dy, ycC.adj());
993 if (
differ(fA.val(), f))
botch(
"fA = xL < yAi", f, fA.val());
994 else if (
differ(yAi.aval, dy))
botch(
"d xL < yAi/dy", dy, yAi.aval);
1002 if (
differ(fA.val(), f))
botch(
"fA = xL < ycAi", f, fA.val());
1003 else if (
differ(ycAi.aval, dy))
botch(
"d xL < ycAi/dy", dy, ycAi.aval);
1009 if (
differ(fA.val(), f))
botch(
"fA = xi < yAI", f, fA.val());
1010 else if (
differ(yAI.adj(), dy))
botch(
"d xi < yAI/dy", dy, yAI.adj());
1017 if (
differ(fA.val(), f))
botch(
"fA = xi < ycAI", f, fA.val());
1018 else if (
differ(ycAI.adj(), dy))
botch(
"d xi < ycAI/dy", dy, ycAI.adj());
1024 if (
differ(fA.val(), f))
botch(
"fA = xi < yA", f, fA.val());
1025 else if (
differ(yA.adj(), dy))
botch(
"d xi < yA/dy", dy, yA.adj());
1032 if (
differ(fA.val(), f))
botch(
"fA = xi < ycA", f, fA.val());
1033 else if (
differ(ycA.adj(), dy))
botch(
"d xi < ycA/dy", dy, ycA.adj());
1039 if (
differ(fA.val(), f))
botch(
"fA = xi < yC", f, fA.val());
1040 else if (
differ(yC.adj(), dy))
botch(
"d xi < yC/dy", dy, yC.adj());
1047 if (
differ(fA.val(), f))
botch(
"fA = xi < ycC", f, fA.val());
1048 else if (
differ(ycC.adj(), dy))
botch(
"d xi < ycC/dy", dy, ycC.adj());
1055 if (
differ(fA.val(), f))
botch(
"fA = xi < yAi", f, fA.val());
1056 else if (
differ(yAi.aval, dy))
botch(
"d xi < yAi/dy", dy, yAi.aval);
1064 if (
differ(fA.val(), f))
botch(
"fA = xi < ycAi", f, fA.val());
1065 else if (
differ(ycAi.aval, dy))
botch(
"d xi < ycAi/dy", dy, ycAi.aval);
ADT_RAD ADvari< double > Ai
ADT_RAD ADvari< double > Ai
ADT_RAD IndepADvar< double > AI
const ADT_RAD IndepADvar< double > cAI
ADT_RAD ConstADvar< double > C
const ADT_RAD ADvar< double > cA
const ADT_RAD ConstADvar< double > cC
const ADT_RAD IndepADvar< double > cAI
const ADT_RAD ADvari< double > cAi
int differ(double a, double b)
const ADT_RAD ADvari< double > cAi
ADT_RAD IndepADvar< double > AI
const ADT_RAD ConstADvar< double > cC
ADT_RAD ADvar< double > A
void botch(const char *what, double wanted, double got)
const ADT_RAD ADvar< double > cA