3
/* Try to test all combinations of types and operations */
7
#define ADT_RAD Sacado::Rad::
11
#include "Sacado_trad.hpp"
19
typedef ADT_RAD IndepADvar<double> AI;
21
typedef ADT_RAD ADvar<double> A;
23
typedef ADT_RAD ConstADvar<double> C;
25
typedef ADT_RAD ADvari<double> Ai;
27
typedef const ADT_RAD IndepADvar<double> cAI;
29
typedef const ADT_RAD ADvar<double> cA;
31
typedef const ADT_RAD ConstADvar<double> cC;
33
typedef const ADT_RAD ADvari<double> cAi;
39
/* This is to be run through an awk program that changes lines */
41
/* with "BINTEST" or "UNOPTEST" at the beginning of the line into */
43
/* a the desired C++ (which we can then inspect). */
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;
67
differ(double a, double b)
105
#ifdef RAD_AUTO_AD_Const
131
double dx, dy, f, xd, yd;
142
/**** Test of operator<= ****/
144
xd = 2.; yd = 3.; f = 1.; 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);
1069
if (!rc) // chatter for cppunit test, which cannot tolerate silence