Ocean
Loading...
Searching...
No Matches
TestApproximation.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_APPROXIMATION_H
9#define META_OCEAN_TEST_TESTMATH_APPROXIMATION_H
10
12
14
15namespace Ocean
16{
17
18namespace Test
19{
20
21namespace TestMath
22{
23
24/**
25 * This class implements a test of the approximation functions.
26 * @ingroup testmath
27 */
28class OCEAN_TEST_MATH_EXPORT TestApproximation
29{
30 public:
31
32 /**
33 * Tests all approximation functions.
34 * @param testDuration Number of seconds for each test, with range (0, infinity)
35 * @param selector The test selector
36 * @return True, if succeeded
37 */
38 static bool test(const double testDuration, const TestSelector& selector);
39
40 /**
41 * Tests the sqrt function for 8 bit integer values.
42 * @param testDuration Number of seconds for each test, with range (0, infinity)
43 * @return True, if succeeded
44 */
45 static bool testSqrt8(const double testDuration);
46
47 /**
48 * Tests the sqrt function for 16 bit integer values.
49 * @param testDuration Number of seconds for each test, with range (0, infinity)
50 * @return True, if succeeded
51 */
52 static bool testSqrt16(const double testDuration);
53
54 /**
55 * Tests the sqrt function for 17 bit integer values.
56 * @param testDuration Number of seconds for each test, with range (0, infinity)
57 * @return True, if succeeded
58 */
59 static bool testSqrt17(const double testDuration);
60
61 /**
62 * Tests the arc tangent function.
63 * @param testDuration Number of seconds for each test, with range (0, infinity)
64 * @return True, if succeeded
65 */
66 static bool testAtan2(const double testDuration);
67
68 /**
69 * Tests the exponential function exp(x) = e^x.
70 * @param testDuration Number of seconds for each test, with range (0, infinity)
71 * @return True, if succeeded
72 * @tparam T The data type of the value
73 * @tparam tHigherAccuracy True, to test the higer accuracy; False, to test the lower accuracy
74 */
75 template <typename T, bool tHigherAccuracy>
76 static bool testExp(const double testDuration);
77
78 private:
79
80 /**
81 * Validates the arc tangent function.
82 * @param testDuration Number of seconds for each test, with range (0, infinity)
83 * @return True, if succeeded
84 */
85 static bool validateAtan2(const double testDuration);
86};
87
88}
89
90}
91
92}
93
94#endif // META_OCEAN_TEST_TESTMATH_APPROXIMATION_H
This class implements a test of the approximation functions.
Definition TestApproximation.h:29
static bool testSqrt16(const double testDuration)
Tests the sqrt function for 16 bit integer values.
static bool testSqrt8(const double testDuration)
Tests the sqrt function for 8 bit integer values.
static bool test(const double testDuration, const TestSelector &selector)
Tests all approximation functions.
static bool testSqrt17(const double testDuration)
Tests the sqrt function for 17 bit integer values.
static bool validateAtan2(const double testDuration)
Validates the arc tangent function.
static bool testAtan2(const double testDuration)
Tests the arc tangent function.
static bool testExp(const double testDuration)
Tests the exponential function exp(x) = e^x.
This class implements a test selector that parses test function strings and determines which tests sh...
Definition TestSelector.h:51
The namespace covering the entire Ocean framework.
Definition Accessor.h:15