Адаптивные экономичные асинхронные итерационные методы “цифра за цифрой”

УДК 518.5 Г.С.ТЕСЛЕР

АДАПТИВНЫЕ ЭКОНОМИЧНЫЕ АСИНХРОННЫЕ ИТЕРАЦИОННЫЕ МЕТОДЫ «ЦИФРА ЗА ЦИФРОЙ»

1. Состояние проблемы

При аппаратной реализации алгоритмов вычисления функций важную роль играют методы “цифра за цифрой”. Методы “цифра за цифрой” позволяют последовательно получить очередную цифру результата в заданной системе счисления. Эти методы восходят к алгоритму Г.Бригса (1624 г.) вычисления логарифмической функции. Бурное развитие данных методов связано с появлением работ Д.Волдера [1] и Д.Меджита [2]. Большое число исследователей внесло свой вклад в развитие и модернизацию этих методов, обширная библиография по ним приведена в работах [3,4]. В основном, исследования и модернизация методов “цифра за цифрой” производятся в части их обобщения на произвольную систему счисления, оценки сходимости методов, исследования погрешности, оценки времени вычисления, определения аппаратных затрат, асинхронной организации процесса вычислений, использования избыточных систем счисления для сокращения времени счета и получения результата старшими разрядами вперед, сокращения числа итераций за счет использования завершающих приближений, расширения областей применения этих методов и т.д. В последнее время проведена модернизация методов на случай реализации на параллельных ВС [5,6]. На данную тему защищены кандидатские и докторские диссертации как у нас в стране, так и за рубежом. В настоящее время осуществлена реализация этих методов в БИС и СБИС.

Одной из причин широкого распространения методов Волдера и Меджита является то обстоятельство, что для их реализации требуется простой набор операций: сдвиги, сложение (вычитание), определение знака числа и выборки из памяти. Помимо этого, разработчиков данных методов привлекает прямая зависимость числа итераций от числа разрядов в представлении искомой функции. Для эффективной реализации методов “цифра за цифрой” необходимо использование сдвигателей на произвольное число разрядов, специальной структуры АЛУ, а также для вычисления большинства функций - наличие ЗУ с малым временем выборки. В последнем случае эти методы являются разновидностью таблично - алгоритмических методов. В силу последнего обстоятельства они могут быть использованы для ЭВМ, работающих с фиксированной и переменной разрядностью, например, для одинарной и двойной точности, но их нельзя использовать для счета с произвольной разрядностью. Появление умножителей и делителей, выполненных на комбинационных схемах, позволило значительно сократить время выполнения этих операций, что в ряде случаев сделало более предпочтительным для вычисления функций использование многочленной и дробно-рациональной аппроксимации. Помимо этого, увеличение объемов ЗУ и сокращение времени выборки из них сделало целесообразным использование методов сегментной аппроксимации. Как уже отмечалось выше, для эффективной реализации алгоритмов, реализующих методы “цифра за цифрой”, целесообразно использовать АЛУ со специфической структурой. Все это вынудило искать дополнительные средства для ускорения методов типа “цифра за цифрой”. Эти средства ускорения используют следующие факторы: организацию асинхронного режима счета, использование избыточных систем счисления, использование начальных и завершающих приближений, замену целых этапов вычислений на выборку из таблиц их значений, а также параллельное выполнение определенных участков алгоритма.

Такой подход, состоящий из сочетания метода “цифра за цифрой” с другими методами вычисления функций, назовем комбинированным. Комбинированный подход использует несколько методов и является ©Теслер Г. С., 1999

1028-9763. Математические машины и системы, 1999, №1 43

для определенных областей применения более эффективным, чем каждый из составляющих его методов. Обычно на практике используются комбинированные методы, сочетающие на первом этапе вычислений прямые методы счета для нахождения начального приближения, а на втором этапе - итерационные методы для уточнения значения искомой функции. В рассматриваемом случае в большинстве исследуемых ниже методов на первом этапе используется итерационный метод “цифра за цифрой”, а на последующих этапах используются прямые или другие итерационные методы вычисления искомой функции. Благодаря такому подходу появилась возможность адаптировать эти алгоритмы к различным условиям применения.

