ProteoWizard
pwiz
utility
misc
almost_equal.hpp
Go to the documentation of this file.
1
//
2
// $Id$
3
//
4
//
5
// Original author: Darren Kessner <darren@proteowizard.org>
6
//
7
// Copyright 2009 Center for Applied Molecular Medicine
8
// University of Southern California, Los Angeles, California
9
//
10
// Licensed under the Apache License, Version 2.0 (the "License");
11
// you may not use this file except in compliance with the License.
12
// You may obtain a copy of the License at
13
//
14
// http://www.apache.org/licenses/LICENSE-2.0
15
//
16
// Unless required by applicable law or agreed to in writing, software
17
// distributed under the License is distributed on an "AS IS" BASIS,
18
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
// See the License for the specific language governing permissions and
20
// limitations under the License.
21
//
22
23
24
#ifndef _ALMOST_EQUAL_HPP_
25
#define _ALMOST_EQUAL_HPP_
26
27
28
#include <limits>
29
#include <cmath>
30
31
32
namespace
pwiz
{
33
namespace
util {
34
35
36
template
<
typename
float
_type>
37
bool
almost_equal
(float_type a, float_type b,
int
multiplier = 1)
38
{
39
float_type scale = a==float_type(0.0) ? float_type(1.0) : a;
40
return
std::abs((a-b)/scale) < float_type(multiplier) * std::numeric_limits<float_type>::epsilon();
41
}
42
43
44
}
// namespace util
45
}
// namespace pwiz
46
47
48
#endif
// _ALMOST_EQUAL_HPP_
49
50
pwiz::util::almost_equal
bool almost_equal(float_type a, float_type b, int multiplier=1)
Definition
almost_equal.hpp:37
pwiz
Definition
ChromatogramList_Filter.hpp:36
Generated by
1.9.8