Знаете ли вы о реализации Галуа поле арифметика в C ++? По крайней мере, такие случаи, как GF (216) и GF (232) должен быть накрыт. Производительность является проблемой, поэтому реализация должна была подумать об оптимизации своих операций.
Я бы предпочел обычную вычислительную библиотеку или небольшую библиотеку, предназначенную только для этой задачи. Не имея этого, я также приветствовал бы некоторый читаемый исходный код.
Возможно, вы можете использовать код, который реализует Режим GCM в крипто ++ (особенно, gcm.cpp). Crypto ++ — это бесплатная библиотека C ++, реализующая множество криптографических схем. Среди них GCM, который использует арифметику поля Галуа.
Согласно лицензия, Сама библиотека защищена авторским правом, а отдельные исходные файлы являются общественным достоянием.
Я нашел ссылку на Галуа Полевая Арифметическая Библиотека Араш Партоу в статье в Википедии о Конечная полевая арифметика.
На первый взгляд, код выглядит практически полностью без комментариев, но написан структурированным и, следовательно, понятным образом. Тем не менее, производительность не является важным критерием проектирования: использование встроенных функций довольно ограничено, и в целом это выглядит как прямая запись теоретической математики, которая считается более важной, чем объяснение вычислительных сочетаний клавиш. Я перечислю это здесь для полноты, чтобы вы могли взглянуть, составить собственное мнение, а также проголосовать или прокомментировать соответственно.
Есть библиотека под названием NTL: http://www.shoup.net/ntl/ . Хотя его исходный код не совсем «читабелен».
В поисках алгебраических чисел я наткнулся на этот ответ который предлагает Givaro. И глядя на это, я обнаружил, что это делает GF (пКарифметика также. документация худой, но источники показать немало кода и усилий. Пока не вдавался в подробности, но я решил включить это в свой список здесь.