Пр о ц е с с о р TMS 3 2 0C4 x
105
ниях
x
, близких к
N
π
, возможно возникновение большой погрешности при вы-
числении
f
=
x
-
N
π
(см. п.2.6.1), поэтому вычитание осуществляется в две опе-
рации
f
= (
x
-
NC
1
) -
NC
2
, сначала грубо, затем точно, константа
C
1
≈
π
(с точно-
стью 10
-3
), а
С
2
=
π
–
С
1
. Этот прием используется во всех приведенных далее
алгоритмах. Последовательность вычислений sin(
x
) показана на рис.2.26,
а
, пол-
ный текст программы - в прил.
Д
.
При вычислении cos(
x
) используется свойство cos(
x
) = sin(
x
+
π
/2), измене-
ние аргумента учитывается при определении знака вычисляемого значения
функции и при приведении аргумента в диапазон аппроксимации [ -
π
/2,
π
/2 ].
Алгоритм вычислений функции cos(
x
) показан на рис.2.26,
б
, полный текст про-
граммы - в прил.
Д
.
нечетное
четное
x
<0
sign = –1
sign = 1
Определение кратности
аргумента
X
= |
x
|;
N
= [
X
/
π
+0,5 ]
N
Коррекция знака
sign = – sign
Приведение аргумента в диапазон
[ –
π
/2,
π
/2 ]
f
= (
X
–
NC
1
) –
NC
2
Вычисление полинома
q
=
f
2
;
rq
=
q
(
a
3
+
q
(
a
5
+
q
(
a
7
+
a
9
q
) ) )
sin(
x
) = sign
⋅
(
f
+
f
⋅
rq
)
да
нет
а
)
sin(
x
)
четное
нечетное
cos(
x
)
Определение кратности
аргумента
N
= [ (
X
+
π
/2)/
π
+ 0,5 ]
N
sign = –1
Приведение аргумента в диапазон
[ –
π
/2,
π
/2 ]
X
n
=
N
– 0,5;
f
= (
X
–
X
n
C
1
) –
X
n
C
2
Вычисление полинома
q
=
f
2
;
rq
=
q
(
a
3
+
q
(
a
5
+
q
(
a
7
+
a
9
q
) ) )
cos(
x
) = sign
⋅
(
f
+
f
⋅
rq
)
б
)
Определение модуля аргумента
X
= |
x
|
sign = 1
Рис.2.26. Алгоритмы вычисления функций sin(
x
) и cos(
x
)