Функция квадратного корня в Forth с использованием сборки x86?
-
21-09-2019 - |
Вопрос
Я не очень разбираюсь в сборке, но я почти уверен, что на x86 есть инструкции с квадратным корнем?Я пытаюсь заставить функцию квадратного корня хорошо работать в froth, и та, которую я нашел, каким-то образом увязает, когда я запускаю ее много раз.
: sqrt-closer ( square guess -- square guess adjustment)
2dup / over - 2 /
;
: sqrt ( square -- root )
1 begin
sqrt-closer dup
while + repeat
drop nip ;
Решение
Существует инструкция по извлечению квадратного корня с плавающей запятой (ФСКРТ).Это довольно быстро, даже если вам нужен только целый квадратный корень.
Другие советы
Посмотри сюда:
http://www.azillionmonkeys.com/qed/sqroot.html
Все, что вы когда-либо хотели знать о квадратных корнях, но боялись спросить.Содержит реализацию на языке ассемблера x86.
Не связан с StackOverflow