libjmmcg
release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
|
#include "config.h"
#include "debug_defines.hpp"
#include <boost/static_assert.hpp>
#include <functional>
Go to the source code of this file.
Namespaces | |
namespace | jmmcg |
Link with -lrt to include these functions. | |
namespace | jmmcg::LIBJMMCG_VER_NAMESPACE |
namespace | jmmcg::LIBJMMCG_VER_NAMESPACE::binary_right_to_left |
An implementation of the binary-right-to-left method of exponentiation for raising a number to positive, integer power. | |
namespace | jmmcg::LIBJMMCG_VER_NAMESPACE::binary_right_to_left::dyn |
For types for which operator*() cannot be computed at compile-time, this variant unrolls the exponentiation at compile-time. | |
namespace | jmmcg::LIBJMMCG_VER_NAMESPACE::binary_right_to_left::mpl |
For types for which operator*() can be computed at compile-time, this variant computes the entire exponentiation at compile-time. | |
namespace | jmmcg::LIBJMMCG_VER_NAMESPACE::binary_right_to_left::mpl::private_ |
Functions | |
template<long P, typename V > | |
jmmcg::LIBJMMCG_VER_NAMESPACE::__attribute__ ((const)) const V __fastcall FORCE_INLINE pow(const V v) | |
At compile-time, using the binary-right-to-left method, unroll the exponentiation of raising the value V to the integer power of P. More... | |