Методы Д.Волдера и Д.Меджита в основном используются для синхронного режима счета. При вычислении ряда функций для обеспечения сходимости этих методов даже в двоичной системе счисления возникает необходимость в повторных итерациях. Это приводит к ухудшению показателя: отношение производительность / стоимость. Характерной особенностью аппаратной реализации методов «цифра за цифрой» является реализация операций псевдоделения и псевдоумножения над базисом соответствующих

констант типа 1п(1 + №”), агс1§Кт и т.д., являющихся функциональными весами разрядов. Для

реализации методов могут быть использованы регистровая, таблично - регистровая и матричные структуры устройств псевдоделения и псевдоумножения [3]. Существуют и другие подходы для реализации этих методов [5,6]. Временные, аппаратурные и другие затраты при реализации методов могут заменяться путем использования канонических систем счисления с различными основаниями типа (2,4,8,10,16,...), избыточных

цифровых наборов типа (1,0,1), (9, 8,...,0,1,...9), (1 5, 1 4,...,0,1,2,... 15), включая иррациональные

основания системы счисления типа (1 + -^)/2, о/2, 1 + 21-а , использование синхронных и асинхронных режимов вычисления, а также использование начальных и завершающих приближений и т.д. Использование асинхронной организации позволяет увеличить производительность вычислительных средств за счет того, что обработка информации проводится по мере готовности информации и устройства обработки. Применение асинхронных алгоритмов эквивалентно логическим методам ускорения вычислительных операций в арифметико - логических устройствах, так как предполагает исключение расчетов, когда очередная цифра анализируемого числа равна нулю (для некоторых функций - единице).

С точки зрения поступления исходной информации будем различать статический (полноциклический) и динамический (темп накачки), т.е. конвейерный режим работы вычислительных устройств, реализующих эти методы. При этом способы реализации алгоритмов могут быть аппаратными, микропрограммно -аппаратными и программно - аппаратными [7].

Остановимся более подробно на проблеме ускорения вычислений в методах «цифра за цифрой». Как отмечалось в работе [7], одним из наиболее быстрых методов класса «цифра за цифрой» является асинхронный метод Т.Х. Чена [8,9] - наряду с асинхронностью, которая обеспечивает для двоичной системы счисления сокращение числа итераций примерно в два раза. В методе Т.Х.Чена используются линейные завершающие приближения, которые для большинства приведенных алгоритмов содержат операцию умножения. Но благодаря этому можно добиться уменьшения общего числа итераций еще в два раза.

Для дальнейшего сокращения числа итераций автором было предложено использовать нелинейные

завершающие приближения, представленные в виде модифицированного разложения функций в ряд невязок

[7]. В настоящей работе показано, что для этих целей можно также использовать широкий спектр

модифицированных разложений функций по невязкам. Наряду с целью сокращения числа умножений

(делений), а в некоторых случаях и полного отказа от операций умножения, но с сохранением квадратичной

сходимости алгоритма, автором предложено введение экономичного начального приближения перед вторым

этапом работы алгоритма [7]. Такие подходы позволяют сократить число итераций и расширить спектр СВТ

для применения методов «цифра за цифрой». Использование методов «цифра за цифрой» представляет

собой метод сужения исходного интервала изменения аргумента и слабо поддается распараллеливанию. 44 !ЗЭЫ 1028-9763. Математические машины и системы, 1999, №1

Однако вычисление начальных и завершающих приближений допускает процесс эффективного распараллеливания многочленных либо дробно-рациональных выражений. Это позволяет использовать приведенные методы на многопроцессорных ВС. Дополнительный эффект в сокращении времени достигается за счет использования инкрементной (сокращенной) информации. Соотношение между итерационным алгоритмом сужения информации и количеством членов в начальном либо завершающем

приближении соответствует случаю, рассмотренному при исследовании Zm - аппроксимации функций [11].

Это связано с тем, что использование Zm - аппроксимации функций и метода «цифра за цифрой» -

приводит к одинаковому эффекту уменьшения исходного интервала изменения аргумента, но разными средствами. В основу разработанных базовых адаптивных алгоритмов положен метод Т.Х.Чена, хотя для этих целей могут быть использованы и алгоритмы типа Д.Волдера или Д.Меджита. Термин «адаптация» в данном контексте будем понимать в смысле функционально-аппаратного соответствия.

Использование адаптивных алгоритмов позволяет, наряду со специальными структурами, характерными для методов «цифра за цифрой», использовать и современные структуры АЛУ, содержащие параллельные сумматоры, умножители, быстрые сдвигатели, а также устройства определения количества левых нулей, используемых обычно в аппаратуре для реализации команд сложения в режиме с плавающей запятой. Помимо этого, имеется возможность уменьшить время счета элементарных функций за счет более полного использования «быстрых» постоянных запоминающих устройств и таблично - алгоритмических методов. При этом рассматривается введение начальных приближений перед началом первого или второго этапа счета по методу «цифра за цифрой», а также использование завершающих приближений. Наряду с обычными аппроксимациями рассматриваются и сегментные аппроксимации. Таким образом, использование адаптивных алгоритмов позволяет в широких пределах варьировать номенклатуру используемых аппаратурных средств за счет различных модификаций алгоритмов метода “ цифра за цифрой”.

Благодаря применению экономичных асинхронных алгоритмов с использованием на втором этапе итерации экономичных линейных приближений, не содержащих операций умножений, удается получить для двоичной системы счисления такое же ускорение вычислений, как и в методе Т.Х.Чена, но при этом отсутствует операция умножения. Среднее число итераций уменьшается примерно в 4 раза (в 2 раза за счет асинхронности и в 2 раза за счет начального приближения на втором этапе вычислений). Если же в этих алгоритмах использовать экономичные квадратичные приближения [11], содержащие одну операцию умножения, то количество итераций сократится примерно в 6 раз (в 2 раза за счет асинхронности и в 3 раза за счет квадратичного приближения). За счет увеличения порядка начального приближения можно достичь дальнейшего уменьшения количества итераций, но при этом возрастает количество умножений и увеличиваются возможности для распараллеливания алгоритма. При использовании избыточных цифровых

наборов (1,0,1) среднее количество нулей возрастает с половины до двух третей от общего количества цифр в представлении числа. В этом случае при экономичном линейном приближении число итераций уменьшается в 6 раз, а при экономичном квадратичном приближении число итераций в данном же случае уменьшается в 9 раз (в 3 раза за счет асинхронности и в 3 раза за счет использования начального приближения).

Помимо этого, при вычислении функции 1 п ^ ) по алгоритмам Д.Волдера и Д.Меджита требуются двойные итерации, а в рассматриваемом алгоритме этого не требуется, так как процесс приближения к результату односторонний. Это дает также дополнительный эффект ускорения вычислений.

2. Функциональные соотношения для получения адаптивных методов «цифра за цифрой»

Основу адаптивных аппроксимаций составляют соответствующие функциональные преобразования.

Перейдем к непосредственному описанию методов “цифра за цифрой” для вычисления функции 1(х) на основе модификации метода Т.Х.Чена с целью адаптации к различным видам структур вычислительных устройств и структурам данных. Для вычисления функции 1(х) так же, как и в случае получения ИФ формул на основе разложения функции по невязкам, будем рассматривать уравнение 2=Р(х,у).

В общем случае Р(х,у)=у1:(х)отлично от нуля. Знак 0 означает некоторую арифметическую операцию

(в основном +, - или умножение). В рассматриваемом методе одновременно итерируется как параметр X к , так и параметр у к . При этом при стремлении величины X к к некоторому пределу (обычно к нулю или к

единице) величина у к стремится к искомой функции 1(х), т.е. Нш ук = ъ . В базовом алгоритме

хк ^ с

имеется возможность получить более сложную функцию и=а01(х), где а - заданное значение величины у 0 .

В модифицированном алгоритме такой возможности не имеется, т.к. вместо величины а вводится начальное приближение. В рассматриваемом алгоритме проводятся такие итерационные преобразования пары чисел

X к , У к , что функция 2=1 х к , у к ) остается инвариантной относительно этих преобразований, т.е.

Р(хк+1.ук+1) = р(хк>ук). при х0 = х и у о = А ъ=Р(Хо,уо) = Р(х1,у1)=...=Г(хр,ур)=А0(х).

В результате получим Хр « с , ур ~ А 0 ? (х). Так, для функции {(х) = 1 / х имеем ъ = у (1 / х ) .

Если использовать преобразования х к +1 = р кх к , ук + х = ркук , которые не изменяют величину ъ , т.к. Б (х к,у к ) = Р (х к +1, у к +1) = Ъ , то, использовав П раз такое преобразование, обеспечив х к ^ с , получим

уо ГГрк п

ъ = кт -с-1уо П Рк.

хо П Рк к=1

к=1

При С=1 не требуется умножения на константу С 1.

В некоторых случаях используется С = ± 21 и даже С=2/3.

П

Если взять Рк = 1 + 2 , 11Ш.х0 П Рк = 1, то можно записать следующие итерационные формулы:

п к=1

хк + 1 = хк + 2- шхк , ук+! = ук + 2шук , где х0 = х , ш = 1 + р , р- число левых нулей в

выражении 1 - хк. Процесс можно не доводить до конца, а завершить по итерационной формуле

нахождения обратной величины 1 / х р .

Приведем функциональные преобразования для получения основных итерационных формул, работающих по методу «цифра за цифрой».

Для вычислений функций ех, у / х, 1 пх, у / воспользуемся преобразованиями [1-4].

n “

n x Pk n x 22Pk

Для функции ex = p ex np , откуда ex ~ П Pke k=° либо y°ex ~ УоPke k=° ,

k=° k=°

x - 2 Pk

lim e k=° = 1

n ^ o)

n n

Для функции lnx = -lnp + lnpx , откуда ln x = 2 (- lnPk) + ln(xП Pk) либо

k=° k=°

y ° + ln x =

k = ° k = °

Параметр Pk может быть выбран специальным способом, чтобы избежать операции умножения и обеспечить стремление в предел соответствующей константы. В работе [8] предлагается брать

Pk = 1 + 2mk , где mk подбирается так, чтобы обеспечить выполнение предельных переходов.

В работе [10] используется Pk = 1 + 16 mk .

В общем случае можно брать Pk = 1 + N mk , N=2,4,8,10,16,..., симметричные цифровые наборы или иррациональные избыточные основания системы счисления.

Для функций sinx, cosx, Arctgx, shx и Arthx можно использовать функциональные преобразования, которые основаны на формулах сложения тригонометрических и гиперболических функций.

Для функций sinx и cosx справедливы следующие функциональные преобразования [4]: sin( x + p) = cos p (sin x + cos x tgp ) ; cos( x + p) = cos p(cos x + sin x tgp ) , где p = arctgN -1 , N - основание системы счисления.

Для функции arctg (y / x) = arctg p + arctg ((y - xp) /(x + yp)) .

Для функций shx, chx используем функциональные преобразования sh (x + p) = chp (shx + chx thp ) ; ch (x + p ) = chp (chx + shx thp ) ,

где p = ArthN - j.

Для функции Arth (y / x) = Arth p + Arth ((y - xp ) /(x + yp )) .

3. Вычисление функций на основе адаптивных методов «цифра за цифрой»

Как уже отмечалось выше, асинхронный алгоритм Т.Х.Чена [8] базируется так же, как методы Д.Волдера и Д.Меджита, на двух этапах вычислений, соответствующих псевдоумножению и псевдоделению. Но для уменьшения числа итераций используются линейное завершающее приближение и асинхронный режим счета на основе анализа числа левых единиц (нулей). Этот алгоритм допускает параллельное выполнение двух этапов итераций по методу «цифра за цифрой». В экономичном адаптивном алгоритме, предложенном автором [7], имеется возможность избавиться от операции умножения, используемой в завершающем приближении, путем введения между первым и вторым этапом промежуточного этапа, на котором используется экономичное приближение (не содержащее операции умножения). При необходимости распараллелить процесс вычислений либо сократить число итераций автором предложено использовать

следующие подходы. Использование более сложных зависимостей (увеличение числа членов) для начального и/или завершающего приближений.

На основе приведенных функциональных соотношений и введенных начальных (завершающих) приближений получаем ряд адаптивных методов. В табл. 1 приведены адаптивные экономичные асинхронные алгоритмы, основанные на методе «цифра за цифрой».

В табл. 1 приняты следующие обозначения:

я - основание системы счисления; Ш - целое число; Г - число левых единиц в числе или число левых

нулей в числе, записанном в дополнительном коде; Г2 - число левых нулей в числе; (р — 1) - индекс последней итерации. Количество итераций и число членов в завершающей формуле определяются исходя из используемых аппаратных средств, погрешностей величин х у ф р и вида аппроксимирующего

приближения, используемого в качестве завершающей формулы.

Для функций 1 / х и 1/л/х в качестве завершающих приближений имеется возможность использовать итерационные формулы заданного порядка сходимости. Особый интерес использования этих формул представляется при вычислении с большой разрядностью. При этом может быть широко использована инкрементная информация.

Таблица 1. Адаптивные экономичные асинхронные алгоритмы

Функ- Итерационные Формулы Завершающие приближения

ция Алгоритм деления

I этап II этап I этап II этап

1 x хк+1 = хк + я—Шхк. х0 = х, Ш = 1 + г1 , к = 0,1,..., р — 1 Ук+1 = Ук + я— ШУк, У0 = 2 — хр, Ур = 1/х

1 vx *к+х = хк + я—Шхк. хк+1 = ^ + я— х0 = х, ш = 2 + гх, к = 0,1,...,р — 1 Ук+1 = У к + я—ШУ к; для я = 2, 3 1 У0 = 2 — 2хр; Ур = 1 / л/Х

ln x — Ш хк+1 = хк — я хк. х0 = х, Ш = 1 + г2, к = 0,1,..., р — 1 Ук+1 = Ук — 1п(1 + я—1Ш) У0 =—1 + хр либо Ус = А + хр Ур = 1пх-

ex хк+1 = хк — 1п(1 + я—Ш) х0 = х, Ш = 1 + г2, к = 0,1,..., р — 1 — Ш Ук+1 = Ук + я Ук, У 0 = 1 + х р либо У0 = А + хр, Ур = ех

ШФ ф к+1 =Ф к — А^я — Ш, ф 0 = ф, Ш = 1 + г2, к = 0,1,..., р — 1 Ук+1 = Ук + я—Шхк. хк+1 = хк— я—ШУк. х0 = 1 У0 =Ф р —Ш Х;+1 = X; + я X; х0 = хр У+1 = У; + я—ШУ У0 = Уp, Уе =

У arctg— x yk+l = yk- q-mxk> xk+1 = xk + q-myk> xo = x Уо = У> m = r2, k = 0,1,...,p -1 Фk+l =Фk + Arctgq-m^ Фо =Yp/xp -m xi+l = xi + q xi xo = xp yi+i = Yi + q-my Уо = yp

& л -м ф k+l = ф k - Arthq- m ^ фo =ф^ m = 1 + r2^ k = 0,1,...,p - 1 -m xk+1 = xk + q y^ Уо = Ф p -m xi+l = xi + q x xo = xp У1+1 = y і + q-my Уо = yp^ Уе = thФ

У К -С < -m yk+l = yk-q xk> xk+1 = xk + q-myk, xo = x, Уо = y5 m = r2 ’ k = 0,1,...,p -1 ф k+l =ф k + Arthq- Ф o =Yp/xp xi+i = xi + q- m> xo = xp Уі+l = Уі + q-my Уо = Yp

Начальные и завершающие приближения (см. табл. 2) могут быть получены в виде разложений функций по невязкам (с модификацией невязки) на основе разложений в ряд Тейлора, аппроксимаций Паде, разложений в цепные дроби, наилучших (минимаксных) и близких к ним приближений, бесконечных произведений и т.д.

Таблица 2. Начальные и завершающие приближения

Функ- ция Вид завершающего приближения Вид начального приближения

1 x 1 ад - = УрX2Р; 2р =1 -ух *1 -хр X к=0 1 у 1+1 = у! X2Р> либ0 к=0 у 1+1 = у!П(1 + 2Рк) Уо = Ур> к=0 21 = 1 - ХУ1 1 Уо =Х2^ либ0 к=0 уо = П(1+ к=0 2р = 1 - ХР

1 vx 1 л 1 1.3 2 1.3.5 3 л 4Х = У'(1 + 22р + 2.4 2р + 2.4.62р +'..)' 2р =1 - у2хр -1 - хр; Л 1 1.3 2 X у»,= у,(1+22! + ^ +-). 2 2 = 1 - ХУ1 ^ Уо = Ур 1 1 2к(2 +1)...(1 + 2(к -1)) Уо = 1 + Х к!2к к=о к! 2

lnx ад 1пх = Ур -Х2р /к» 2р =1 -хр; к=1 2 2 2 12 12 1п х = у р р р р р р р 1-^-^-2-21 + 1 ад У о = -Х 2 р / к к=1

