Skip to content

Commit 0a5cccb

Browse files
committed
feat: added floorDiv, ceilDiv
1 parent 4fb15e5 commit 0a5cccb

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

src/alfred/math/utils.hpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,24 @@ std::pair<std::vector<int>, std::vector<int>> euler_sieve(int n) {
7474
return std::make_pair(primes, minp);
7575
}
7676

77+
template <class T>
78+
inline T ceilDiv(T n, T m) {
79+
if (m < 0) m = -m, n = -n;
80+
if (n >= 0) {
81+
return (n + m - 1) / m;
82+
} else {
83+
return n / m;
84+
}
85+
}
86+
87+
template <class T>
88+
inline T floorDiv(T n, T m) {
89+
if (m < 0) m = -m, n = -n;
90+
if (n >= 0) {
91+
return n / m;
92+
} else {
93+
return (n - m + 1) / m;
94+
}
95+
}
96+
7797
#endif // AFMT_UTIL

0 commit comments

Comments
 (0)