Вы, скорее всего, добьетесь большего улучшения скорости, изменив свои алгоритмы , чем изменив их реализации : попробуйте звонить на sqrt()
меньше, вместо того, чтобы делать звонки быстрее. (И если вы считаете, что это невозможно - улучшения для sqrt()
, о которых вы упомянули, состоят в следующем: улучшения алгоритма , используемого для вычисления квадратного корня.)
Поскольку он используется очень часто, вполне вероятно, что реализация вашей стандартной библиотеки sqrt()
почти оптимальна для общего случая. Если у вас нет ограниченного домена (например, если вам нужна меньшая точность), где алгоритм может использовать несколько ярлыков, очень маловероятно, что кто-то придумает реализацию, которая будет быстрее.
Обратите внимание, что, поскольку эта функция использует 10% вашего времени выполнения, даже если вам удастся придумать реализацию, которая занимает всего 75% времени std::sqrt()
, это все равно приведет только к сокращению времени выполнения на 2,5% * * 1016. Для большинства приложений пользователи даже не заметят этого, если не использовать часы для измерения.