ex ад еХ = у.У/к1, = хр; к = 0 1 2 z z2 z2 ех = ур (1 р р ... . . 1-2 + zp + б + + 2(21 + 1) 1 1 3 2 1 Я 1+- z, +— z, +— zp +... е = у 2 p 28 p 84 p У. 13 1’ l-1 z +- z2 — z3 2 p 28 p 84 p ад ex = yp(l0(P)+2Xln(P)Tn(u)); n=1 u=(2z-P)/P’ zp є[0,P], uє[ 1,1] У0 = У zk / k 1 к = 0 m Уp = MP) + 2У In(P)Tn(u) n=1

ф g t ад sin ф sin<?arctgq -m +ф p* tgф= - m = c0s ф cos(£ arctgq-m +Фp) m = УpC0s Ф p + xpsin Ф p xpc0sФp + Уpsin Фp ’ ад 2k ^ ( 1)k фp c0sфp = У(-1) (2k)1- ад ф2k+1 sin фp =У ( 1)k p , Vp (2k +1)1’

Шф Лф= shф = УpchФ p + XpshФ p Лф xpchф p + У pshф p’ ад ф2k+1 ад ф2k shф p = У p , ^ф p = У—p—, Vp k=0(2k +1)1 Vp k=0(2k)1 либо фp(1 + F) shф p = 2 2 , p (1 + F)2-ф p/4 Ф2 /2 Лф p = 2p 2 , p (1 + F)2-ф p/4 F 3u 15u (4(n -1)2 - 1)u = 1 + 1 +...+ 1 +...5 u = Фp /4

y arctg — x У У arctg — « ф р + arctg — « xx ад йф + у (—1)ku2k+1 /(2k +1), k=Q u = УР /xp либо 2 л 2 2 2 u u 4u n u йф p + + + 1 ••• 1 + •••, p 1 3 5 2n +1 u = yp/xp

— к h A Arth — йф + Arth —- й x xp ад йф p +у u2k +1 /(2k +1), k=Q u = —p/xp

В табл. 3 приведены результаты расчета ряда элементарных функций на основе адаптивного экономичного асинхронного итерационного метода «цифра за цифрой». Из примеров расчета видно, что для

получения точности 3 -10—7 — 3 -10—8 требуется от двух до четырех итераций в зависимости от вида начального приближения. В обычном методе Волдера для достижения такой точности требуется 22-25 итераций.

Таблица 3. Результаты вычислений по итерационным формулам адаптивного метода «цифра за цифрой»

Функ- ция Значени е аргумент а Результат вычислений I этапа Начальное приближение Результат вычислений II этапа, погрешность

