21 #ifndef FUB_CORE_ALGORITHM_HPP
22 #define FUB_CORE_ALGORITHM_HPP
29 template <
class T,
class Compare>
30 constexpr
const T&
clamp(
const T& v,
const T& lo,
const T& hi, Compare comp) {
31 return assert(!comp(hi, lo)), comp(v, lo) ? lo : comp(hi, v) ? hi : v;
35 constexpr
const T&
clamp(
const T& v,
const T& lo,
const T& hi) {
36 return clamp(v, lo, hi, std::less<>());
39 constexpr std::ptrdiff_t
ipow(
int base,
int exponent) {
40 std::ptrdiff_t prod{1};
41 while (exponent > 0) {
The fub namespace.
Definition: AnyBoundaryCondition.hpp:31
constexpr std::ptrdiff_t ipow(int base, int exponent)
Definition: algorithm.hpp:39
constexpr const T & clamp(const T &v, const T &lo, const T &hi, Compare comp)
Definition: algorithm.hpp:30