BAN: Math now uses template concepts and add div_round_up

This commit is contained in:
Bananymous 2023-02-19 00:48:56 +02:00
parent eacf551d0f
commit 66a4b69a29
1 changed files with 10 additions and 2 deletions

View File

@ -1,5 +1,7 @@
#pragma once #pragma once
#include <BAN/Traits.h>
namespace BAN::Math namespace BAN::Math
{ {
@ -21,7 +23,7 @@ namespace BAN::Math
return x < min ? min : x > max ? max : x; return x < min ? min : x > max ? max : x;
} }
template<typename T> template<integral T>
T gcd(T a, T b) T gcd(T a, T b)
{ {
T t; T t;
@ -34,10 +36,16 @@ namespace BAN::Math
return a; return a;
} }
template<typename T> template<integral T>
T lcm(T a, T b) T lcm(T a, T b)
{ {
return a / gcd(a, b) * b; return a / gcd(a, b) * b;
} }
template<integral T>
T div_round_up(T a, T b)
{
return (a + b - 1) / b;
}
} }