Какие целочисленные операции можно эффективно эмулировать с помощью плавающей запятой? - PullRequest
0 голосов
/ 06 ноября 2018

Мне нужно работать на процессоре, который изначально поддерживает 16-битную целочисленную математику и 32-битные операции с плавающей запятой. Некоторые алгоритмы, нацеленные на процессор, требуют целочисленной математической точности, превышающей 16 бит. Самым простым вариантом является эмуляция с использованием 16-битных целочисленных операций. Я заметил, что некоторые архитектуры поддерживают 24-битные целочисленные математические операции. Я подозреваю, что это связано с 24-битным размером мантиссы. Таким образом, единица с плавающей запятой как-то используется для целочисленной математики. Можно ли в некоторых случаях использовать инструкции с плавающей запятой для эффективности?

1 Ответ

0 голосов
/ 06 ноября 2018

Предполагая, что IEEE-754 с плавающей запятой, любое целое число с величиной до 2 ^ 24 является точно представимым, и все операции, производящие результат в диапазоне, будут давать точные целочисленные результаты. (Вам, конечно, потребуется вручную обработать результаты округления.) Для более широких целочисленных типов существуют определенные методы FP (основанные на хранении одного числа в виде суммы нескольких чисел с неперекрывающимися значениями), но они, вероятно, будут быть намного медленнее, чем просто выполнять обычные многословные арифметические операции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...