maths: add integer power operation
This commit is contained in:
parent
d3c300053b
commit
4260c91cd0
@ -37,6 +37,11 @@ pow2 [[gnu::pure]] (T value)
|
|||||||
{ return value * value; }
|
{ return value * value; }
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T
|
||||||
|
pow (T x, unsigned y);
|
||||||
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
bool
|
bool
|
||||||
is_pow2 [[gnu::pure]] (T value);
|
is_pow2 [[gnu::pure]] (T value);
|
||||||
|
14
maths.ipp
14
maths.ipp
@ -34,3 +34,17 @@ align (T value, U size) {
|
|||||||
|
|
||||||
return divup (value, size) * size;
|
return divup (value, size) * size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
template <typename T>
|
||||||
|
T
|
||||||
|
pow (T x, unsigned y)
|
||||||
|
{
|
||||||
|
T v = 1;
|
||||||
|
|
||||||
|
for (unsigned i = 1; i <= y; ++i)
|
||||||
|
v *= x;
|
||||||
|
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user