У меня есть алгоритм обработки изображений, который делает из матриц, у меня есть свои собственные коды операции над матрицей (Умножение, Инверсия...) со мной. Но процессор, который я использую, является процессором ARM Cortex-A8, который имеет НЕОНОВЫЙ сопроцессор для векторизации, поскольку операции над матрицей являются идеальными случаями для операций SIMD, я попросил, чтобы компилятор (-mfpu=neon-mfloat-abi=softfp) генерировал НЕОНОВЫЕ инструкции для моего кода, но компилятору не удается сделать так, и затем я также попытался записать свой собственный НЕОН intrinsics код для Операций над матрицей, но мне было трудно очень сделать так.
Так, я думал об использовании библиотеки Eigen, которая обещает векторизацию операций над матрицей. Таким образом, я быстро загрузил Собственную библиотеку C++ и попытался использовать ее, как дали в их учебных руководствах, но, к сожалению, я получаю ошибки компиляции, когда я запускаю их примеры программы.
Кто-либо там, у кого есть опыт с помощью Собственного, какие-либо примеры, будет действительно полезен? Любезно помогите мне, как пойти об этом.
На помощь!
Спасибо
У меня есть папка Eigen в:/home/ubuntu/Documents/eigen я установил этот путь в дополнительных каталогах проекта C++ своего Eclipse. Затем я запускаю следующую программу (Пример) -
#include
// 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 - Стена-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
Макрос USING_PART_OF_NAMESPACE_EIGEN
был удален в Eigen 3. Вместо этого просто используйте
using namespace Eigen;
. Очевидно, руководство устарело.