Пр о ц е с с о р TMS 3 2 0C4 x
109
2.6.3.5. Функции ln(
x
) и log(
x
)
При вычислении функции ln(
x
) учитывается, что число
x
представлено в
формате плавающей точки
x
= f
⋅
2
N
.
Тогда
ln
x
= ln(
f
⋅
2
N
) = ln
f
+ ln 2
N
= ln
f
+ ln 2
⋅
log
2
2
N
= ln
f
+
N
ln 2.
Для нормализованного числа
x
величина мантиссы находится в диапазоне
0,5
≤
f
< 1. Вычисление ln
f
использует аппроксимирующие функции именно
для этого диапазона аргумента. Выделение экспоненты и мантиссы числа
x
производится с учетом скрытого разряда (см. п.1.7.2). Алгоритм вычисления
ln(
x
) показан на рис.2.30, программа – в прил.
Д
. Вычисление десятичного лога-
рифма log
10
(
x
) производится через натуральный логарифм по формуле
log
10
(
x
) = log
10
(
e
)
⋅
ln(
x
). Коэффициенты, используемые в аппроксимации:
a
0
= –0,5527074855;
b
0
= –6,632718214.
2.6.3.6. Функция exp(
x
)
При вычисление функции exp(
x
) осуществ-
ляется переход к показателю степени меньше ln 2,
при этом найденное значение будет давать ман-
тиссу результата.
( )
g N
Nx
N
Nx
N
Nx
N
N x
N
x
x
x
x
e
e
e
e e
× =
× =
=
⎟
⎠
⎞
⎜
⎝
⎛× =
× =
=
× = =
= =
−
−
−
−
2
2
2 2
2 2
2 2 2
2ln
2ln
2ln
1
2ln
2ln
2ln
2ln
2ln2ln
2ln
2ln
В качестве аппроксимации используется
четвертая подходящая дробь [9] вида
(
) (
)
(
) (
)
P
Q
a x a a x a x
a x a a x a x
( )
( )
4
4
2
2
0
3
3
1
2
2
0
3
3
1
=
+ +
+
+ −
+
,
которая преобразована в форму
0 5,
+
−
P
Q P
x P x
= +
1
3
0
x
= +
1
2
0 5,
,
где
P P
,
Q Q
.
Коэффициенты аппроксимации:
P
1
= 0,41602886268e–2; P
0
= 0,249999995; Q
1
= 0,49987178778e–1.
Алгоритм вычислений exp(
x
) показан на рис.2.31, полный текст программы - в
прил.
Д
.
N
= [ (
x
/ln 2 + 0,5) ]
P
=
g
(
P
1
z
+
P
0
)
g
=
x
–
N
ln 2,
z
=
g
2
Q
=
Q
1
z
+ 0,5
R
= 0,5 +
P
/(
Q
–
P
)
exp(
x
) =
R
⋅
2
N
exp(
x
)
Рис.2.31. Алгоритм exp(x)