Main Page
Namespaces
Classes
Files
File List
File Members
src
tools
MathToolbox.cpp
Go to the documentation of this file.
1
//
2
// MathToolbox.cpp
3
//
4
//
5
// Math functions.
6
//
8
9
#include "
MathToolbox.hpp
"
10
#include <limits>
11
12
13
const
double
NaN_double
= std::numeric_limits<double>::quiet_NaN();
14
//const float NaN = std::numeric_limits<float>::quiet_NaN();
15
19
double
hypot
(
double
x,
double
y,
double
z)
20
{
21
return
sqrt(x*x + y*y + z*z);
22
}
23
24
31
double
normalizeRadians
(
double
radians)
32
{
33
if
(std::abs(radians) >
PI
)
34
{
35
// For numerical stability we must use this sin/cos/atan2
36
// implementation even though it might consume more cycles.
37
// Note that radians = -pi converts to atan2(0,-1) = +pi!
38
radians = std::atan2 (std::sin(radians), std::cos(radians));
39
// radians now in (-pi,+pi]
40
}
41
if
(radians ==
PI
)
// equality of doubles ... just for the sake of completeness
42
{
43
// Convert half-open interval from (-pi,+pi] to [-pi,+pi)
44
radians = -
PI
;
45
}
46
return
radians;
47
}
NaN_double
const double NaN_double
Not-a-Number in double precision.
Definition:
MathToolbox.cpp:13
MathToolbox.hpp
hypot
double hypot(double x, double y, double z)
Definition:
MathToolbox.cpp:19
normalizeRadians
double normalizeRadians(double radians)
Definition:
MathToolbox.cpp:31
PI
#define PI
Definition:
BasicDatatypes.hpp:34
libsick_ldmrs
Author(s): SICK AG
, Martin Günther
, Jochen Sprickerhof
autogenerated on Mon Oct 26 2020 03:27:30