NumCpp
2.16.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::arange
NdArray< dtype > arange(dtype inStart, dtype inStop, dtype inStep=1)
Definition
arange.hpp:59
nc::uint8
std::uint8_t uint8
Definition
Types.hpp:42
include
NumCpp
Utils
power.hpp
Generated by
1.9.8