RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
Namespaces | Functions
math.hpp File Reference

Header file providing RAJA math templates. More...

#include "RAJA/config.hpp"
#include <type_traits>
#include <climits>

Go to the source code of this file.

Namespaces

 RAJA
 

Functions

template<typename T , std::enable_if_t< std::is_integral< T >::value > * = nullptr>
RAJA_HOST_DEVICE constexpr RAJA_INLINE T RAJA::log2 (T n) noexcept
 evaluate log base 2 of n More...
 
template<typename T , std::enable_if_t< std::is_integral< T >::value > * = nullptr>
RAJA_HOST_DEVICE constexpr RAJA_INLINE T RAJA::next_pow2 (T n) noexcept
 "round up" to the next greatest power of 2 More...
 
template<typename T , std::enable_if_t< std::is_integral< T >::value > * = nullptr>
RAJA_HOST_DEVICE constexpr RAJA_INLINE T RAJA::prev_pow2 (T n) noexcept
 "round down" to the largest power of 2 that is less than or equal to n More...
 
template<typename L , typename R , std::enable_if_t< std::is_integral< L >::value &&std::is_integral< R >::value > * = nullptr>
RAJA_HOST_DEVICE constexpr RAJA_INLINE auto RAJA::power_of_2_mod (L lhs, R rhs) noexcept
 compute lhs mod rhs where lhs is non-negative and rhs is a power of 2 More...
 

Detailed Description

Header file providing RAJA math templates.