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

Я не знаю много о блоке, но я вполне уверен, что существуют инструкции по квадратному корню относительно x86? Я пытаюсь заставить функцию квадратного корня работать хорошо в пене и той, которую я нашел, увязает так или иначе, когда я много раз выполняю его.

: sqrt-closer ( square guess -- square guess adjustment)
2dup / over - 2 /
;

: sqrt ( square -- root )
1 begin
sqrt-closer dup
while + repeat
drop nip ;
6
задан Will 16 January 2010 в 07:08
поделиться

2 ответа

Существует инструкция квадратного корня с плавающей точкой (FSQRT). Это довольно быстро, даже если вам нужен только целочисленный квадратный корень.

4
ответ дан 10 December 2019 в 00:38
поделиться
-- 2913852-

Посмотрите здесь:

http://www.azillionmonkeys.com/qed/sqroot.html

Все, что вы когда-либо хотели знать о квадратных корнях, но боялись спросить. Содержит реализацию на языке сборки x86.

6
ответ дан 10 December 2019 в 00:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: