Group Metaprogramming Math
Metafunctions for mathematical computations.

Grouped Metafunction Overview

Grouped Metafunctions Detail

uint64_t Log2<NUMERUS>::VALUE;

Compute ceiled logarithm to base 2 using metaprogramming.

Template Parameters

NUMERUS int64_t value to use for the numerus.

Returns

uint64_t ceil(log2(NUMERUS))

Example

    std::cout << Log2<10>::VALUE << "\n";  // => "4"

uint64_t Log2Floor<NUMERUS>::VALUE;

Compute floored logarithm to base 2 using metaprogramming.

Template Parameters

NUMERUS int64_t value to use for the numerus.

Returns

uint64_t floor(log2(NUMERUS))

Example

    std::cout << Log2Floor<10>::VALUE << "\n";  // => "3""

uint64_t Power<BASE, EXPONENT>::VALUE;

Compute power of a number.

Template Parameters

BASE The base of the term (int64_t).
EXPONENT The exponent of the term (int64_t).

Returns

uint64_t BASEEXPONENT
    std::cout << Power<2, 4>::VALUE << "\n";  // => "16"