Мне просто было интересно, как работает функция pow
библиотеки math.h
, реализует ли она простейший последовательный алгоритм или использует еще один?
Я просто знаю алгоритм повторного возведения в квадрат, который сообщает O (log n), может быть, это алгоритм, реализованный функцией pow
?
Поэтому я просто провел несколько тестов с использованием последовательного алгоритма против pow
и обнаружил, что первая версия почти в 3 раза быстрее второй. Действительно ли вызывающие функции так сильно наказывают за выполнение этого теста? Почему?
Любые другие комментарии, объясняющие, что происходит, или как реализовано pow
, приветствуются.
РЕДАКТИРОВАТЬ: я ошибался, pow
в 3 раза быстрее последовательного алгоритма.
pow()
работает с числами с плавающей запятой. - person SLaks   schedule 31.12.2013pow
, вероятно, менее общий и менее точный. - person zch   schedule 31.12.2013pow(2, 0.5)
и правильно ли возвращает квадратный корень из 2? - person Ted Hopp   schedule 31.12.2013