F X^Y
Команда F xy | |
F xy | |
Код команды | 24 |
Русская мнемоника | F xy |
Латинская мнемоника | F X^Y |
Группа команд | алгебраические функции |
Число операндов | двухместная, но схема перемещения чисел в стеке ближе к одноместной |
Нажимаемые клавиши | F ↔ |
Число шагов | 1 |
Признак перезаписи | сбрасывается |
Первое появление | Б3-34 |
Время выполнения | ? мкс (? КНОП) |
Скорость выполнения | ? команд/с |
Команда F xy (лат. F X^Y) «Возведение x в степень y» с кодом 24 вычисляет степенную функцию от содержимого регистра X. Показатель степени берётся из регистра Y. Старое содержимое регистра X помещается в регистр X1.
Если число в регистре X, возводимое в степень, отрицательное, команда Fxy приводит к аварийному останову.
Интересные факты
- F xy — это единственная двухместная команда, которая не убирает свой аргумент из регистра Y. Её картина перемещения чисел по стеку соответствует одноместной команде. Если после команды Fxy нажать Сx и набрать следующее число, его можно возвести в ту же степень, т.к. показатель степени сохранился в регистре Y.
- В ЭКВМ нет команды извлечения корня произвольной степени. Вместо неё можно использовать последовательность команд F1/x ↔ Fxy. Например, В↑ 5 F1/x ↔ Fxy извлекает корень пятой степени из числа в регистре X. Это справедливо благодаря формуле:
$\sqrt[n] x = x^{\frac{1}{n}}$
История
На советских ПМК команда F xy была одной из самых медленных и неточных, поэтому владельцы ПМК старались использовать её лишь в случае крайней необходимости — например, имитируя её с помощью нескольких умножений или последовательностью команд Fln × Fex . Последнее справедливо благодаря формуле:
$x^y = e^{y\cdot \ln x}$
В ПМК Б3-34 ранних выпусков команда F xy могла выполняться с ошибкой, если ей предшествовала какая-либо двухместная операция (кроме F xy), результат которой содержал в восьмом разряде мантиссы цифру 5 или 7. Для предотвращения этой ошибки перед операцией F xy можно было дважды выполнить операцию F 1/x.
Замеченные недостатки команды Fxy исправлены в ЭКВМ, но странный рисунок перемещения чисел по стеку было решено сохранить для совместимости с программами, написанными для советских ПМК.
Советская реализация
Из книги Я.К. Трохименко «Программируемые микрокалькуляторы. Устройство и пользование.» (стр. 143):
«Степенная функция xy при вводе оператора xy вычисляется по формуле xy = ey ln x в диапазоне аргумента x > 0 и y ln x < 100 ln 10, определяемом допустимым диапазоном изменения аргумента логарифмической функции ex и ln x. В связи с относительно большой программой, реализующей вычисления этой функции, результат содержит не менее 6 верных цифр, тогда как результаты вычисления ex и ln x содержат не менее 7 верных цифр. Время выполнения оператора xy также наибольшее по сравнению с вычислением других элементарных функций.
При вычислении элементарных функций в общем случае используется 10 членов разложения в цепную дробь базовых функций. Однако в зависимости от разрядности операндов при промежуточных вычислениях и значений приведенного аргумента в разложениях в цепную дробь используется от одного до 10 членов разложения в цепные дроби. Число цифр частных, получаемых при вычислении членов (звеньев) цепной дроби, также зависит от значения приведенного аргумента и изменяется от одной до восьми.»
Ссылки
- Команда F xy на сайте НПП «СЕМИКО», пункт 7.8
- Возведение в степень в Википедии
- См. также команды F 10x, F ex, F x², F √, F 1/x
- См. также символ "y"