Кто-нибудь знает, как работает функция std :: sqrt()? (или, по крайней мере, есть идея?)Как работает функция std :: sqrt()?
Я видел методы в Интернете, которые казались очень медленными, используя множество приближений и итераций.
Все знают, что функция sqrt() работает медленно, но я хотел бы знать, как работает один из std, поэтому я мог бы иметь смутное представление о том, когда это выгодно, чтобы избежать этого. (Да, если я хочу быть уверен, что могу профиль, но все равно приятно иметь смутное представление)
EDIT: Не действительно сформулировать вопрос слишком хорошо ... Что меня интересует:
- Как бы выглядела самая быстрая функция C++, вычисляющая квадратный корень? (более или менее, я просто хочу знать фактическую логику за ним)
Использование константы Кармака: P – moshbear
Ленточный ответ заключается в том, что для вычисления квадратного корня из значения с плавающей запятой существует, вероятно, аппаратная (FPU) инструкция. Но, конечно, существуют эмуляции программного обеспечения. –
@moshbear the wut: O – xcrypt