Несмотря на то, что Alglib обладает богатой функциональностью библиотекой, похоже, отсутствует поддержка наиболее распространенных базовых операторов (участвующих в матричной / векторной алгебре).
Предполагается ли, что пользователь перегружает операторов, в которых он нуждается, или существует более удобный / рекомендуемый способ достижения умножения, сложения, вычитания, деления (по скалярам) и т. Д. С использованием существующего интерфейса Alglib?
Как связанный вопрос, Я считаю предложенное и принятое решение весьма неудовлетворительным. Обычно, один не просто переключается на другую библиотеку, когда у нее уже есть хорошая библиотека. Я только что обнаружил необходимость выполнять эти операции чаще и переключаться на другую, более громоздкую альтернативу — не самая лучшая вещь (MTL4 использует boost, и это довольно обременительно). Идея использования шаблонов выражений, тем не менее, кажется хорошей, но я не знаю, стоит ли реализовывать эту технику над Alglib (то есть, если у Alglib есть лучший способ работы с простой алгеброй).
Я перегружал операторы для достижения этих относительных базовых функций в Alglib. Я не нашел другого способа сделать это в Alglib и не верю, что он доступен, если посмотреть другие вопросы и ответы по этой теме.
Я читал, что не люблю переключаться на другую библиотеку, но я бы посоветовал взглянуть на Eigen
, Для меня было довольно легко настроить его, так как у меня уже были библиотеки как часть библиотеки PointCloud, которую я установил. Кроме того, документация довольно хорошая, и я выполняю необходимые операции гораздо быстрее.
Нормальную библиотечную документацию можно найти: (см. Раздел Арифмические операторы)
Краткое руководство Eigen
Помимо обычной документации в нем также есть неподдерживаемый раздел с меньшим количеством документации, но с большим количеством алгоритмов, таких как решатели, БПФ, полиномы, фитинги:
Eigen Unsupported
Я знаю, что для моего приложения я удалю материал Alglib и перейду на Eigen
как это работает более интуитивно и, по мне, документация лучше.
Других решений пока нет …