|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
|
Page 1 of 1
|
[ 10 posts ] |
|
Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22621 Location: Silicon Valley
|
У нас 2 варианта предлагалось в январе 2008 - первый (использован в тунгуске): и второй: Последний вариант более походит на обычную двоичную плавающую точку (но без отдельного бита под знак и без необходимости сдвигать порядок exponent) и на днях я понял как можно разрешить проблему что дробная часть может вылезти за точку в троичном представлении (как показано выше P.N = 0.666...) - нам надо выдерживать не -1 < F < +1 (F это мантисса - mantissa или significand или fraction) при нормализации, а -0.5 < F < +0.5 т.к. .PPPPPPPPPPPPPPPPPP это +0.5, а .NNNNNNNNNNNNNNNNNN это -0.5. Соответственно OOOOOOPPPPPPPPPPPPPPPPPP всё также будет означать 0.5, однако если прибавить сюда .OOOOOOOOOOOOOOOOOP нам придётся сдвинуть мантиссу для нормализации, хоть она всё ещё будет оставаться меньше 1 (но уже больше 0.5). Можно специальные числа добавить: положительная бесконечность - все триты порядка равны P, а старший трит мантиссы равен P; отрицательная бесконечность - все триты порядка равны P, а старший трит мантиссы равен N; не-число (NaN) - все триты порядка равны P, а старший трит мантиссы равен O? все остальные триты мантиссы игнорируются во всех трёх случаях (кстати примерно тоже самое предлагал sva в 2008 году) Мне представляется, что реализация троичной плавающей точки должна быть сильно проще двоичной - попробуем посчитать сколько нужно тритов для реализации точности, сравнимой с двоичным вариантом (будем прибавлять к количеству битов двоичной мантиссы 2 т.к. там есть отдельный бит знака и скрытый самый старший бит 1 для нормализованных чисел с плавающей точкой): float (32-bit floating point) - порядок 8 мантисса 23 и 1 знак - троичный порядок 8/1.585=5.05 -> будет чуть больше 5 тритов, троичная мантисса (23+2)/1.585=15.77 -> 16 тритов т.е. всего 21; double (64-bit floating point)- порядок 11 мантисса 52 и 1 знак - троичный порядок будет 11/1.585=6.95 -> 7 тритов, троичная мантисса (52+2)/1.585=34.07 -> 35 тритов т.е. всего 42; x86 extended (80-bit floating point) - порядок 15 мантисса 64 и 1 знак - троичный порядок 15/1.585=9.46 -> 10 тритов, троичная мантисса (64+2)/1.585=41.64 -> 42 трита т.е. всего 52; quad (128-bit floating point) - порядок 15 мантисса 112 и 1 знак - троичный порядок 15/1.585=9.46 -> 10 тритов, троичная мантисса (112+2)/1.585=71.93 -> 72 трита т.е. всего 82. Значит для троичного float можно взять описанный выше вариант с 6-тритным порядком и 18-тритной мантиссой - всего 24 трита (и это будет чуть лучше, чем float). А для троичного double - скажем пусть будет 9-тритный порядок и 39-тритная мантисса - всего 48 тритов (по точности будет где-то между 64-битной и 80-битной плавающей точкой).
P.S. Соответственно расширенная троичная плавающая точка будущего (quad) может иметь 12-тритный порядок и 84-тритную мантиссу - всего 96 тритов ( вот оно побъёт всех : )
P.P.S. Я в 2011 году начал было городить на сях библиотеку троичной арифметики с внутренним представлением числа с троичной плавающей точкой - можно её реанимировать и на ней обкатать все алгоритмы
|
29 May 2020 06:59 |
|
|
askfind
Doomed
Joined: 04 Jan 2016 09:15 Posts: 657 Location: Russia, S.- Peterburg
|
В компьютере "Сетунь" есть реализация библиотеки троичных вычислений с плавающей запятой. Программное обеспечение малой ЭВМ «Сетунь» Хосе Рамиль Альварес, Юлия Сергеевна Владимирова Факультет ВМК МГУ им. М. В. Ломоносова
_________________ "Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
|
29 May 2020 12:43 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22621 Location: Silicon Valley
|
Интересно - спасибо! ИП-2 по точности примерно равносильно двоичному float, а вот ИП-3 по-моему грубоват (Мандельброта им красивого не построишь к примеру). Также идея с отведением нескольких тритов под целую часть при нормализации мне не нравится - для программной симуляции может это и имеет какой-то смысл, а для аппаратной реализации сложить и сдвинуть при необходимости не составляет никакого труда - так что я буду придерживаться своего варианта -0.5 < mantissa < +0.5 и нормализация будет означать, что самый старший трит мантиссы ненулевой...
|
29 May 2020 16:40 |
|
|
askfind
Doomed
Joined: 04 Jan 2016 09:15 Posts: 657 Location: Russia, S.- Peterburg
|
В каждой книге по математическому обслуживанию машины "Сетунь" в конце публикуется исходный код ИП-2. Пытался просмотреть. Можно перенести в онлайн машину "Сетунь". http://trinary.ru/projects/setunws/Эмулятор на Си, который пишу, в отладке и не готов. Планировал выполнить перенос исходных программ из книг по мат. обеспечению и запускать в эмуляторе. Полный цикл книг программирования для троичной машины "Сетунь" https://www.computer-museum.ru/articles/elektronnye-versii-knig/520/Для будущего языка программирования троичного 'C' в книгах подробно приведены описание алгоритмов троичных математических функций. | | | | Quote: Серия: Математическое обслуживание машины «Сетунь» Под общей редакцией Е. А. Жоголева Издательство Московского Университета Московский Государственный Университет имени М. В. Ломоносова Москва, Россия 1964-1971 гг. Оглавление. Выпуск 1. Е. А. Жоголев. Особенности программирования и математическое обслуживание для машины «Сетунь». (в формате html), (в формате pdf, 202 Кб), 1964 г. Выпуск 2. Г. А. Фурман. Интерпретирующая система для действий с комплексными числами (ИП-4) (в формате html, часть 1, часть 2, часть 3), (в формате pdf, 1.84 Мб), 1964 г. Выпуск 3. Франк Л.С, Рамиль Альварес X. Подпрограмма вычисления значений определенных интегралов для ИП-2, (в формате pdf, 774 Кб), 1964 г. Выпуск 4. Жоголев Е. А., Есакова Л. В. Интерпретирующая система ИП-3, (в формате pdf, 593 Кб), 1964 г. Выпуск 5. Г. А. Фурман. Подпрограмма вычисления всех корней многочлена для ИП-4, (в формате pdf, 789 Кб),1965 г. Выпуск 6. Г. В. Прохорова. Интерпретирующая система для действий с повышенной точностью (ИП-5), (в формате pdf, 1.21 Мб), 1964 г. Выпуск 7. В. И. Гордонова. Типовая программа расчета корреляционных и спектральных функций, (в формате pdf, 3.07 Мб), 1965 г. Выпуск 8. Н. В. Бондаренко. Система подпрограмм ввода и вывода алфавитно-цифровой информации для ИП-3, (в формате pdf, 554 Кб), 1965 г. Выпуск 9. Ю. Н. Черепенникова. Набор подпрограмм для ввода и вывода числовой информации в система ИП-2, (в формате pdf, 585 Кб), 1966 г. Выпуск 10. Е. А. Жоголев, Н. Б. Лебедева. СИМПОЛИЗ 64 — Язык для программирования в символических обозначениях, (в формате pdf, 213 Кб), 1965 г. Выпуск 11. Г. В. Прохорова. Подпрограммы ввода и вывода числовой информации для ИП-5, (в формате pdf, 3.07 Мб), 1966 г. Выпуск 13. Н. Б. Лебедева, X. Рамиль Альварес. Инструкция использования системы ПОЛИЗ 64, (в формате pdf, 4.83 Мб), 1966 г. Выпуск 14. Ю. Н. Черепенникова. Подпрограммы ввода и вывода чисел в системе ИП-4, (в формате pdf, 862 Кб), 1966 г. Выпуск 15. В. Е. Федорченко. Моделирование равномерных псевдослучайных чисел на машине «Сетунь», (в формате pdf, 618 Кб), 1966 г. Выпуск 16. Ю. Н. Черепенникова. Типовая программа для решения систем линейных алгебраических уравнений, (в формате pdf, 4.24 Мб), 1966 г. Выпуск 17. В. И. Гордонова. Стандартная подпрограмма для вычисления собственных значений и собственных векторов вещественной матрицы, имеющей только вещественные собственные значения (в системе ИП-3), (в формате pdf, 2.97 Мб), 1967 г. Выпуск 18. Титакаева П.Т. Стандартная подпрограмма RKG решения задачи Коши для системы обыкновенных дифференциальных уравнений в системе ИП-3, (в формате pdf, 2.46 Мб), 1967 г. Выпуск 19. Жоголев Е. А. Интерпретирующая система ИП-2, (в формате pdf, 1.87 Мб), 1967 г. Выпуск 21. В. И. Гордонова. Типовая программа решения системы линейных алгебраических уравнений с симметричной положительно определенной матрицей методом квадратного корня (ЛАУСК) (в формате pdf, 5.05 Мб), 1967 г. Выпуск 23. Г. Я. Гойхман. Стандартная подпрограмма обращения матрицы методом окаймления (в системе ИП-З), (в формате pdf, 1.42 Мб) 1968 г. Выпуск 24. А. А. Дрейер, Ю. Н. Черепенникова. Автоматизированная система статистической обработки материалов измерений на ЭЦВМ «Сетунь», (в формате pdf, 8.20 Мб), 1969 г. Выпуск 25. Е. А. Жоголев, Л. В. Есакова. Интерпретирующая система ИП-3 (в формате pdf, 1.33 Мб), 1969 г. Выпуск 26. Е. А. Жоголев, П. Т. Титакаева. Стандартная подпрограмма решения задачи Коши для системы обыкновенных дифференциальных уравнений методом плавающих масштабов (в системе ИП-2) (в формате pdf, 1.97 Мб), 1969 г. Выпуск 27. Гойхман г. Я., Гордонова В. И. Программа вычисления собственных значений и собственных векторов симметричной матрицы в режиме фиксированной запятой, (в формате pdf, 6.97 Мб),1970 г. Выпуск 28. М. Н. Лисицына. Подпрограммы для интерполяции и вычисления первых и вторых производных функций одного переменного, заданной таблично (в системе ИП-3), (в формате pdf, 2.19 Мб), 1970 г. Выпуск 29. Трофимов Е. П., Стелина Н. Ю. Стандартная программа вычисления функций Бесселя (в системе ИП-3), (в формате pdf, 929 Кб),1970 г. Выпуск 30. Н. Н. Кирсанова Спектральный анализ временных рядов с применением алгоритма FFT (быстрого преобразования Фурье) (в формате pdf, 7.41 Мб),1971 г. Об авторе: Московский Государственный Университет имени М. В. Ломоносова Москва, Россия 1964 г.
| | | | |
_________________ "Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
|
31 May 2020 05:00 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22621 Location: Silicon Valley
|
Система команд Сетуни слишком эзотерическая - проще заново всё написать с более современным подходом
|
31 May 2020 07:45 |
|
|
askfind
Doomed
Joined: 04 Jan 2016 09:15 Posts: 657 Location: Russia, S.- Peterburg
|
Это точно! Как смогли мужики в 50-х придумать такое!? В книгах хорошее описание троичных алгоритмов.
_________________ "Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
|
31 May 2020 10:01 |
|
|
poststatist
Novelist
Joined: 01 Jun 2020 07:52 Posts: 25 Location: Новосибирск
|
Если верно всё понял, предлагаю свою типы по первому способу: float27: 9 тритов (целое) + 18 тритов (дробь). Целая часть принимает значения в диапазоне [-9841; +9841]. Дробная часть принимает значения в диапазоне: [-193710244; +193710244]. float81: 27 тритов (целое) + 54 тритов (дробь). Целая часть принимает значения в диапазоне [-3812798742493; +3812798742493]. Дробная часть принимает значения в диапазоне: [-7.8502144954104e+26; +7.8502144954104e+26].
Примеры: float27: POP NPN OPP OOO PPP PPP NPN PPO PPP = 7105.007159846 float81: OOO NON PPO ONO NOO NOO NPP NNP OOO OPN OOO NPP POP PPO PNN PPO OPP PPO OOP OPN NOP PON PPP POO PNO NPO NPP ≈ -100002496941.42937600012687886 Надеюсь, ничего не перепутал.
_________________ Программист, либертарианец и просто свободный человек.
|
02 Jun 2020 07:54 |
|
|
askfind
Doomed
Joined: 04 Jan 2016 09:15 Posts: 657 Location: Russia, S.- Peterburg
|
Необходим новый подход с формату с лучшими свойствами троичной чисел плавающей точки. | | | | Quote: тип данных, называемый posit, разработан в качестве прямой замены чисел с плавающей точкой стандарта IEEE Standard 754. В отличие от ранней формы — арифметики универсальных чисел (unum), стандарт posit не требует использования интервальной арифметики или операндов переменного размера, и, как и float, числа posit округляются, если результат не может быть представлен точно. Они имеют неоспоримые преимущества над форматом float, включая больший динамический диапазон, большую точность, побитовое совпадение результатов вычислений на разных системах, более простое аппаратное обеспечение и более простую поддержку исключений. Числа posit не переполняются ни в сторону бесконечности, ни до нуля, и «нечисла» (Not aNumber, NaN) — это действия, а не битовые комбинации.
| | | | |
Ссылки: 1. Anatomy of a posit number - https://www.johndcook.com/blog/2018/04/11/anatomy-of-a-posit-number/2. Posit-арифметика: победа над floating point на его собственном поле. Часть 1 - https://habr.com/ru/post/465723/3. Posit-арифметика: победа над floating point на его собственном поле. Часть 2 - https://habr.com/ru/post/466813/
_________________ "Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
|
02 Jun 2020 23:44 |
|
|
askfind
Doomed
Joined: 04 Jan 2016 09:15 Posts: 657 Location: Russia, S.- Peterburg
|
Posit числа: теоретическое и практическое примененияСм. файл.
_________________ "Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
|
05 Jun 2020 05:40 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22621 Location: Silicon Valley
|
не - нанадо нам ваш posit
|
05 Jun 2020 17:16 |
|
|
|
Page 1 of 1
|
[ 10 posts ] |
|
Who is online |
Users browsing this forum: No registered users and 43 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|