NumCpp
2.17.0
A Templatized Header Only C++ Implementation of the Python NumPy Library
Loading...
Searching...
No Matches
Utils/power.hpp
Go to the documentation of this file.
1
28
#pragma once
29
30
#include <complex>
31
32
#include "
NumCpp/Core/Internal/StaticAsserts.hpp
"
33
#include "
NumCpp/Core/Types.hpp
"
34
35
namespace
nc::utils
36
{
37
//============================================================================
45
template
<
typename
dtype>
46
dtype
power
(dtype inValue,
uint8
inPower)
noexcept
47
{
48
STATIC_ASSERT_ARITHMETIC_OR_COMPLEX
(dtype);
49
50
if
(inPower == 0)
51
{
52
return
static_cast<
dtype
>
(1);
53
}
54
55
dtype returnVal = inValue;
56
for
(
uint8
exponent = 1; exponent < inPower; ++exponent)
57
{
58
returnVal *= inValue;
59
}
60
return
returnVal;
61
}
62
}
// namespace nc::utils
StaticAsserts.hpp
STATIC_ASSERT_ARITHMETIC_OR_COMPLEX
#define STATIC_ASSERT_ARITHMETIC_OR_COMPLEX(dtype)
Definition
StaticAsserts.hpp:56
Types.hpp
nc::utils
Definition
Utils/cube.hpp:33
nc::utils::power
dtype power(dtype inValue, uint8 inPower) noexcept
Definition
Utils/power.hpp:46
nc::uint8
std::uint8_t uint8
Definition
Types.hpp:42
include
NumCpp
Utils
power.hpp
Generated by
1.15.0