1 x 0,555 5555 0,555 5555 т = {1,3,4,8} х4 = 9,9998463 -10 —1 т = {1,3,4} х4 = 9,9609364 -10 —1 у0 = 2 — х4 = 1,0000154 3 , 1 42 у0 = 4 + (2р + = = 1,003917 1/х « у4 = 1,800003 , |Д| = 3 -10 — 7 1/х « у3 = 1,800002 , |Д| = 2 -10 — 7

1 vx 0,555 5555 0,555 5555 т = {2,4,7,9} т = {2,4,7,9} 3 1 4 у 0 = х = 2 2 = 1,0003918 у 0 = 1,0000001 + —2 02 = 1,0003919 1/л/х « у4 = 1,3416405 , Д = 3 -10 — 7 1/л/х « у 4 = 1,3416406 , Д = 2 -10 — 7

ln x 0,555 5555 0,555 5555 0,555 5555 т = {1,3,4,8} т = {і, 3} х 2 = 0,93749991 т = {і, 3} х3 = 0,93749991 у 0 = х 4 — 1 = —1,54 -10 —5 у0 = 0,258165338 х2 + + 0,842795596 — 1,633938093 х 2 + 0,484101794 = — 6,45385 -10 — 2 у 0 = —(1 — х3 ) — ~(1 — х3 , = —391403 -10 —3 1пх « у4 = — 5,8778673 -10 —1, Д| = 7 -10 —8 1пх « у2 = — 5,8778662 -10 —1, |Д| = 1,4 -10 —8 1пх « х3 = — 5,8778677 -10 —1, |Д = 3 -10 —8

ex 0,555 5555 0,555 5555 m = {1,3,5} x3 = 0,1535722 -10-2 m = {1,3,5} x3 = 0,1535722 40-2 У0 = 1 + x3 = 1,00115357 y 0 = 1,0000009 + x3 = = 1,00115366 ex и y3 = 1,7429068 , |A| = 2 • 10 -6 ex и y3 = 1,7429068 , |A|= 5 • 10 - 7

& tg 0,555 5555 0,555 5555 m = {, 4,6} Ф3 = 1,3865350 40-2 m = {, 4,6} Ф3 = 1,3865350 40-2 У0 = Ф 3 x0 = 1 У0 = Ф 3 x 0 = 0,99993915 tg Ф« y 3 / x 3 = 6,2077400 • 10 -1, |A| = 1,2 • 10 -6 tg Ф и y 3 / x 3 = 6,2077515 • 10 -1, |A| = 8 • 10 -8

y arctg — x y 0 = y = = 0,555555 X0 = x = 1 m = {l, 5, 7} y3 = 5,628742 40-3 x3 = 1,2796360 arctg — = 0 = 0,5709848 , X |a| = 1 • 10- 8

th Ф 0,555 5555 m = {l, 8} Ф3 = 2,3432487 40-3 m = {} Ф1 = 6,2494 40 -3 Ф3 = 2,3431487 • 10 -3 У0 = Ф 3 X0 = 1 У0 = Ф1 x 0 = 0,99998475 thФИ y 2 / x 2 = 5,0467238 • 10 -1, |a| = 2 • 10 - 8 th Фи y1/x1 = 5,0467237 • 10 -1, |a| = 1 • 10 - 7

Arth У x У» = У = = 0,555555 X0 = x = 1 m = {, 4,7} y3 = 4,801377 40-3 x 3 = 7,1866863 40 -3 Arth— = 6,2638123 • 10 -1, X |a| = 1,7 • 10-7

Дальнейшее ускорение вычислений с использованием этих методов может быть достигнуто за счет использования сегментной аппроксимации для начальных (завершающих) приближений [11].

Таким образом, в работе приведен новый класс адаптивных алгоритмов, позволяющий ускорить вычисления за счет более широкого использования имеющегося в ЭВМ оборудования. Помимо этого, в отличие от обычных методов «цифра за цифрой», которые в основном предполагают аппаратную реализацию, описанные в статье адаптивные методы могут быть эффективными, в ряде случаев, и при программной реализации.

СПИСОК ЛИТЕРАТУРЫ

1. Voider J.E. The CORDIC trigonometric computing technique //IRE Trans. Electr.comput. -1959. -С8, N3. -P.330-334.

2. Meggit J.E. Psevdo division and psevdo multiplication processes // IBM J. -1962. -6, № . -P.210-226.

3. Байков В.Д., Смолов В.Б. Специализированные процессоры: Итерационные алгоритмы и структуры. -М.: Радио и связь, 1985. -288 с.

4. Байков В.Д., Семотин С.А. Вычисление элементарных функций в ЭВМ. -М.: Радио и связь, 1982. -64 с.

5. Евдокимов В.Ф., Стасюк А.Н. Параллельные вычислительные структуры на основе разрядных методов вычислений. -Киев: Наук.думка, 1987. -312 с.

6. Самофалов К.Г., Луцкий Г.М. Основы теории многоуровневых конвейерных систем. -М.: Радио и связь, 1980. -272 с.

7. Теслер Г.С. Организация параллельных вычислений элементарных функций с использованием экономичных алгоритмов // Тезисы докладов Всесоюзной школы-семинара «Распараллеливание обработки информации». -Львов. -1985. -Кн. 1. -С.95-97.

8. Chen T.C. Automatic computation of exponentials, logarithms, rations and square roots // IBM Journal of Res. And Devel. -1971. --16, N4. -P.380-388.

9. Wrathall C., Chen T.C. Convergence guarante, impovements for a fast hardwere exp, log evalution scheme // Proc. оf 4-th Symp. оп Comp. Arithmetic. -1978. -P.175-182.

10. Ercegovoc M.D. Radix-16 evalution of certain elementary functions // IEEE Trans. оf Comp. - 1973. -22, N6. -P.561-566.

11. Попов Б.А., Теслер Г.С. Вычисление функций на ЭВМ. Справочник. -Киев: Наук. думка, 1984. -600с.