Контрольная работа: Дополнительные арифметические команды

←ST(1)

←ST(0)

←ST(1)

←ST(0)

←ST(1)

←ST(0)

←ST(1)

←ST(0)

←ST(1)

←ST(0)

Команда FYL2X вычисляет функцию: ST(1) * log2 ST(0). Два операнда извлекаются из стека, а затем результат включается в стек. Поэтому УКАЗАТЕЛЬ СТЕКА УВЕЛИЧИТСЯ НА 1. В команде требуется удовлетворение естественного для логарифмической функции условия:

ST(0) > 0.

Значения других логарифмических функций вычисляются по формулам в табл. 5 с загрузкой в регистр ST(1) необходимых констант командами: FLDLN2 и FLDLG2.

Таблица 5 - Формулы для вычисления логарифмических функций

log2 (x) ® FLD1; FLD x; FYL2X;

ln (x) = ln (2) * log2 (x) ® FLDLN2; FLD x; FYL2X;

lg (x) = lg (2) * log2 (x) ® FLDLG2; FLD x; FYL2X.


Еще одна логарифмическая команда FYL2XP1 вычисляет функцию: ST(1) * log2 (ST(0) + 1). Причина появления этой команды заключается в получении более высокой точности вычисления функции: log(1 + x). Эта функция часто встречается в финансовых расчетах, а также при вычислении обратных гиперболических функций.

Команда показательной функции F2XM1 вычисляет:

F2XM1 [ST(0)] = 2(ST(0)) – 1.

Аргумент показательной функции должен находится в диапазоне: для сопроцессоров 87/287: 0 <= ST(0) <= 0.5;

для сопроцессоров 387+: –1 <= ST(0) <= +1.

Вычисление функции 2х – 1 вместо функции 2х позволяет избежать потери точности, когда аргумент «х» близок к 0 (а значение функции 2х близко к 1). Остальные показательные функции вычисляются по формулам в табл. 6.

Таблица 6 – Формулы для вычисления показательных функций

2x = [2x – 1] + 1 = F2XM1 (x) + 1;

ex = 1 + [2(x * log2(e)) – 1] = 1 + F2XM1 (x * log2 (e));

10x = 1 + [2(x * log2(10)) – 1] = 1 + F2XM1 (x * log2 (10));

аx = 1 + [2(x * log2( а )) – 1] = 1 + F2XM1 (x * log2 (a)).

Таблица 7 – Формулы для вычисления гиперболических функций

Cинус гиперболический
Косинус гиперболический
Тангенс гиперболический
Котангенс гиперболический
Косеканс гиперболический
Секанс гиперболический

К-во Просмотров: 192
Бесплатно скачать Контрольная работа: Дополнительные арифметические команды