Общие
Я ищу библиотеку, которая умеет делать точные вычисления на больших конечных полях, таких как GF (2 128)/𝔽 2 128 и GF (2 256)/𝔽 2 256. Я перечислил функции, которые мне нужны, и функции, которые были бы прохладными ниже. Очевидно, что библиотека должна быть как можно быстрее:-). Ах, поскольку я не являюсь начальником С++ (и, вероятно, большинство библиотек С++), пример кода, например, генерирует случайный элемент/константу и умножает на него мультипликативный обратный
Обязательные функции
- Добавление элементов поля
- Умножение элемента поля
- Найти мультипликативный обратный элемент поля
Приятно иметь функции
- Поддержка Vector/Matrix
- Поддержка случайных элементов.
Библиотеки, на которые я уже смотрел, вероятно, не будут работать
- FFLAS/FFPACK, похоже, не работает с такими большими конечными полями
- Givaro, похоже, не работает на таких больших конечных полях
Библиотеки, на которые я уже смотрел, могут работать (но я не мог использовать)
-
NTL, я не смог инвертировать элемент, но он должен действительно работать с SAGE, кажется, использует эту библиотеку при определении GF (2 ^ 256), и там элемент можно инвертировать с помощьюx^(-1)
- PARI/GP, я не смог найти все, что мне нужно в документации, но в документации документации SAGE говорится, что он должен работать
Другие примечания
- Я пишу программу Haskell и позже буду взаимодействовать с этой библиотекой, так проще интерфейс Haskell лучше: -)