Слово √

Материал из ПМК вики
Перейти к навигации Перейти к поиску

(квадратный корень) — традиционное слово Каллисто. Извлечение квадратного корня.

√              ( p -- x )                      Квадратный корень. x ← √p
Пример работы слова √

x — корень второй степени из p. Аргумент p должен быть больше нуля либо равен нулю.

Ввод слова √[править]

В режиме NUM последовательно нажмите две клавиши  F    

FSQRT в стандарте ANS Forth[править]

12.6.2.1618   FSQRT                   "f-square-root"              FLOATING EXT
           ( F: r1 -- r2 ) or ( r1 -- r2 )
           r2 - квадратный корень r1. Неопределенная ситуация существует, если 
           r1 - меньше нуля.

История[править]

Впервые слово √ под именем SQRT появилось в Форте 1971-73 годах, когда Чак Мур перенёс транслятор на DEC PDP-11 в National Radio Astronomy Observatory (англ., Шарлотсвилл). Слово SQRT работало только с целыми числами и получало 16-битный результат из 32-битного аргумента.

В Форте FSP88 и MMSFORTH слово √ было известно под именем SQR

В Каллисто имя √ восходит к надписи на клавиатуре советского ПМК «Электроника Б3-34», выпущенного в 1980 году.

Реализация[править]

Слово √ является «обёрткой» вокруг команды ЭКВМ F √.

Квадратный корень не определён для отрицательных чисел. Обработка этой ошибки производится встроенной программой. Например, последовательность слов  -1 √  вызывает аварийный останов Каллисто с сообщением «Неверный аргумент» в строке комментариев. Можно ввести с клавиатуры произвольное число в качестве значения «$\sqrt{-1}$» и вернуться в Каллисто, нажав  С/П . Подробнее см. статью Авост Каллисто.

В случае аварийного останова рекомендуется произвести «холодную перезагрузку» Каллисто с удалением всех введённых слов, нажав последовательно клавиши  В/О   С/П .

1606 ;#FSQRT
1607 ; √                ( p −− p1 )                          Квадратный корень. p1 := sqrt p
1608 LSQRT:          .DB     1,251                   ; ( r −− sqrt r )
1609                 .DW     LX2
1610 SQRT:           .DW     JSQRT
1611 JSQRT:          PKRM03 FSQRT PKM03  KGOTO9      ; Обёртка вокруг FSQRT.

Реализация из SP-Forth 4.20:

CODE FSQRT
       FSQRT
       RET
END-CODE

Ссылки[править]


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.