Изобретение относится к вычислительной технике и предназначено для определения знака числа, представленного в системе остаточных классов.
Известно устройство для определения знаков чисел в системе остаточных классов (патент РФ 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 |
| Устройство для вычисления ранга модулярного числа | 2021 |
|
RU2780400C1 |
| Устройство для сравнения чисел в системе остаточных классов | 2018 |
|
RU2698413C1 |
| НЕЙРОННАЯ СЕТЬ ДЛЯ ДЕЛЕНИЯ ЧИСЕЛ, ПРЕДСТАВЛЕННЫХ В СИСТЕМЕ ОСТАТОЧНЫХ КЛАССОВ | 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—Подача