LibMPU: библиотека для длинной арифметики

LibMPU — это эмулятор процессора, обеспечивающий выполнение арифметических, логических операций, операций сдвига для целых чисел, а также основных тригонометрических функций для вещественных и комплексных чисел с разрядностью до 65536 бит и 16384 бит соответственно. Числа хранятся в виде массивов байтов и поддерживают различные форматы (целые, вещественные, комплексные), а также знаковые и беззнаковые представления. Для целых чисел поддерживаются размеры от 8 до 65536 бит, а для вещественных — до 65536 бит, также предусмотрены специальные значения для бесконечностей, неопределенности и NaN. Комплексные числа хранятся как структуры из двух вещественных чисел.
LibMPU: библиотека для длинной арифметики
Изображение носит иллюстративный характер

Библиотека использует флаги для отображения результатов операций, которые размещаются в 32-битной переменной. Отдельные биты выделены для флагов целочисленных операций (A, C, O, S, P, Z, R, V) и вещественных операций (DOM, SNG, OVF, UDF, TLS, PLS, IND, INX). Помимо флагов, libMPU поддерживает стандартную переменную errno, а также собственные переменные ошибок для целых, вещественных, комплексных чисел и математических функций, позволяя переопределить обработку ошибок.

Основные арифметические операции, такие как сложение и вычитание целых чисел, представлены функциями iadd, isub, iadc и isbb, с учетом флага переноса. Также реализованы операции сдвига: логические (ishl, ishr), арифметические (isal, isar) и циклические (irol, iror, ircl, ircr). Циклические сдвиги влияют на флаги четности (P), знака (S) и нуля (Z). Умножение и деление целых чисел, а также прочие операции доступны, но не используют методы FFT или Карацубы.


Новое на сайте

20072Эффект красоты решает исход собеседования до первых слов 20069Как черта характера крадёт деньги на переговорах 20068Карточная игра против главной дисфункции команды 20066Фотосинтез в глазах мышей: возможно ли это без превращения в растение? 20065СПКЯ стало СПМЯ: почему переименование болезни, затрагивающей миллионы женщин, заняло так... 20064Почему великая пирамида Гизы пережила все землетрясения за 4500 лет 20063Генетика Homo erectus: что зубная эмаль рассказала о наших предках 20062Кости в бухте Эребус: что кости моряков Франклина рассказывают спустя полтора века 20061Крупнейший плавучий ветрогенератор в мире: Китай испытывает установку у берегов Шанхая 20060Карие глаза младенца стали индиго после лечения от COVID-19 20058Почему серебряная чаша с Афиной пролежала в немецком лесу две тысячи лет? 20057Дыра в атмосфере солнца: вспышка достигла пика и может зажечь полярное сияние 20056Динго возрастом 950 лет: кто и зачем кормил могилу животного сотни лет?
Ссылка