Пр о ц е с с о р TMS 3 2 0C4 x
107
2.6.3.3. Функции arcsin(
x
), arccos(
x
)
Значения функций определены для диапазона аргумента [ –1, 1 ], при вы-
числениях используются свойства функций arcsin(–
x
) = –arcsin(
x
) и
arccos(-
x
) =
π
–arccos(
x
), т.е. фактически значения функций вычисляются на ин-
тервале [0, 1]. Интервал разбивается на два поддиапазона [0, 0,5] и ]0,5, 0], в ко-
торых используется одна аппроксимация, но для второго поддиапазона изменя-
ется аргумент. Коэффициенты аппроксимации:
P
2
= –0,504400557;
P
1
= 0,933935835;
Q
1
= –0,554846723e+1;
Q
0
= 0,560363004e+1.
Массивы констант:
a
[0] = 0;
a
[1] =
a
[2] =
π
/2 = 1,570796371;
b
[1] = 0;
b
[2] =
π
= 3,141593274.
Алгоритмы вычислений функций arcsin(
x
) и arccos(
x
) показаны на рис.2.28,
полные тексты программ приведены в прил.
Д
.
2.6.3.4. Функция arctg(
x
)
При вычислении функции arctg(
x
) используются свойства
acrtg(–
x
) = –arctg(
x
) и arctg(1/
x
) = arcctg(1/
x
) =
π
/2 – arctg(
x
). Модуль аргумента
функции приводится в диапазон [0, 1], который далее разбивается на два интер-
вала с разными значениями аргумента. Используется полиномиальная аппрок-
симация с коэффициентами:
arcsin(
x
)
нет
да
X
= |
x
|
X
>0,5
x
<0
да
нет
g
= (1–
X
) / 2,
X
= –2 sqrt(
g
),
i
= 1
g
=
X
2
,
i
= 0
P
= (
P
2
g
+
P
1
)
g
,
Q
= (
g
+
Q
1
)
g
+
Q
0
,
RES
=
X
+
XP
/
Q
RES
=
RES
+
a
[
i
]
RES
= –
RES
RES
= –
RES
а
)
arccos(
x
)
x
<0
да
нет
RES
+
a
[
i
]
b
[
i
] –
RES
б
)
нет
да
X
= |
x
|
X
>0,5
g
= (1–
X
) / 2,
X
= –2 sqrt(
g
),
i
= 1
g
=
X
2
,
i
= 2
P
= (
P
2
g
+
P
1
)
g
,
Q
= (
g
+
Q
1
)
g
+
Q
0
,
RES
=
X
+
XP
/
Q
Рис.2.28. Алгоритмы вычисления функций arcsin(x) и arccos(x)
I...,97,98,99,100,101,102,103,104,105,106 108,109,110,111,112,113,114,115,116,117,...186