Русская Википедия:Логарифмическая система счисления

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Файл:Gaussian logarithm.svg
Функции:. <math>s_b(z)</math> и <math>d_b(z)</math>

Логарифмическая система счисления (LNS) — это арифметическая система, иногда используемая для представления вещественных чисел в компьютере и в цифровых аппаратных средствах, особенно в цифровой обработке сигналов.

Теория

В LNS число <math>X</math> представлено логарифмом следующим образом:

<math>X\rightarrow\{s,x=\log_b(|X|)\},</math>

где <math>x</math> - его абсолютное значение; <math>s</math> обозначающий знак <math>X</math> (<math>s=0</math> если <math>X>0</math> и <math>s=1</math> если <math>X<0</math>).

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

<math>\log_b(|X|+|Y|)=x+s_b(y-x)</math>
<math> \log_b(||X|-|Y||)=x+d_b(y-x),</math>

где <math>z=y-x</math> разница между логарифмами операндов, функция «суммы» <math>s_b(z)=\log_b(1+b^z)</math>, а функция «разницы» <math>d_b(z)=\log_b(|1-b^z|)</math>. Эти функции <math>s_b(z)</math> и <math>d_b(z)</math>, изображенные на рисунке справа, также известны как логарифмы Гаусса. Упрощение умножения, деления, взятия корня и возведения в степень компенсируется сложностью оценки этих функций для сложения и вычитания. Эта добавленная стоимость оценки может быть незначительна при использовании LNS в первую очередь для повышения точности операций с плавающей запятой.

История

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

Кингсбери и Рейнер представили «логарифмическую арифметику» для цифровой обработки сигналов в 1971 году.[2]

Аналогичная LNS была описана в 1975 году Шварцлендером и Алехопоулосом.[3]

Ли и Эдгар описал подобную систему счисления, которую они назвали «Фокус», в 1977 году[4]

Математические основы для сложения и вычитания в LNS восходят к Карлу Фридриху Гауссу и Z. Leonelli[5][6].

Применение

LNS была использована в Шаблон:Iw (GRAPE) — специальном суперкомпьютере[7], который выиграл Премию Гордона Белла в 1999 году.

LNS обычно используется как часть скрытых марковских моделей, таких как Алгоритм Витерби, для распознавания речи и секвенирования ДНК.

Значительные усилия в исследовании применимости LNS в качестве жизнеспособной альтернативы системам с плавающей запятой общего назначения для обработки одинарной точности вещественных чисел описаны в контексте «Европейского логарифмического микропроцессора» (ELM).[8] Представлен прототип 32-разрядного процессора, функционирующего в LNS. Дальнейшее совершенствование LNS, основанной на архитектуре ELM вновь показало значительно лучшую скорость вычислений и большую точность, нежели вычисления с плавающей запятой.[9]

LNS иногда используется в FPGA — приложениях, где большинство арифметических операций это умножение и деление.[10]

Примечания

Шаблон:Примечания

Ссылки