Изобретение относится к вычислительной технике и предназначено для определения знака числа, представленного в системе остаточных классов.
Известно устройство для определения знаков чисел в системе остаточных классов (патент РФ 2557446, опубл. 20.07.2015), содержащее группу входных регистров для хранения числа, представленного в коде симметричной системы остаточных классов, энергонезависимые регистры для хранения интервально-позиционной характеристики константы - наибольшего положительного числа в симметричной системе остаточных классов, блок вычисления интервально-позиционной характеристики, блок проверки правильности интервально-позиционной характеристики, блок сравнения интервально-позиционных характеристик, двухвходовой двоичный дешифратор.
Недостатком данного устройства является использование ресурсоемких операций деления с числами с плавающей точкой, что снижает скорость работы и требует округлений.
Известно устройство для определения знака модулярного числа (патент РФ 2503995, опубл. 10.01.2014), содержащее входные регистры для хранения разрядов исходного числа, блоки умножения, выполненные в виде памяти для хранения произведений и параллельный сумматор.
Недостатком данного устройства является низкая точность, связанная с представлением чисел в формате с плавающей точкой, а именно с ошибками округления.
Наиболее близким к заявляемому изобретению является способ, на котором основано устройство определения знака числа, представленного в системе остаточных классов с модулями , (заявка на изобретение РФ №2020134778, дата подачи 22.10.2020), содержащее
входов остатка, где
– количество модулей
системы остаточных классов,
регистров для хранения разрядов исходного числа,
вычислительную ступень, при этом
-я вычислительная ступень, где
, содержит
сумматоров по модулю
и
блоков умножения на веса
по модулю
, где
и
– мультипликативная инверсия модуля
по модулю
. Старший бит выхода первого блока умножения на веса
по модулю
является выходом знака устройства.
Работа данного устройства основана на следующем математическом аппарате.
В системе остаточных классов (СОК) любое число однозначно представляется набором остатков
от деления числа
на взаимно простые модули СОК
, где
,
- рабочий диапазон СОК,
. Возьмем систему остаточных классов с модулями
. Знак в системе остаточных классов чаще всего вводится разбиением диапазона на две части, тогда с учетом динамического диапазона
в СОК можно представить числа
, если
четное.
Функция определения знака числа, представленного в СОК, определяется следующим образом:
Таким образом можно представить в виде:
(1)
Используя свойство и формулу (1) определение знака сводится двухэтапному алгоритму: первый этап - деление на
, второй этап - деление на
, формально математически определяется следующей формулой
Запишем процесс определения в виде алгоритма:
Алгоритм 1. Определение знака числа
Вход:
– модули СОК
– представление числа
в СОК
- синоптические веса
Выход: – положительное число,
– отрицательное число
1. Для от
до
выполнять:
1.1. Для от
до
выполнять: \\ деление на
1.1.1.
2. Возвратить
На первом этапе вычисляется с помощью
деления на модули СОК
соответственно. На втором этапе вычисляется
.
Недостатком данного способа являются органичные функциональные возможности, связанные с ограничениями, накладываемыми на модули СОК, а именно упорядоченность модулей по возрастанию и представление наибольшего модуля в виде степени 2.
Техническим результатом заявляемого изобретения является расширение функциональности, а именно независимость от порядка модулей.
Данный технический результат достигается тем, что в способе определения знака числа в системе остаточных классов, пригодном для реализации средствами вычислительной техники, включающем для системы остаточных классов с модулями ,
, …,
и треугольной матрицы с элементами
где
,
на основе входного значения числа
), где
– остаток от деления числа
на модуль
, вычисление промежуточных значений
вычислительной ступенью, причем
я ступень вычисляет выражение
для
, берут нечетные модули, на основе входного значения
) вычисляют вспомогательное значение
где
и
, каждая
я ступень дополнительно вычисляет выражение
для
, после вычисления значений
-ой вычислительной ступенью значения
и
сравнивают соответственно с
/2 и
/2 и если
>
/2 или одновременно
=
/2 и
/2, то считают, что исходное число
отрицательное, иначе положительное.
Сущность способа основана на следующем математическом аппарате. Берется СОК с нечетными модулями , тогда функция знака имеет вид
Чтобы определить знак, рассмотрим две функции, и
, где
, тогда функцию знака числа
можно получить из выражения
Рассмотрим пример. Возьмем систему остаточных классов с модулями ,
,
. В данной системе динамический диапазон
и число
будет положительным, если
, т.е.
, а отрицательным для
, т.е.
.
Рассмотрим значения на границе перехода от отрицательных к положительным числам.
Для числа ,
,тогда
Поскольку , а
, то
и число положительное.
Для числа ,
,тогда
Поскольку , а
, то
и число отрицательное.
Запишем функцию определения знака в виде алгоритма для работы с числами, представленными в системе остаточных классов. Данный алгоритм основан на последовательном приближении значения
на основе свойства
.
Алгоритм 2. Определение знака числа
Вход:
– модули СОК,
- нечетные числа
– представление числа
в СОК
- синоптические веса
где
Выход: – положительное число,
– отрицательное число
1. Для от
до
выполнять: \\ выполняется параллельно
1.1.
2. Для от
до
выполнять:
2.1. Для от
до
выполнять:
2.1.1.
2.1.2.
3. Если (() ИЛИ ((
) И (
)) то
3.1. Возвратить 1
4. Иначе
4.1 Возвратить 0
Рассмотрим пример данного способа. Для СОК с нечетными модулями , диапазон СОК
и
.
Синоптические веса равны:
,
,
,
.
Определить знак числа , найдем вспомогательное значение
Для удобства запишем вычисления (n-1) вычислительной ступени в виде таблицы, где означает, что берется значение
, вычисленное на
вычислительной ступени.
После вычисления трех вычислительных ступеней сравним значения и
с
и
. Поскольку
, а
, то число положительное.
Определить знак числа , найдем вспомогательное значение
Для удобства запишем вычисления (n-1) вычислительной ступени в виде таблицы, где означает, что берется значение
, вычисленное на
вычислительной ступени.
После вычисления трех вычислительных ступеней сравним значения и
с
и
. Поскольку
, а
, то число отрицательное.
Реализация данного способа возможна на программируемых логических интегральных схем (ПЛИС) или с использованием ЭВМ.
название | год | авторы | номер документа |
---|---|---|---|
Устройство определения знака числа, представленного в системе остаточных классов | 2020 |
|
RU2747371C1 |
Устройство сравнения чисел, представленных в системе остаточных классов | 2020 |
|
RU2751992C1 |
УСТРОЙСТВО ДЛЯ ОПРЕДЕЛЕНИЯ ЗНАКОВ ЧИСЕЛ В СИСТЕМЕ ОСТАТОЧНЫХ КЛАССОВ | 2014 |
|
RU2557446C1 |
УСТРОЙСТВО ДЛЯ СРАВНЕНИЯ ЧИСЕЛ В СИСТЕМЕ ОСТАТОЧНЫХ КЛАССОВ НА ОСНОВЕ ИНТЕРВАЛЬНО-ПОЗИЦИОННЫХ ХАРАКТЕРИСТИК | 2014 |
|
RU2557444C1 |
Устройство для сравнения чисел в системе остаточных классов | 2018 |
|
RU2698413C1 |
Устройство для вычисления ранга модулярного числа | 2021 |
|
RU2780400C1 |
НЕЙРОННАЯ СЕТЬ ДЛЯ ДЕЛЕНИЯ ЧИСЕЛ, ПРЕДСТАВЛЕННЫХ В СИСТЕМЕ ОСТАТОЧНЫХ КЛАССОВ | 2005 |
|
RU2305312C2 |
Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах | 2017 |
|
RU2666285C1 |
УСТРОЙСТВО ДЛЯ ОПРЕДЕЛЕНИЯ ЗНАКА МОДУЛЯРНОГО ЧИСЛА | 2011 |
|
RU2503995C2 |
Устройство вычисления модулярного произведения Монтгомери | 2017 |
|
RU2652450C1 |
Изобретение относится к вычислительной технике. Технический результат заключается в расширении функциональности путем независимости от порядка модулей. Способ определения знака числа в системе остаточных классов, пригодный для реализации средствами вычислительной техники, включает для системы остаточных классов с модулями ,
, …,
и треугольной матрицы с элементами
, где
,
, на основе входного значения числа
), где
– остаток от деления числа
на модуль
, вычисление промежуточных значений
вычислительной ступенью, причем
я ступень вычисляет выражение
для
, берут нечетные модули, на основе входного значения
) вычисляют вспомогательное значение
где
и
, каждая
я ступень дополнительно вычисляет выражение
для
, после вычисления значений
-й вычислительной ступенью значения
и
сравнивают соответственно с
/2 и
/2 и если
>
/2 или одновременно
=
/2 и
/2, то считают, что исходное число
отрицательное, иначе положительное. 2 табл.
Способ определения знака числа в системе остаточных классов, пригодный для реализации средствами вычислительной техники, включающий для системы остаточных классов с модулями ,
, …,
и треугольной матрицы с элементами
, где
,
, на основе входного значения числа
), где
– остаток от деления числа
на модуль
, вычисление промежуточных значений
вычислительной ступенью, причем
я ступень вычисляет выражение
для
, отличающийся тем, что берут нечетные модули, на основе входного значения
) вычисляют вспомогательное значение
где
и
, каждая
я ступень дополнительно вычисляет выражение
для
, после вычисления значений
-й вычислительной ступенью значения
и
сравнивают соответственно с
/2 и
/2 и если
>
/2 или одновременно
=
/2 и
/2, то считают, что исходное число
отрицательное, иначе положительное.
УСТРОЙСТВО ДЛЯ ОПРЕДЕЛЕНИЯ ЗНАКА МОДУЛЯРНОГО ЧИСЛА | 2011 |
|
RU2503995C2 |
УСТРОЙСТВО ДЛЯ СРАВНЕНИЯ ЧИСЕЛ, ПРЕДСТАВЛЕННЫХ В СИСТЕМЕ ОСТАТОЧНЫХ КЛАССОВ | 2011 |
|
RU2503992C2 |
УСТРОЙСТВО ДЛЯ ОПРЕДЕЛЕНИЯ ЗНАКОВ ЧИСЕЛ В СИСТЕМЕ ОСТАТОЧНЫХ КЛАССОВ | 2014 |
|
RU2557446C1 |
US 20100030832 A1, 04.02.2010 | |||
US 20110231465 A1, 22.09.2011. |
Авторы
Даты
2022-03-17—Публикация
2021-04-01—Подача