NuriKit v0.1.0b2
Loading...
Searching...
No Matches
utils.h File Reference
#include "nuri/eigen_config.h"
#include "nuri/meta.h"
Include dependency graph for utils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  nuri

Functions

template<class T, std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
constexpr T nuri::min (T a, T b)
template<class L, class R, std::enable_if_t< std::is_same_v< internal::remove_cvref_t< L >, internal::remove_cvref_t< R > > &&!std::is_trivially_copyable_v< internal::remove_cvref_t< L > > &&std::is_lvalue_reference_v< L > &&std::is_lvalue_reference_v< R >, int > = 0>
constexpr const std::remove_reference_t< L > & nuri::min (L &&a, R &&b)
template<class T, std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
constexpr T nuri::max (T a, T b)
template<class L, class R, std::enable_if_t< std::is_same_v< internal::remove_cvref_t< L >, internal::remove_cvref_t< R > > &&!std::is_trivially_copyable_v< internal::remove_cvref_t< L > > &&std::is_lvalue_reference_v< L > &&std::is_lvalue_reference_v< R >, int > = 0>
constexpr const std::remove_reference_t< L > & nuri::max (L &&a, R &&b)
template<class T, class Comp = std::less<>, std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
constexpr std::pair< T, T > nuri::minmax (T a, T b, Comp &&comp={})
template<class L, class R, class Comp = std::less<>, std::enable_if_t< std::is_same_v< internal::remove_cvref_t< L >, internal::remove_cvref_t< R > > &&!std::is_trivially_copyable_v< internal::remove_cvref_t< L > > &&std::is_lvalue_reference_v< L > &&std::is_lvalue_reference_v< R >, int > = 0>
constexpr std::pair< const std::remove_reference_t< L > &, const std::remove_reference_t< L > & > nuri::minmax (L &&a, R &&b, Comp &&comp={})
template<class T, std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
constexpr T nuri::clamp (T v, T l, T h)
template<class T, class L, class H, std::enable_if_t< std::is_same_v< internal::remove_cvref_t< T >, internal::remove_cvref_t< L > > &&std::is_same_v< internal::remove_cvref_t< L >, internal::remove_cvref_t< H > > &&!std::is_trivially_copyable_v< internal::remove_cvref_t< T > > &&std::is_lvalue_reference_v< T > &&std::is_lvalue_reference_v< L > &&std::is_lvalue_reference_v< H >, int > = 0>
constexpr const std::remove_reference_t< T > & nuri::clamp (T &&v, L &&l, H &&h)