WPILibC++
2024.3.2
sgn.hpp
Go to the documentation of this file.
1
/*################################################################################
2
##
3
## Copyright (C) 2016-2023 Keith O'Hara
4
##
5
## This file is part of the GCE-Math C++ library.
6
##
7
## Licensed under the Apache License, Version 2.0 (the "License");
8
## you may not use this file except in compliance with the License.
9
## You may obtain a copy of the License at
10
##
11
## http://www.apache.org/licenses/LICENSE-2.0
12
##
13
## Unless required by applicable law or agreed to in writing, software
14
## distributed under the License is distributed on an "AS IS" BASIS,
15
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
## See the License for the specific language governing permissions and
17
## limitations under the License.
18
##
19
################################################################################*/
20
21
#ifndef _gcem_sgn_HPP
22
#define _gcem_sgn_HPP
23
24
namespace
gcem
25
{
26
27
/**
28
* Compile-time sign function
29
*
30
* @param x a real-valued input
31
* @return a value \f$ y \f$ such that \f[ y = \begin{cases} 1 \ &\text{ if } x > 0 \\ 0 \ &\text{ if } x = 0 \\ -1 \ &\text{ if } x < 0 \end{cases} \f]
32
*/
33
34
template
<
typename
T>
35
constexpr
36
int
37
sgn
(
const
T x)
38
noexcept
39
{
40
return
(
// positive
41
x > T(0) ? 1 :
42
// negative
43
x < T(0) ? -1 :
44
// else
45
0 );
46
}
47
48
}
49
50
#endif
gcem
Definition:
is_even.hpp:29
gcem::sgn
constexpr int sgn(const T x) noexcept
Compile-time sign function.
Definition:
sgn.hpp:37
thirdparty
gcem
include
gcem_incl
sgn.hpp
Generated on Wed Mar 13 2024 05:20:41 for WPILibC++ by
1.9.4