Compile with CMake v3.10 or above TODO: add OpenMP support Optimization: with gcc 7.3, auto vectorization is achieved with -O3 -march=native -ffast-math