I have an image processing algorithm that makes out matrices, I have my own matrix opcode (multiplication, inversion ...) with me. But I use an ARM Cortex-A8 processor that has a NEON coprocessor for vectorization, since matrix operations are ideal cases for SIMD operations, I asked the compiler (-mfpu = neon -mfloat-abi = softfp) to generate NEON instructions for my code, but the compiler does not, and then I also tried to write my own NEON initialization code for Matrix operations, but it was very difficult for me to do this.
So, I thought about using the Eigen library, which promises the vectorization of matrix operations. So I quickly downloaded the Eigen C ++ library and tried to use it as indicated in their tutorials, but unfortunately I get compilation errors when I run their sample programs .
Anyone who has experience using Eigen, any examples will be really helpful? Please help me how to do this.
Help!
thanks
I have an Eigen folder: / home / ubuntu / Documents / eigen I installed this path in the additional directories of the Eclipse C ++ project. Then I run the following program (Example) -
#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; }
The errors I receive are -
Build the configuration Debugging for the Test_Eigen **** project
to do everything
Building File: ../ main.cpp
Call: Sourcery g ++ C ++ Compiler
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: expected constructor, destructor or type conversion before 'int' make: *** [main.o] Error 1