Ocean
TestAutomaticDifferentiation.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) Meta Platforms, Inc. and affiliates.
3  *
4  * This source code is licensed under the MIT license found in the
5  * LICENSE file in the root directory of this source tree.
6  */
7 
8 #ifndef META_OCEAN_TEST_TESTMATH_TEST_AUTOMATIC_DIFFERENTIATION_H
9 #define META_OCEAN_TEST_TESTMATH_TEST_AUTOMATIC_DIFFERENTIATION_H
10 
12 
13 namespace Ocean
14 {
15 
16 namespace Test
17 {
18 
19 namespace TestMath
20 {
21 
22 /**
23  * This class implements a test for the automatic differentiation functionalities.
24  * @ingroup testmath
25  */
26 class OCEAN_TEST_MATH_EXPORT TestAutomaticDifferentiation
27 {
28  public:
29 
30  /**
31  * Tests all automatic differentiation functions.
32  * @param testDuration Number of seconds for each test, with range (0, infinity)
33  * @return True, if succeeded
34  */
35  static bool test(const double testDuration);
36 
37  /**
38  * Tests the automatic differentiation of simple functions.
39  * @param testDuration Number of seconds for each test, with range (0, infinity)
40  * @return True, if succeeded
41  * @tparam T The data type to be used
42  */
43  template <typename T>
44  static bool testSimple(const double testDuration);
45 
46  /**
47  * Tests the automatic differentiation of mathematic functions.
48  * @param testDuration Number of seconds for each test, with range (0, infinity)
49  * @return True, if succeeded
50  * @tparam T The data type to be used
51  */
52  template <typename T>
53  static bool testFunctions(const double testDuration);
54 
55  /**
56  * Tests the automatic differentiation of nested functions.
57  * @param testDuration Number of seconds for each test, with range (0, infinity)
58  * @return True, if succeeded
59  * @tparam T The data type to be used
60  */
61  template <typename T>
62  static bool testNested(const double testDuration);
63 
64  /**
65  * Tests the automatic differentiation for the homography function.
66  * @param testDuration Number of seconds for each test, with range (0, infinity)
67  * @return True, if succeeded
68  * @tparam T The data type to be used
69  */
70  template <typename T>
71  static bool testHomography(const double testDuration);
72 
73  /**
74  * Tests the automatic differentiation for the 6-DOF camera pose function.
75  * @param testDuration Number of seconds for each test, with range (0, infinity)
76  * @return True, if succeeded
77  * @tparam T The data type to be used
78  */
79  template <typename T>
80  static bool testPose(const double testDuration);
81 };
82 
83 }
84 
85 }
86 
87 }
88 
89 #endif // META_OCEAN_TEST_TESTMATH_TEST_AUTOMATIC_DIFFERENTIATION_H
This class implements a test for the automatic differentiation functionalities.
Definition: TestAutomaticDifferentiation.h:27
static bool test(const double testDuration)
Tests all automatic differentiation functions.
static bool testFunctions(const double testDuration)
Tests the automatic differentiation of mathematic functions.
static bool testNested(const double testDuration)
Tests the automatic differentiation of nested functions.
static bool testHomography(const double testDuration)
Tests the automatic differentiation for the homography function.
static bool testSimple(const double testDuration)
Tests the automatic differentiation of simple functions.
static bool testPose(const double testDuration)
Tests the automatic differentiation for the 6-DOF camera pose function.
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15