30 #include "Teuchos_UnitTestHarness.hpp" 31 #include "Teuchos_UnitTestRepository.hpp" 32 #include "Teuchos_GlobalMPISession.hpp" 33 #include "Teuchos_TestingHelpers.hpp" 37 #if SACADO_ENABLE_NEW_DESIGN 50 typedef double value_type;
57 x.fastAccessDx(i) = value_type(2.0+i);
60 ad_type y = std::move(x);
64 TEST_EQUALITY_CONST( y.val(), value_type(1.5) );
66 TEST_EQUALITY_CONST( y.dx(i), value_type(2.0+i) );
71 TEST_EQUALITY_CONST( x.val(), value_type(1.5) );
72 TEST_INEQUALITY( x.dx(), y.dx() );
74 TEST_EQUALITY_CONST( x.dx(i), value_type(2.0+i) );
80 typedef double value_type;
87 x.fastAccessDx(i) = value_type(2.0+i);
90 ad_type y = std::move(x);
94 TEST_EQUALITY_CONST( y.val(), value_type(1.5) );
96 TEST_EQUALITY_CONST( y.dx(i), value_type(2.0+i) );
101 TEST_EQUALITY_CONST( x.val(), value_type(1.5) );
102 TEST_INEQUALITY( x.dx(), y.dx() );
104 TEST_EQUALITY_CONST( x.dx(i), value_type(2.0+i) );
110 typedef double value_type;
117 x.fastAccessDx(i) = value_type(2.0+i);
120 ad_type y = std::move(x);
124 TEST_EQUALITY_CONST( y.val(), value_type(1.5) );
126 TEST_EQUALITY_CONST( y.dx(i), value_type(2.0+i) );
130 value_type *null_ptr =
nullptr;
131 TEST_EQUALITY_CONST( x.size(), 0 );
132 TEST_EQUALITY_CONST( x.val(), value_type(1.5) );
133 TEST_EQUALITY( x.dx(), null_ptr );
138 typedef double value_type;
145 x.fastAccessDx(i) = value_type(2.0+i);
148 ad_type y = std::move(x);
152 TEST_EQUALITY_CONST( y.val(), value_type(1.5) );
154 TEST_EQUALITY_CONST( y.dx(i), value_type(2.0+i) );
159 TEST_EQUALITY_CONST( x.val(), value_type(1.5) );
160 TEST_INEQUALITY( x.dx(), y.dx() );
162 TEST_EQUALITY_CONST( x.dx(i), value_type(2.0+i) );
168 typedef double value_type;
173 value_type x_val = value_type(1.5);
176 x_dx[i] = value_type(2.0+i);
180 ad_type y = std::move(x);
184 TEST_EQUALITY_CONST( y.val(), value_type(1.5) );
186 TEST_EQUALITY_CONST( y.dx(i), value_type(2.0+i) );
191 TEST_EQUALITY_CONST( x.val(), value_type(1.5) );
192 TEST_INEQUALITY( x.dx(), y.dx() );
194 TEST_EQUALITY_CONST( x.dx(i), value_type(2.0+i) );
200 typedef double value_type;
206 value_type x_val = value_type(1.5);
209 x_dx[i] = value_type(2.0+i);
213 ad_type y = std::move(x);
217 TEST_EQUALITY_CONST( y.val(), value_type(1.5) );
218 TEST_EQUALITY( y.dx(), x_dx.data() );
220 TEST_EQUALITY_CONST( y.dx(i), value_type(2.0+i) );
225 TEST_EQUALITY_CONST( x.val(), value_type(1.5) );
226 TEST_EQUALITY( x.dx(), x_dx.data() );
228 TEST_EQUALITY_CONST( x.dx(i), value_type(2.0+i) );
238 typedef double value_type;
245 x.fastAccessDx(i) = value_type(2.0+i);
253 TEST_EQUALITY_CONST( y.val(), value_type(1.5) );
255 TEST_EQUALITY_CONST( y.dx(i), value_type(2.0+i) );
260 TEST_EQUALITY_CONST( x.val(), value_type(1.5) );
261 TEST_INEQUALITY( x.dx(), y.dx() );
263 TEST_EQUALITY_CONST( x.dx(i), value_type(2.0+i) );
269 typedef double value_type;
276 x.fastAccessDx(i) = value_type(2.0+i);
284 TEST_EQUALITY_CONST( y.val(), value_type(1.5) );
286 TEST_EQUALITY_CONST( y.dx(i), value_type(2.0+i) );
291 TEST_EQUALITY_CONST( x.val(), value_type(1.5) );
292 TEST_INEQUALITY( x.dx(), y.dx() );
294 TEST_EQUALITY_CONST( x.dx(i), value_type(2.0+i) );
300 typedef double value_type;
307 x.fastAccessDx(i) = value_type(2.0+i);
315 TEST_EQUALITY_CONST( y.val(), value_type(1.5) );
317 TEST_EQUALITY_CONST( y.dx(i), value_type(2.0+i) );
321 value_type *null_ptr =
nullptr;
322 TEST_EQUALITY_CONST( x.size(), 0 );
323 TEST_EQUALITY_CONST( x.val(), value_type(1.5) );
324 TEST_EQUALITY( x.dx(), null_ptr );
329 typedef double value_type;
336 x.fastAccessDx(i) = value_type(2.0+i);
344 TEST_EQUALITY_CONST( y.val(), value_type(1.5) );
346 TEST_EQUALITY_CONST( y.dx(i), value_type(2.0+i) );
351 TEST_EQUALITY_CONST( x.val(), value_type(1.5) );
352 TEST_INEQUALITY( x.dx(), y.dx() );
354 TEST_EQUALITY_CONST( x.dx(i), value_type(2.0+i) );
360 typedef double value_type;
365 value_type x_val = value_type(1.5);
368 x_dx[i] = value_type(2.0+i);
377 TEST_EQUALITY_CONST( y.val(), value_type(1.5) );
379 TEST_EQUALITY_CONST( y.dx(i), value_type(2.0+i) );
384 TEST_EQUALITY_CONST( x.val(), value_type(1.5) );
385 TEST_INEQUALITY( x.dx(), y.dx() );
387 TEST_EQUALITY_CONST( x.dx(i), value_type(2.0+i) );
393 typedef double value_type;
399 value_type x_val = value_type(1.5);
402 x_dx[i] = value_type(2.0+i);
406 value_type y_val = value_type(0.5);
409 y_dx[i] = value_type(20.0+i);
415 TEST_EQUALITY_CONST( y.val(), value_type(1.5) );
416 TEST_EQUALITY( y.dx(), y_dx.data() );
418 TEST_EQUALITY_CONST( y.dx(i), value_type(2.0+i) );
423 TEST_EQUALITY_CONST( x.val(), value_type(1.5) );
424 TEST_EQUALITY( x.dx(), x_dx.data() );
426 TEST_EQUALITY_CONST( x.dx(i), value_type(2.0+i) );
432 int main(
int argc,
char* argv[] ) {
433 Teuchos::GlobalMPISession mpiSession(&argc, &argv);
434 return Teuchos::UnitTestRepository::runUnitTestsFromMain(argc, argv);
const int global_fad_size
GeneralFad< StaticStorage< T, Num > > SLFad
TEUCHOS_UNIT_TEST(Conversion, IsConvertible)
GeneralFad< DynamicStorage< T > > DFad
Forward-mode AD class templated on the storage for the derivative array.
int main(int argc, char *argv[])
GeneralFad< ViewStorage< T, static_length, static_stride, U > > ViewFad
GeneralFad< StaticFixedStorage< T, Num > > SFad