Sacado Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
test
tradoptest
tradoptest_24.cpp
Go to the documentation of this file.
1
2
3
/* Try to test all combinations of types and operations */
4
5
6
7
#define ADT_RAD Sacado::Rad::
8
9
10
11
#include "
Sacado_trad.hpp
"
12
13
#include <cstdio>
14
15
using
std::printf;
16
17
18
19
typedef
ADT_RAD
IndepADvar<double>
AI
;
20
21
typedef
ADT_RAD
ADvar<double>
A
;
22
23
typedef
ADT_RAD
ConstADvar<double>
C
;
24
25
typedef
ADT_RAD
ADvari<double>
Ai
;
26
27
typedef
const
ADT_RAD
IndepADvar<double>
cAI
;
28
29
typedef
const
ADT_RAD
ADvar<double>
cA
;
30
31
typedef
const
ADT_RAD
ConstADvar<double>
cC
;
32
33
typedef
const
ADT_RAD
ADvari<double>
cAi
;
34
35
static
int
rc
;
36
37
38
39
/* This is to be run through an awk program that changes lines */
40
41
/* with "BINTEST" or "UNOPTEST" at the beginning of the line into */
42
43
/* a the desired C++ (which we can then inspect). */
44
45
46
47
void
48
49
botch
(
const
char
*what,
double
wanted,
double
got)
50
51
{
52
53
printf(
"%s: expected %g, got %g, diff = %.2g\n"
, what, wanted, got, wanted-got);
54
55
rc
= 1;
56
57
}
58
59
60
61
const
double
tol
= 5e-16;
62
63
64
65
int
66
67
differ
(
double
a
,
double
b)
68
69
{
70
71
double
d =
a
- b;
72
73
if
(d < 0.)
74
75
d = -d;
76
77
if
(
a
< 0.)
78
79
a
= -
a
;
80
81
if
(b < 0.)
82
83
b = -b;
84
85
if
(
a
< b)
86
87
a
= b;
88
89
if
(
a
> 0.)
90
91
d /=
a
;
92
93
return
d >
tol
;
94
95
}
96
97
98
99
#ifndef RAD_EQ_ALIAS
100
101
#define Plus_dx 1.
102
103
#else
104
105
#ifdef RAD_AUTO_AD_Const
106
107
#define Plus_dx 1.
108
109
#else
110
111
#define Plus_dx 0.
112
113
#endif
114
115
#endif
116
117
118
119
int
120
121
main
(
void
)
122
123
{
124
125
AI
xAI, yAI;
126
127
A
fA, xA, yA;
128
129
C
xC, yC;
130
131
double
dx
, dy, f, xd, yd;
132
133
long
xL, yL;
134
135
int
xi, yi;
136
137
138
139
rc
= 0;
140
141
142
/**** Test of - ****/
143
144
xd = 7.; yd = 4; f = 3.;
dx
= 1.; dy = -1.;
145
xAI = xd;
146
yAI = yd;
147
fA = xAI - yAI;
148
A::Gradcomp();
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());
152
{
153
A::aval_reset();
154
cAI
xcAI(xd);
155
yAI = yd;
156
fA = xcAI - yAI;
157
A::Gradcomp();
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());
161
}
162
{
163
A::aval_reset();
164
xAI = xd;
165
cAI
ycAI(yd);
166
fA = xAI - ycAI;
167
A::Gradcomp();
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());
171
}
172
{
173
A::aval_reset();
174
cAI
xcAI(xd);
175
cAI
ycAI(yd);
176
fA = xcAI - ycAI;
177
A::Gradcomp();
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());
181
}
182
xAI = xd;
183
yA = yd;
184
fA = xAI - yA;
185
A::Gradcomp();
186
if
(
differ
(fA.val(), f))
botch
(
"fA = xAI - yA"
, f, fA.val());
187
else
if
(
differ
(xAI.adj(),
dx
))
botch
(
"d xAI - yA/dx"
,
dx
, xAI.adj());
188
else
if
(
differ
(yA.adj(), dy))
botch
(
"d xAI - yA/dy"
, dy, yA.adj());
189
{
190
A::aval_reset();
191
cAI
xcAI(xd);
192
yA = yd;
193
fA = xcAI - yA;
194
A::Gradcomp();
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());
198
}
199
{
200
A::aval_reset();
201
xAI = xd;
202
cA
ycA(yd);
203
fA = xAI - ycA;
204
A::Gradcomp();
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());
208
}
209
{
210
A::aval_reset();
211
cAI
xcAI(xd);
212
cA
ycA(yd);
213
fA = xcAI - ycA;
214
A::Gradcomp();
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());
218
}
219
xAI = xd;
220
yC = yd;
221
fA = xAI - yC;
222
A::Gradcomp();
223
if
(
differ
(fA.val(), f))
botch
(
"fA = xAI - yC"
, f, fA.val());
224
else
if
(
differ
(xAI.adj(),
dx
))
botch
(
"d xAI - yC/dx"
,
dx
, xAI.adj());
225
else
if
(
differ
(yC.adj(), dy))
botch
(
"d xAI - yC/dy"
, dy, yC.adj());
226
{
227
A::aval_reset();
228
cAI
xcAI(xd);
229
yC = yd;
230
fA = xcAI - yC;
231
A::Gradcomp();
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());
235
}
236
{
237
A::aval_reset();
238
xAI = xd;
239
cC
ycC(yd);
240
fA = xAI - ycC;
241
A::Gradcomp();
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());
245
}
246
{
247
A::aval_reset();
248
cAI
xcAI(xd);
249
cC
ycC(yd);
250
fA = xcAI - ycC;
251
A::Gradcomp();
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());
255
}
256
{
257
xAI = xd;
258
Ai
yAi(yd);
259
fA = xAI - yAi;
260
A::Gradcomp();
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);
264
}
265
{
266
A::aval_reset();
267
cAI
xcAI(xd);
268
Ai
yAi(yd);
269
fA = xcAI - yAi;
270
A::Gradcomp();
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);
274
}
275
{
276
A::aval_reset();
277
xAI = xd;
278
cAi
ycAi(yd);
279
fA = xAI - ycAi;
280
A::Gradcomp();
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);
284
}
285
{
286
A::aval_reset();
287
cAI
xcAI(xd);
288
cAi
ycAi(yd);
289
fA = xcAI - ycAi;
290
A::Gradcomp();
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);
294
}
295
xAI = xd;
296
fA = xAI - yd;
297
A::Gradcomp();
298
if
(
differ
(fA.val(), f))
botch
(
"fA = xAI - yd"
, f, fA.val());
299
else
if
(
differ
(xAI.adj(),
dx
))
botch
(
"d xAI - yd/dx"
,
dx
, xAI.adj());
300
{
301
A::aval_reset();
302
cAI
xcAI(xd);
303
fA = xcAI - yd;
304
A::Gradcomp();
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());
307
}
308
xAI = xd;
309
yL = (long)yd;
310
fA = xAI - yL;
311
A::Gradcomp();
312
if
(
differ
(fA.val(), f))
botch
(
"fA = xAI - yL"
, f, fA.val());
313
else
if
(
differ
(xAI.adj(),
dx
))
botch
(
"d xAI - yL/dx"
,
dx
, xAI.adj());
314
{
315
A::aval_reset();
316
cAI
xcAI(xd);
317
yL = (long)yd;
318
fA = xcAI - yL;
319
A::Gradcomp();
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());
322
}
323
xAI = xd;
324
yi = (int)yd;
325
fA = xAI - yi;
326
A::Gradcomp();
327
if
(
differ
(fA.val(), f))
botch
(
"fA = xAI - yi"
, f, fA.val());
328
else
if
(
differ
(xAI.adj(),
dx
))
botch
(
"d xAI - yi/dx"
,
dx
, xAI.adj());
329
{
330
A::aval_reset();
331
cAI
xcAI(xd);
332
yi = (int)yd;
333
fA = xcAI - yi;
334
A::Gradcomp();
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());
337
}
338
xA = xd;
339
yAI = yd;
340
fA = xA - yAI;
341
A::Gradcomp();
342
if
(
differ
(fA.val(), f))
botch
(
"fA = xA - yAI"
, f, fA.val());
343
else
if
(
differ
(xA.adj(),
dx
))
botch
(
"d xA - yAI/dx"
,
dx
, xA.adj());
344
else
if
(
differ
(yAI.adj(), dy))
botch
(
"d xA - yAI/dy"
, dy, yAI.adj());
345
{
346
A::aval_reset();
347
cA
xcA(xd);
348
yAI = yd;
349
fA = xcA - yAI;
350
A::Gradcomp();
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());
354
}
355
{
356
A::aval_reset();
357
xA = xd;
358
cAI
ycAI(yd);
359
fA = xA - ycAI;
360
A::Gradcomp();
361
if
(
differ
(fA.val(), f))
botch
(
"fA = xA - ycAI"
, f, fA.val());
362
else
if
(
differ
(xA.adj(),
dx
))
botch
(
"d xA - ycAI/dx"
,
dx
, xA.adj());
363
else
if
(
differ
(ycAI.adj(), dy))
botch
(
"d xA - ycAI/dy"
, dy, ycAI.adj());
364
}
365
{
366
A::aval_reset();
367
cA
xcA(xd);
368
cAI
ycAI(yd);
369
fA = xcA - ycAI;
370
A::Gradcomp();
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());
374
}
375
xA = xd;
376
yA = yd;
377
fA = xA - yA;
378
A::Gradcomp();
379
if
(
differ
(fA.val(), f))
botch
(
"fA = xA - yA"
, f, fA.val());
380
else
if
(
differ
(xA.adj(),
dx
))
botch
(
"d xA - yA/dx"
,
dx
, xA.adj());
381
else
if
(
differ
(yA.adj(), dy))
botch
(
"d xA - yA/dy"
, dy, yA.adj());
382
{
383
A::aval_reset();
384
cA
xcA(xd);
385
yA = yd;
386
fA = xcA - yA;
387
A::Gradcomp();
388
if
(
differ
(fA.val(), f))
botch
(
"fA = xcA - yA"
, f, fA.val());
389
else
if
(
differ
(xcA.adj(),
dx
))
botch
(
"d xcA - yA/dx"
,
dx
, xcA.adj());
390
else
if
(
differ
(yA.adj(), dy))
botch
(
"d xcA - yA/dy"
, dy, yA.adj());
391
}
392
{
393
A::aval_reset();
394
xA = xd;
395
cA
ycA(yd);
396
fA = xA - ycA;
397
A::Gradcomp();
398
if
(
differ
(fA.val(), f))
botch
(
"fA = xA - ycA"
, f, fA.val());
399
else
if
(
differ
(xA.adj(),
dx
))
botch
(
"d xA - ycA/dx"
,
dx
, xA.adj());
400
else
if
(
differ
(ycA.adj(), dy))
botch
(
"d xA - ycA/dy"
, dy, ycA.adj());
401
}
402
{
403
A::aval_reset();
404
cA
xcA(xd);
405
cA
ycA(yd);
406
fA = xcA - ycA;
407
A::Gradcomp();
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());
411
}
412
xA = xd;
413
yC = yd;
414
fA = xA - yC;
415
A::Gradcomp();
416
if
(
differ
(fA.val(), f))
botch
(
"fA = xA - yC"
, f, fA.val());
417
else
if
(
differ
(xA.adj(),
dx
))
botch
(
"d xA - yC/dx"
,
dx
, xA.adj());
418
else
if
(
differ
(yC.adj(), dy))
botch
(
"d xA - yC/dy"
, dy, yC.adj());
419
{
420
A::aval_reset();
421
cA
xcA(xd);
422
yC = yd;
423
fA = xcA - yC;
424
A::Gradcomp();
425
if
(
differ
(fA.val(), f))
botch
(
"fA = xcA - yC"
, f, fA.val());
426
else
if
(
differ
(xcA.adj(),
dx
))
botch
(
"d xcA - yC/dx"
,
dx
, xcA.adj());
427
else
if
(
differ
(yC.adj(), dy))
botch
(
"d xcA - yC/dy"
, dy, yC.adj());
428
}
429
{
430
A::aval_reset();
431
xA = xd;
432
cC
ycC(yd);
433
fA = xA - ycC;
434
A::Gradcomp();
435
if
(
differ
(fA.val(), f))
botch
(
"fA = xA - ycC"
, f, fA.val());
436
else
if
(
differ
(xA.adj(),
dx
))
botch
(
"d xA - ycC/dx"
,
dx
, xA.adj());
437
else
if
(
differ
(ycC.adj(), dy))
botch
(
"d xA - ycC/dy"
, dy, ycC.adj());
438
}
439
{
440
A::aval_reset();
441
cA
xcA(xd);
442
cC
ycC(yd);
443
fA = xcA - ycC;
444
A::Gradcomp();
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());
448
}
449
{
450
xA = xd;
451
Ai
yAi(yd);
452
fA = xA - yAi;
453
A::Gradcomp();
454
if
(
differ
(fA.val(), f))
botch
(
"fA = xA - yAi"
, f, fA.val());
455
else
if
(
differ
(xA.adj(),
dx
))
botch
(
"d xA - yAi/dx"
,
dx
, xA.adj());
456
else
if
(
differ
(yAi.aval, dy))
botch
(
"d xA - yAi/dy"
, dy, yAi.aval);
457
}
458
{
459
A::aval_reset();
460
cA
xcA(xd);
461
Ai
yAi(yd);
462
fA = xcA - yAi;
463
A::Gradcomp();
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);
467
}
468
{
469
A::aval_reset();
470
xA = xd;
471
cAi
ycAi(yd);
472
fA = xA - ycAi;
473
A::Gradcomp();
474
if
(
differ
(fA.val(), f))
botch
(
"fA = xA - ycAi"
, f, fA.val());
475
else
if
(
differ
(xA.adj(),
dx
))
botch
(
"d xA - ycAi/dx"
,
dx
, xA.adj());
476
else
if
(
differ
(ycAi.aval, dy))
botch
(
"d xA - ycAi/dy"
, dy, ycAi.aval);
477
}
478
{
479
A::aval_reset();
480
cA
xcA(xd);
481
cAi
ycAi(yd);
482
fA = xcA - ycAi;
483
A::Gradcomp();
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);
487
}
488
xA = xd;
489
fA = xA - yd;
490
A::Gradcomp();
491
if
(
differ
(fA.val(), f))
botch
(
"fA = xA - yd"
, f, fA.val());
492
else
if
(
differ
(xA.adj(),
dx
))
botch
(
"d xA - yd/dx"
,
dx
, xA.adj());
493
{
494
A::aval_reset();
495
cA
xcA(xd);
496
fA = xcA - yd;
497
A::Gradcomp();
498
if
(
differ
(fA.val(), f))
botch
(
"fA = xcA - yd"
, f, fA.val());
499
else
if
(
differ
(xcA.adj(),
dx
))
botch
(
"d xcA - yd/dx"
,
dx
, xcA.adj());
500
}
501
xA = xd;
502
yL = (long)yd;
503
fA = xA - yL;
504
A::Gradcomp();
505
if
(
differ
(fA.val(), f))
botch
(
"fA = xA - yL"
, f, fA.val());
506
else
if
(
differ
(xA.adj(),
dx
))
botch
(
"d xA - yL/dx"
,
dx
, xA.adj());
507
{
508
A::aval_reset();
509
cA
xcA(xd);
510
yL = (long)yd;
511
fA = xcA - yL;
512
A::Gradcomp();
513
if
(
differ
(fA.val(), f))
botch
(
"fA = xcA - yL"
, f, fA.val());
514
else
if
(
differ
(xcA.adj(),
dx
))
botch
(
"d xcA - yL/dx"
,
dx
, xcA.adj());
515
}
516
xA = xd;
517
yi = (int)yd;
518
fA = xA - yi;
519
A::Gradcomp();
520
if
(
differ
(fA.val(), f))
botch
(
"fA = xA - yi"
, f, fA.val());
521
else
if
(
differ
(xA.adj(),
dx
))
botch
(
"d xA - yi/dx"
,
dx
, xA.adj());
522
{
523
A::aval_reset();
524
cA
xcA(xd);
525
yi = (int)yd;
526
fA = xcA - yi;
527
A::Gradcomp();
528
if
(
differ
(fA.val(), f))
botch
(
"fA = xcA - yi"
, f, fA.val());
529
else
if
(
differ
(xcA.adj(),
dx
))
botch
(
"d xcA - yi/dx"
,
dx
, xcA.adj());
530
}
531
xC = xd;
532
yAI = yd;
533
fA = xC - yAI;
534
A::Gradcomp();
535
if
(
differ
(fA.val(), f))
botch
(
"fA = xC - yAI"
, f, fA.val());
536
else
if
(
differ
(xC.adj(),
dx
))
botch
(
"d xC - yAI/dx"
,
dx
, xC.adj());
537
else
if
(
differ
(yAI.adj(), dy))
botch
(
"d xC - yAI/dy"
, dy, yAI.adj());
538
{
539
A::aval_reset();
540
cC
xcC(xd);
541
yAI = yd;
542
fA = xcC - yAI;
543
A::Gradcomp();
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());
547
}
548
{
549
A::aval_reset();
550
xC = xd;
551
cAI
ycAI(yd);
552
fA = xC - ycAI;
553
A::Gradcomp();
554
if
(
differ
(fA.val(), f))
botch
(
"fA = xC - ycAI"
, f, fA.val());
555
else
if
(
differ
(xC.adj(),
dx
))
botch
(
"d xC - ycAI/dx"
,
dx
, xC.adj());
556
else
if
(
differ
(ycAI.adj(), dy))
botch
(
"d xC - ycAI/dy"
, dy, ycAI.adj());
557
}
558
{
559
A::aval_reset();
560
cC
xcC(xd);
561
cAI
ycAI(yd);
562
fA = xcC - ycAI;
563
A::Gradcomp();
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());
567
}
568
xC = xd;
569
yA = yd;
570
fA = xC - yA;
571
A::Gradcomp();
572
if
(
differ
(fA.val(), f))
botch
(
"fA = xC - yA"
, f, fA.val());
573
else
if
(
differ
(xC.adj(),
dx
))
botch
(
"d xC - yA/dx"
,
dx
, xC.adj());
574
else
if
(
differ
(yA.adj(), dy))
botch
(
"d xC - yA/dy"
, dy, yA.adj());
575
{
576
A::aval_reset();
577
cC
xcC(xd);
578
yA = yd;
579
fA = xcC - yA;
580
A::Gradcomp();
581
if
(
differ
(fA.val(), f))
botch
(
"fA = xcC - yA"
, f, fA.val());
582
else
if
(
differ
(xcC.adj(),
dx
))
botch
(
"d xcC - yA/dx"
,
dx
, xcC.adj());
583
else
if
(
differ
(yA.adj(), dy))
botch
(
"d xcC - yA/dy"
, dy, yA.adj());
584
}
585
{
586
A::aval_reset();
587
xC = xd;
588
cA
ycA(yd);
589
fA = xC - ycA;
590
A::Gradcomp();
591
if
(
differ
(fA.val(), f))
botch
(
"fA = xC - ycA"
, f, fA.val());
592
else
if
(
differ
(xC.adj(),
dx
))
botch
(
"d xC - ycA/dx"
,
dx
, xC.adj());
593
else
if
(
differ
(ycA.adj(), dy))
botch
(
"d xC - ycA/dy"
, dy, ycA.adj());
594
}
595
{
596
A::aval_reset();
597
cC
xcC(xd);
598
cA
ycA(yd);
599
fA = xcC - ycA;
600
A::Gradcomp();
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());
604
}
605
xC = xd;
606
yC = yd;
607
fA = xC - yC;
608
A::Gradcomp();
609
if
(
differ
(fA.val(), f))
botch
(
"fA = xC - yC"
, f, fA.val());
610
else
if
(
differ
(xC.adj(),
dx
))
botch
(
"d xC - yC/dx"
,
dx
, xC.adj());
611
else
if
(
differ
(yC.adj(), dy))
botch
(
"d xC - yC/dy"
, dy, yC.adj());
612
{
613
A::aval_reset();
614
cC
xcC(xd);
615
yC = yd;
616
fA = xcC - yC;
617
A::Gradcomp();
618
if
(
differ
(fA.val(), f))
botch
(
"fA = xcC - yC"
, f, fA.val());
619
else
if
(
differ
(xcC.adj(),
dx
))
botch
(
"d xcC - yC/dx"
,
dx
, xcC.adj());
620
else
if
(
differ
(yC.adj(), dy))
botch
(
"d xcC - yC/dy"
, dy, yC.adj());
621
}
622
{
623
A::aval_reset();
624
xC = xd;
625
cC
ycC(yd);
626
fA = xC - ycC;
627
A::Gradcomp();
628
if
(
differ
(fA.val(), f))
botch
(
"fA = xC - ycC"
, f, fA.val());
629
else
if
(
differ
(xC.adj(),
dx
))
botch
(
"d xC - ycC/dx"
,
dx
, xC.adj());
630
else
if
(
differ
(ycC.adj(), dy))
botch
(
"d xC - ycC/dy"
, dy, ycC.adj());
631
}
632
{
633
A::aval_reset();
634
cC
xcC(xd);
635
cC
ycC(yd);
636
fA = xcC - ycC;
637
A::Gradcomp();
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());
641
}
642
{
643
xC = xd;
644
Ai
yAi(yd);
645
fA = xC - yAi;
646
A::Gradcomp();
647
if
(
differ
(fA.val(), f))
botch
(
"fA = xC - yAi"
, f, fA.val());
648
else
if
(
differ
(xC.adj(),
dx
))
botch
(
"d xC - yAi/dx"
,
dx
, xC.adj());
649
else
if
(
differ
(yAi.aval, dy))
botch
(
"d xC - yAi/dy"
, dy, yAi.aval);
650
}
651
{
652
A::aval_reset();
653
cC
xcC(xd);
654
Ai
yAi(yd);
655
fA = xcC - yAi;
656
A::Gradcomp();
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);
660
}
661
{
662
A::aval_reset();
663
xC = xd;
664
cAi
ycAi(yd);
665
fA = xC - ycAi;
666
A::Gradcomp();
667
if
(
differ
(fA.val(), f))
botch
(
"fA = xC - ycAi"
, f, fA.val());
668
else
if
(
differ
(xC.adj(),
dx
))
botch
(
"d xC - ycAi/dx"
,
dx
, xC.adj());
669
else
if
(
differ
(ycAi.aval, dy))
botch
(
"d xC - ycAi/dy"
, dy, ycAi.aval);
670
}
671
{
672
A::aval_reset();
673
cC
xcC(xd);
674
cAi
ycAi(yd);
675
fA = xcC - ycAi;
676
A::Gradcomp();
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);
680
}
681
xC = xd;
682
fA = xC - yd;
683
A::Gradcomp();
684
if
(
differ
(fA.val(), f))
botch
(
"fA = xC - yd"
, f, fA.val());
685
else
if
(
differ
(xC.adj(),
dx
))
botch
(
"d xC - yd/dx"
,
dx
, xC.adj());
686
{
687
A::aval_reset();
688
cC
xcC(xd);
689
fA = xcC - yd;
690
A::Gradcomp();
691
if
(
differ
(fA.val(), f))
botch
(
"fA = xcC - yd"
, f, fA.val());
692
else
if
(
differ
(xcC.adj(),
dx
))
botch
(
"d xcC - yd/dx"
,
dx
, xcC.adj());
693
}
694
xC = xd;
695
yL = (long)yd;
696
fA = xC - yL;
697
A::Gradcomp();
698
if
(
differ
(fA.val(), f))
botch
(
"fA = xC - yL"
, f, fA.val());
699
else
if
(
differ
(xC.adj(),
dx
))
botch
(
"d xC - yL/dx"
,
dx
, xC.adj());
700
{
701
A::aval_reset();
702
cC
xcC(xd);
703
yL = (long)yd;
704
fA = xcC - yL;
705
A::Gradcomp();
706
if
(
differ
(fA.val(), f))
botch
(
"fA = xcC - yL"
, f, fA.val());
707
else
if
(
differ
(xcC.adj(),
dx
))
botch
(
"d xcC - yL/dx"
,
dx
, xcC.adj());
708
}
709
xC = xd;
710
yi = (int)yd;
711
fA = xC - yi;
712
A::Gradcomp();
713
if
(
differ
(fA.val(), f))
botch
(
"fA = xC - yi"
, f, fA.val());
714
else
if
(
differ
(xC.adj(),
dx
))
botch
(
"d xC - yi/dx"
,
dx
, xC.adj());
715
{
716
A::aval_reset();
717
cC
xcC(xd);
718
yi = (int)yd;
719
fA = xcC - yi;
720
A::Gradcomp();
721
if
(
differ
(fA.val(), f))
botch
(
"fA = xcC - yi"
, f, fA.val());
722
else
if
(
differ
(xcC.adj(),
dx
))
botch
(
"d xcC - yi/dx"
,
dx
, xcC.adj());
723
}
724
{
725
Ai
xAi(xd);
726
yAI = yd;
727
fA = xAi - yAI;
728
A::Gradcomp();
729
if
(
differ
(fA.val(), f))
botch
(
"fA = xAi - yAI"
, f, fA.val());
730
else
if
(
differ
(xAi.aval,
dx
))
botch
(
"d xAi - yAI/dx"
,
dx
, xAi.aval);
731
else
if
(
differ
(yAI.adj(), dy))
botch
(
"d xAi - yAI/dy"
, dy, yAI.adj());
732
}
733
{
734
A::aval_reset();
735
cAi
xcAi(xd);
736
yAI = yd;
737
fA = xcAi - yAI;
738
A::Gradcomp();
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());
742
}
743
{
744
A::aval_reset();
745
Ai
xAi(xd);
746
cAI
ycAI(yd);
747
fA = xAi - ycAI;
748
A::Gradcomp();
749
if
(
differ
(fA.val(), f))
botch
(
"fA = xAi - ycAI"
, f, fA.val());
750
else
if
(
differ
(xAi.aval,
dx
))
botch
(
"d xAi - ycAI/dx"
,
dx
, xAi.aval);
751
else
if
(
differ
(ycAI.adj(), dy))
botch
(
"d xAi - ycAI/dy"
, dy, ycAI.adj());
752
}
753
{
754
Ai
xAi(xd);
755
yA = yd;
756
fA = xAi - yA;
757
A::Gradcomp();
758
if
(
differ
(fA.val(), f))
botch
(
"fA = xAi - yA"
, f, fA.val());
759
else
if
(
differ
(xAi.aval,
dx
))
botch
(
"d xAi - yA/dx"
,
dx
, xAi.aval);
760
else
if
(
differ
(yA.adj(), dy))
botch
(
"d xAi - yA/dy"
, dy, yA.adj());
761
}
762
{
763
A::aval_reset();
764
cAi
xcAi(xd);
765
yA = yd;
766
fA = xcAi - yA;
767
A::Gradcomp();
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());
771
}
772
{
773
A::aval_reset();
774
Ai
xAi(xd);
775
cA
ycA(yd);
776
fA = xAi - ycA;
777
A::Gradcomp();
778
if
(
differ
(fA.val(), f))
botch
(
"fA = xAi - ycA"
, f, fA.val());
779
else
if
(
differ
(xAi.aval,
dx
))
botch
(
"d xAi - ycA/dx"
,
dx
, xAi.aval);
780
else
if
(
differ
(ycA.adj(), dy))
botch
(
"d xAi - ycA/dy"
, dy, ycA.adj());
781
}
782
{
783
Ai
xAi(xd);
784
yC = yd;
785
fA = xAi - yC;
786
A::Gradcomp();
787
if
(
differ
(fA.val(), f))
botch
(
"fA = xAi - yC"
, f, fA.val());
788
else
if
(
differ
(xAi.aval,
dx
))
botch
(
"d xAi - yC/dx"
,
dx
, xAi.aval);
789
else
if
(
differ
(yC.adj(), dy))
botch
(
"d xAi - yC/dy"
, dy, yC.adj());
790
}
791
{
792
A::aval_reset();
793
cAi
xcAi(xd);
794
yC = yd;
795
fA = xcAi - yC;
796
A::Gradcomp();
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());
800
}
801
{
802
A::aval_reset();
803
Ai
xAi(xd);
804
cC
ycC(yd);
805
fA = xAi - ycC;
806
A::Gradcomp();
807
if
(
differ
(fA.val(), f))
botch
(
"fA = xAi - ycC"
, f, fA.val());
808
else
if
(
differ
(xAi.aval,
dx
))
botch
(
"d xAi - ycC/dx"
,
dx
, xAi.aval);
809
else
if
(
differ
(ycC.adj(), dy))
botch
(
"d xAi - ycC/dy"
, dy, ycC.adj());
810
}
811
{
812
Ai
xAi(xd);
813
Ai
yAi(yd);
814
fA = xAi - yAi;
815
A::Gradcomp();
816
if
(
differ
(fA.val(), f))
botch
(
"fA = xAi - yAi"
, f, fA.val());
817
else
if
(
differ
(xAi.aval,
dx
))
botch
(
"d xAi - yAi/dx"
,
dx
, xAi.aval);
818
else
if
(
differ
(yAi.aval, dy))
botch
(
"d xAi - yAi/dy"
, dy, yAi.aval);
819
}
820
{
821
A::aval_reset();
822
cAi
xcAi(xd);
823
Ai
yAi(yd);
824
fA = xcAi - yAi;
825
A::Gradcomp();
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);
829
}
830
{
831
A::aval_reset();
832
Ai
xAi(xd);
833
cAi
ycAi(yd);
834
fA = xAi - ycAi;
835
A::Gradcomp();
836
if
(
differ
(fA.val(), f))
botch
(
"fA = xAi - ycAi"
, f, fA.val());
837
else
if
(
differ
(xAi.aval,
dx
))
botch
(
"d xAi - ycAi/dx"
,
dx
, xAi.aval);
838
else
if
(
differ
(ycAi.aval, dy))
botch
(
"d xAi - ycAi/dy"
, dy, ycAi.aval);
839
}
840
{
841
Ai
xAi(xd);
842
fA = xAi - yd;
843
A::Gradcomp();
844
if
(
differ
(fA.val(), f))
botch
(
"fA = xAi - yd"
, f, fA.val());
845
else
if
(
differ
(xAi.aval,
dx
))
botch
(
"d xAi - yd/dx"
,
dx
, xAi.aval);
846
}
847
{
848
A::aval_reset();
849
cAi
xcAi(xd);
850
fA = xcAi - yd;
851
A::Gradcomp();
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);
854
}
855
{
856
Ai
xAi(xd);
857
yL = (long)yd;
858
fA = xAi - yL;
859
A::Gradcomp();
860
if
(
differ
(fA.val(), f))
botch
(
"fA = xAi - yL"
, f, fA.val());
861
else
if
(
differ
(xAi.aval,
dx
))
botch
(
"d xAi - yL/dx"
,
dx
, xAi.aval);
862
}
863
{
864
A::aval_reset();
865
cAi
xcAi(xd);
866
yL = (long)yd;
867
fA = xcAi - yL;
868
A::Gradcomp();
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);
871
}
872
{
873
Ai
xAi(xd);
874
yi = (int)yd;
875
fA = xAi - yi;
876
A::Gradcomp();
877
if
(
differ
(fA.val(), f))
botch
(
"fA = xAi - yi"
, f, fA.val());
878
else
if
(
differ
(xAi.aval,
dx
))
botch
(
"d xAi - yi/dx"
,
dx
, xAi.aval);
879
}
880
{
881
A::aval_reset();
882
cAi
xcAi(xd);
883
yi = (int)yd;
884
fA = xcAi - yi;
885
A::Gradcomp();
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);
888
}
889
yAI = yd;
890
fA = xd - yAI;
891
A::Gradcomp();
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());
894
{
895
A::aval_reset();
896
cAI
ycAI(yd);
897
fA = xd - ycAI;
898
A::Gradcomp();
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());
901
}
902
yA = yd;
903
fA = xd - yA;
904
A::Gradcomp();
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());
907
{
908
A::aval_reset();
909
cA
ycA(yd);
910
fA = xd - ycA;
911
A::Gradcomp();
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());
914
}
915
yC = yd;
916
fA = xd - yC;
917
A::Gradcomp();
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());
920
{
921
A::aval_reset();
922
cC
ycC(yd);
923
fA = xd - ycC;
924
A::Gradcomp();
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());
927
}
928
{
929
Ai
yAi(yd);
930
fA = xd - yAi;
931
A::Gradcomp();
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);
934
}
935
{
936
A::aval_reset();
937
cAi
ycAi(yd);
938
fA = xd - ycAi;
939
A::Gradcomp();
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);
942
}
943
xL = (long)xd;
944
yAI = yd;
945
fA = xL - yAI;
946
A::Gradcomp();
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());
949
{
950
A::aval_reset();
951
xL = (long)xd;
952
cAI
ycAI(yd);
953
fA = xL - ycAI;
954
A::Gradcomp();
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());
957
}
958
xL = (long)xd;
959
yA = yd;
960
fA = xL - yA;
961
A::Gradcomp();
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());
964
{
965
A::aval_reset();
966
xL = (long)xd;
967
cA
ycA(yd);
968
fA = xL - ycA;
969
A::Gradcomp();
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());
972
}
973
xL = (long)xd;
974
yC = yd;
975
fA = xL - yC;
976
A::Gradcomp();
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());
979
{
980
A::aval_reset();
981
xL = (long)xd;
982
cC
ycC(yd);
983
fA = xL - ycC;
984
A::Gradcomp();
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());
987
}
988
{
989
xL = (long)xd;
990
Ai
yAi(yd);
991
fA = xL - yAi;
992
A::Gradcomp();
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);
995
}
996
{
997
A::aval_reset();
998
xL = (long)xd;
999
cAi
ycAi(yd);
1000
fA = xL - ycAi;
1001
A::Gradcomp();
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);
1004
}
1005
xi = (int)xd;
1006
yAI = yd;
1007
fA = xi - yAI;
1008
A::Gradcomp();
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());
1011
{
1012
A::aval_reset();
1013
xi = (int)xd;
1014
cAI
ycAI(yd);
1015
fA = xi - ycAI;
1016
A::Gradcomp();
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());
1019
}
1020
xi = (int)xd;
1021
yA = yd;
1022
fA = xi - yA;
1023
A::Gradcomp();
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());
1026
{
1027
A::aval_reset();
1028
xi = (int)xd;
1029
cA
ycA(yd);
1030
fA = xi - ycA;
1031
A::Gradcomp();
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());
1034
}
1035
xi = (int)xd;
1036
yC = yd;
1037
fA = xi - yC;
1038
A::Gradcomp();
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());
1041
{
1042
A::aval_reset();
1043
xi = (int)xd;
1044
cC
ycC(yd);
1045
fA = xi - ycC;
1046
A::Gradcomp();
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());
1049
}
1050
{
1051
xi = (int)xd;
1052
Ai
yAi(yd);
1053
fA = xi - yAi;
1054
A::Gradcomp();
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);
1057
}
1058
{
1059
A::aval_reset();
1060
xi = (int)xd;
1061
cAi
ycAi(yd);
1062
fA = xi - ycAi;
1063
A::Gradcomp();
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);
1066
}
1067
1068
1069
if
(!
rc
)
// chatter for cppunit test, which cannot tolerate silence
1070
1071
printf(
"OK\n"
);
1072
1073
return
rc
;
1074
1075
}
a
a
Definition
Sacado_CacheFad_Ops.hpp:426
dx
expr expr dx(i)
Ai
#define Ai
Definition
Sacado_rad.hpp:182
A
#define A
Definition
Sacado_rad.hpp:572
AI
#define AI
Definition
Sacado_rad.hpp:330
Sacado_trad.hpp
C
#define C(x)
Definition
Sacado_trad.hpp:2637
cC
const ADT_RAD ConstADvar< double > cC
Definition
tradoptest_01.cpp:31
ADT_RAD
#define ADT_RAD
Definition
tradoptest_01.cpp:7
cAI
const ADT_RAD IndepADvar< double > cAI
Definition
tradoptest_01.cpp:27
tol
const double tol
Definition
tradoptest_01.cpp:61
cAi
const ADT_RAD ADvari< double > cAi
Definition
tradoptest_01.cpp:33
rc
static int rc
Definition
tradoptest_01.cpp:35
cA
const ADT_RAD ADvar< double > cA
Definition
tradoptest_01.cpp:29
main
int main(void)
Definition
tradoptest_24.cpp:121
botch
void botch(const char *what, double wanted, double got)
Definition
tradoptest_24.cpp:49
differ
int differ(double a, double b)
Definition
tradoptest_24.cpp:67
Generated by
1.17.0