У меня есть алгоритм обработки изображений, состоящий из матриц, у меня есть собственные коды операций с матрицами (умножение, обратное ...). Но я использую процессор ARM Cortex-A8 с сопроцессором NEON для векторизации, поскольку матричные операции - идеальные случаи для операций SIMD, я попросил компилятор (-mfpu = neon -mfloat-abi = softfp) сгенерировать NEON. инструкции для моего кода, но компилятор не может этого сделать, и затем я также попытался написать свой собственный внутренний код NEON для операций Matrix, но мне было очень трудно это сделать.
Итак, я подумал об использовании библиотеки Eigen, которая обещает векторизацию матричных операций. Поэтому я сразу загрузил библиотеку Eigen C ++ и попытался использовать ее, как указано в их руководствах, но, к сожалению, я получаю ошибки компиляции, когда запускаю их примеры программ.
Любой, кто имеет опыт использования Eigen, какие-нибудь примеры будут действительно полезны? Пожалуйста, помогите мне, как это сделать.
Помощь!
Спасибо
У меня есть папка Eigen по адресу: / home / ubuntu / Documents / eigen. Я установил этот путь в дополнительных каталогах моего проекта Eclipse на 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;
}
Я получаю ошибки -
Сборка конфигурации Debug для проекта 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: error: ожидаемый конструктор, деструктор или преобразование типа перед int make: *** [main.o] Ошибка 1