У меня есть алгоритм обработки изображений, который делает из матриц, у меня есть мои собственные коды операций с матрицей (умножение, инверсия ...) со мной. Но я использую процессор ARM Cortex-A8, у которого есть копроцессор NEON для векторизации, поскольку матричные операции являются идеальными случаями для операций SIMD, я попросил компилятор (-mfpu = neon -mfloat-abi = softfp) генерировать NEON инструкции для моего кода, но компилятор не смог этого сделать, а затем я также попытался написать свой собственный код инициализации NEON для операций Matrix, но мне было очень сложно это сделать.Как использовать Eigen, библиотеку шаблонов C++ для линейной алгебры?
Итак, я подумал об использовании библиотеки Eigen, которая обещает векторизация матричных операций. Поэтому я быстро загрузил библиотеку Eigen C++ и попытался использовать ее, как указано в их учебниках, но, к сожалению, я получаю ошибки компиляции, когда я запускаю их example programs.
Кто-нибудь, у кого есть опыт использования Eigen, любые примеры будут действительно полезны? Пожалуйста, помогите мне, как это сделать.
Помощь!
Благодаря
У меня есть папка Эйгена по адресу: /дома/Ubuntu/Documents/собственного я установил этот путь в C моего Затмения ++ дополнительных каталогов проекта. Затем я запускаю следующую программу (пример) -
#include <Eigen/Core>
// import most common Eigen types
USING_PART_OF_NAMESPACE_EIGEN
int main(int, char *[])
{
Matrix3f m3;
m3 << 1, 2, 3, 4, 5, 6, 7, 8, 9;
Matrix4f m4 = Matrix4f::Identity();
Vector4i v4(1, 2, 3, 4);
std::cout << "m3\n" << m3 << "\nm4:\n"
<< m4 << "\nv4:\n" << v4 << std::endl;
}
Ошибки, которые я получаю -
билд конфигурации отладки для проекта Test_Eigen ****
сделать все
Строительный файл:. ./main.cpp
Вызов: Компилятор Sourcery G ++ C++
arm-none-linux-gnueabi-g ++ -I/home/ubuntu/Documents/eigen -O0 -g3 -Wall -c -fmessage-length = 0 -fcommon -MMD -MP -MF "main.d" -MT " main.d "-mcpu = Cortex-a8 -marm -o "main.o"
" ../main.cpp»
../main.cpp:6: ошибка: ожидается, конструктор, деструктор или преобразование типов до того 'межд' марки: *** [main.o] Ошибка 1
Мы не можем вам помочь, если вы не публикуете материалы которые вы получаете. – Thomas
Каковы ошибки компиляции? – Cogwheel
Удалили ли вы поддержку компилятора и зависимость от вашей ссылки? –