В настоящее время я оптимизирую проект, который включает в себя умножение матриц больших матриц на модули с использованием только 64-битного целочисленного представления. Моя текущая реализация - наивный подход с модульной арифметикой c на промежуточных результатах для предотвращения переполнения. Я хочу оптимизировать его, используя библиотеку c ++ boost для его быстрой производительности.
Проблема, с которой я борюсь, заключается в том, что простой вызов prod (m1, m2) из boost вызовет переполнение (при представлении 64-битного целого). Я хотел бы знать, есть ли способ встроить модульную арифметику c в матричное умножение, используя boost.
Любая помощь с благодарностью.