Функция квадратного корня в Forth с использованием сборки x86?

StackOverflow https://stackoverflow.com/questions/2076509

  •  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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top