Авторитетность издания
Добавить в закладки
Следующий номер на сайте
В Институте машиноведения УрО РАН, г. Екатеринбург, разработан класс cBigNumber для выполнения арифметических операций над числами неограниченной разрядности
15.04.2009При разработке класса cBigNumber учитывались следующие основные требования:
- корректное выполнение операций на реальных вычислительных устройствах, способных работать в нештатном режиме;
- оптимальная производительность при проверке на простоту по вероятностному методу Миллера, где требуется выполнять операции с разрядностью от 32 до десятков тысяч бит, включая комбинированные операции над короткими и длинными числами;
- переносимость класса между различными процессорами, операционными системами и трансляторами С++ с возможностью оптимизации под конкретную систему команд.
Требование корректного выполнения операций подразумевает не только отсутствие арифметических ошибок в самом классе. Сбои могут возникать в аппаратных вычислительных блоках при работе в нештатном режиме, то есть вне оговоренных в документации термических, частотных, радиационных и других условий. Поскольку каждый вычислительный блок имеет индивидуальный запас стабильности, бывают случаи, когда в нештатном режиме при сохранении общей работоспособности компьютера в отдельных его блоках возникают арифметические ошибки, частота которых зависит от нештатных факторов.
Подробное описание дается в статье «Класс cBigNumber для целочисленной арифметики неограниченной разрядности в языке С++», автор – Шакиров Р.Н. (Институт машиноведения УрО РАН, г. Екатеринбург).