Как получить точность high_resolution_clock?

Реализация b ^ p с бинарным возведением в степень

def power(b, p):
    """
    Calculates b^p
    Complexity O(log p)
    b -> double
    p -> integer
    res -> double
    """
    res = 1

    while p:
        if p & 0x1: res *= b
        b *= b
        p >>= 1

    return res
23
задан R. Martinho Fernandes 1 February 2012 в 02:27
поделиться

2 ответа

Минимальная представимая длительность составляет high_resolution_clock::period::num / high_resolution_clock::period::den секунд. Вы можете напечатать это так:

std::cout << (double) std::chrono::high_resolution_clock::period::num
             / std::chrono::high_resolution_clock::period::den;

Почему это? Член часов ::period определяется как «Тиковый период часов в секундах». Это специализация std::ratio, которая представляет собой шаблон для представления отношений во время компиляции. Он обеспечивает две интегральные константы: num и den, числитель и знаменатель дроби, соответственно.

26
ответ дан R. Martinho Fernandes 1 February 2012 в 02:27
поделиться

Тип std::ratio, представляющий период тика часов, в секундах. Определен в пространстве имен std::chrono

template<intmax_t Num, intmax_t Denom = 1 > class ratio;
2
ответ дан Yappie 1 February 2012 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: