mlpack
3.4.2
mlpack-3.4.2
src
mlpack
core
math
clamp.hpp
Go to the documentation of this file.
1
11
#ifndef MLPACK_CORE_MATH_CLAMP_HPP
12
#define MLPACK_CORE_MATH_CLAMP_HPP
13
14
#include <stdlib.h>
15
#include <math.h>
16
#include <float.h>
17
18
namespace
mlpack
{
19
namespace
math {
20
28
inline
double
ClampNonNegative
(
const
double
d)
29
{
30
return
(d + fabs(d)) / 2;
31
}
32
40
inline
double
ClampNonPositive
(
const
double
d)
41
{
42
return
(d - fabs(d)) / 2;
43
}
44
53
inline
double
ClampRange
(
double
value,
54
const
double
rangeMin,
55
const
double
rangeMax)
56
{
57
value -= rangeMax;
58
value =
ClampNonPositive
(value) + rangeMax;
59
value -= rangeMin;
60
value =
ClampNonNegative
(value) + rangeMin;
61
return
value;
62
}
63
64
}
// namespace math
65
}
// namespace mlpack
66
67
#endif // MLPACK_CORE_MATH_CLAMP_HPP
mlpack::math::ClampRange
double ClampRange(double value, const double rangeMin, const double rangeMax)
Clamp a number between a particular range.
Definition:
clamp.hpp:53
mlpack
Linear algebra utility functions, generally performed on matrices or vectors.
Definition:
add_to_cli11.hpp:21
mlpack::math::ClampNonPositive
double ClampNonPositive(const double d)
Forces a number to be non-positive, turning positive numbers into zero.
Definition:
clamp.hpp:40
mlpack::math::ClampNonNegative
double ClampNonNegative(const double d)
Forces a number to be non-negative, turning negative numbers into zero.
Definition:
clamp.hpp:28
Generated by
1.8.20