aboutsummaryrefslogtreecommitdiff
path: root/include/armnnUtils/FloatingPointComparison.hpp
blob: 1e7b15a9828704effaf3d1bb392d08df0bc33912 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//
// Copyright © 2020 Arm Ltd. All rights reserved.
// SPDX-License-Identifier: MIT
//

#pragma once

#include <cmath>

namespace armnnUtils
{

/**
 * Compare two floats and return true if their values are within a specified tolerance of each other.
 * @param a
 * @param b
 * @param tolerancePercentage If not supplied default will be 1% tolerance (1.0f)
 * @return true if the value of float b is within tolerancePercentage of the value for float a.
 */
inline bool within_percentage_tolerance(float a, float b, float tolerancePercent = 1.0f)
{
    float toleranceValue = std::fabs(a * (tolerancePercent / 100));
    return std::fabs(a - b) <= toleranceValue;
}

} //namespace armnn