25#ifndef _gcem_pow_integral_HPP
26#define _gcem_pow_integral_HPP
31template<
typename T1,
typename T2>
37template<
typename T1,
typename T2>
43 return( exp_term > T2(1) ? \
47 (exp_term == T2(1) ? val*base : val) );
50template<typename T1, typename T2, typename std::enable_if<std::is_signed<T2>::value>
::type* =
nullptr>
56 return( exp_term < T2(0) ? \
63template<typename T1, typename T2, typename std::enable_if<!std::is_signed<T2>::value>
::type* =
nullptr>
72template<
typename T1,
typename T2>
78 return( exp_term == T2(3) ? \
90 GCLIM<T1>::infinity() :
95template<typename T1, typename T2, typename std::enable_if<std::is_integral<T2>::value>
::type* =
nullptr>
104template<typename T1, typename T2, typename std::enable_if<!std::is_integral<T2>::value>
::type* =
nullptr>
117template<
typename T1,
typename T2>
type
Definition: core.h:575
constexpr common_t< T1, T2 > max(const T1 x, const T2 y) noexcept
Compile-time pairwise maximum function.
Definition: max.hpp:35
constexpr common_t< T1, T2 > min(const T1 x, const T2 y) noexcept
Compile-time pairwise minimum function.
Definition: min.hpp:35
long long int llint_t
Definition: gcem_options.hpp:71
Definition: Eigen_Colamd.h:50
constexpr T1 pow_integral_compute(const T1 base, const T2 exp_term) noexcept
Definition: pow_integral.hpp:75
constexpr T1 pow_integral_sgn_check(const T1 base, const T2 exp_term) noexcept
Definition: pow_integral.hpp:53
constexpr T1 pow_integral(const T1 base, const T2 exp_term) noexcept
Definition: pow_integral.hpp:120
constexpr T1 pow_integral_compute_recur(const T1 base, const T1 val, const T2 exp_term) noexcept
Definition: pow_integral.hpp:40
constexpr T1 pow_integral_type_check(const T1 base, const T2 exp_term) noexcept
Definition: pow_integral.hpp:98
constexpr bool is_odd(const llint_t x) noexcept
Definition: is_odd.hpp:33