линейная алгебра c / c ++ произвольной точности с комплексными числами

Я занимаюсь исследованием линейных дифференциальных уравнений с комплексными коэффициентами в 4-мерном фазовом пространстве. Чтобы иметь возможность проверить некоторую гипотезу о корне решений, мне нужно уметь решать эти уравнения численно с произвольной точностью. Я использовал, чтобы использовать mpmath Модуль Python, но он работает медленно, поэтому я предпочитаю переписывать свою программу на C / C ++ для достижения максимальной производительности. Итак, у меня есть вопрос:

Существует ли какая-либо библиотека линейных алгебр C / C ++, которая поддерживает арифметику произвольной точности и комплексные числа? Мне нужны некоторые базовые функции, такие как точечные продукты и так далее. (На самом деле мне тоже нужна экспоненциальная матрица, но я могу реализовать ее самостоятельно, если это необходимо).

Я пытался использовать Eigen с MPFR C++, но не удалось из-за того, что он не поддерживает комплексные числа (и конструкция, как complex <mpreal> не работает, так как предполагает, что базовый тип является стандартным float).

4

Решение

Попробуйте использовать библиотеку чисел произвольной точности (например, GMP http://gmplib.org/) с математической библиотекой линейной алгебры, которая поддерживает комплексные числа (например, Eigen http://eigen.tuxfamily.org/)

1

Другие решения

Наконец, кажется, что zkcm сделал то, что я хочу. Я не уверен, что это хорошо с точки зрения производительности (не делал никаких тестов), но, по крайней мере, он работает и предоставляет все необходимые функции.

1

Вы можете посмотреть в убла от буста.

1