Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not compiled with Eigen backend. #305

Closed
GD-fix opened this issue Aug 22, 2020 · 24 comments
Closed

Not compiled with Eigen backend. #305

GD-fix opened this issue Aug 22, 2020 · 24 comments

Comments

@GD-fix
Copy link

GD-fix commented Aug 22, 2020

.../KataGo-master/cpp> cmake . -DUSE_BACKEND=EIGEN
-- The C compiler identification is GNU 8.1.1
-- The CXX compiler identification is GNU 8.1.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Building 'katago' executable for GTP engine and other tools
-DUSE_BACKEND=EIGEN, using Eigen CPU backend
Including Git revision in the compiled executable, specify -DNO_GIT_REVISION=1 to disable
-- Found Git: /usr/bin/git (found version "2.17.1")
CMake Error at CMakeLists.txt:233 (find_package):
By not providing "FindEigen3.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Eigen3", but
CMake did not find one.

Could not find a package configuration file provided by "Eigen3" with any
of the following names:

Eigen3Config.cmake
eigen3-config.cmake

Add the installation prefix of "Eigen3" to CMAKE_PREFIX_PATH or set
"Eigen3_DIR" to a directory containing one of the above files. If "Eigen3"
provides a separate development package or SDK, be sure it has been
installed.

-- Configuring incomplete, errors occurred!

@lightvector
Copy link
Owner

lightvector commented Aug 22, 2020

You haven't installed Eigen correctly and/or you haven't configured CMake correctly. For windows, Eigen's documentation on how to install it for use with cmake is incorrect and somewhat misleading: https://eigen.tuxfamily.org/dox/GettingStarted.html claims that you don't have to install Eigen but actually the required cmake files are not there if you download it. Even though Eigen is header-only, the cmake files still need to be built, but then the next page relating to cmake https://eigen.tuxfamily.org/dox/TopicCMakeGuide.html skips right to assuming you've already figured out how to build and install it, rather than just unzipping the source.

The actual answer is provided in this thread:

https://stackoverflow.com/questions/48144415/not-found-eigen3-dir-when-configuring-a-cmake-project-in-windows

For linux, just installing the appropriate thing through your package manager should work fine (such as libeigen3-dev).

@lightvector
Copy link
Owner

Because this isn't documented well by Eigen and seems unnecessarily complicated for a header-only library that in theory shouldn't require a build and installation step, probably we should figure out something in KataGo's cmake that instructs users to just work around the mess and point cmake directly at the header files (so that you can simply unzip Eigen and have it work, without having to "build" it).

@GD-fix
Copy link
Author

GD-fix commented Aug 22, 2020

Thanks! I have downloaded (https://software.opensuse.org/search?utf8=%E2%9C%93&baseproject=openSUSE%3AFactory&q=eigen3) eigen3-devel (noarch.rpm) and shall try it (eigen3 itself has only src.rpm).

@lightvector
Copy link
Owner

Also again, I encourage you to use the LZ chat rather than opening issues here for things like this. :)

Because again, things like this are usually just missing packages that you haven't installed or set up on your particular system, rather than something that necessarily needs to be fixed in KataGo, and more people than just me might be able to help out. Although, for Windows I am trying to update KataGo's cmake setup to present and an easier workaround for users, so there does need to be some improvement in KataGo's docs regarding this.

@GD-fix
Copy link
Author

GD-fix commented Aug 29, 2020

I don't know, how usable the chat will be for me, if I don't using Go engines on this PC with Internet...
About Windows I don't know nothing.
The next error may need to be fixed in KataGo (doesn't have Eigen/Dense), I think:
.../KataGo-master/cpp> make -j 4
Scanning dependencies of target katago
[ 2%] Building CXX object CMakeFiles/katago.dir/core/config_parser.cpp.o
[ 2%] Building CXX object CMakeFiles/katago.dir/core/global.cpp.o
[ 5%] Building CXX object CMakeFiles/katago.dir/core/bsearch.cpp.o
[ 5%] Building CXX object CMakeFiles/katago.dir/core/datetime.cpp.o
[ 6%] Building CXX object CMakeFiles/katago.dir/core/elo.cpp.o
[ 8%] Building CXX object CMakeFiles/katago.dir/core/fancymath.cpp.o
[ 9%] Building CXX object CMakeFiles/katago.dir/core/hash.cpp.o
[ 10%] Building CXX object CMakeFiles/katago.dir/core/logger.cpp.o
[ 12%] Building CXX object CMakeFiles/katago.dir/core/makedir.cpp.o
[ 13%] Building CXX object CMakeFiles/katago.dir/core/md5.cpp.o
[ 15%] Building CXX object CMakeFiles/katago.dir/core/multithread.cpp.o
[ 16%] Building CXX object CMakeFiles/katago.dir/core/rand.cpp.o
[ 17%] Building CXX object CMakeFiles/katago.dir/core/rand_helpers.cpp.o
[ 19%] Building CXX object CMakeFiles/katago.dir/core/sha2.cpp.o
[ 20%] Building CXX object CMakeFiles/katago.dir/core/test.cpp.o
[ 21%] Building CXX object CMakeFiles/katago.dir/core/threadsafequeue.cpp.o
[ 23%] Building CXX object CMakeFiles/katago.dir/core/timer.cpp.o
[ 24%] Building CXX object CMakeFiles/katago.dir/game/board.cpp.o
[ 26%] Building CXX object CMakeFiles/katago.dir/game/rules.cpp.o
[ 27%] Building CXX object CMakeFiles/katago.dir/game/boardhistory.cpp.o
[ 28%] Building CXX object CMakeFiles/katago.dir/dataio/sgf.cpp.o
[ 30%] Building CXX object CMakeFiles/katago.dir/dataio/numpywrite.cpp.o
[ 31%] Building CXX object CMakeFiles/katago.dir/dataio/trainingwrite.cpp.o
[ 32%] Building CXX object CMakeFiles/katago.dir/dataio/loadmodel.cpp.o
[ 34%] Building CXX object CMakeFiles/katago.dir/dataio/lzparse.cpp.o
[ 35%] Building CXX object CMakeFiles/katago.dir/dataio/homedata.cpp.o
[ 36%] Building CXX object CMakeFiles/katago.dir/neuralnet/nninputs.cpp.o
[ 38%] Building CXX object CMakeFiles/katago.dir/neuralnet/modelversion.cpp.o
[ 39%] Building CXX object CMakeFiles/katago.dir/neuralnet/nneval.cpp.o
[ 41%] Building CXX object CMakeFiles/katago.dir/neuralnet/desc.cpp.o
[ 42%] Building CXX object CMakeFiles/katago.dir/neuralnet/eigenbackend.cpp.o
.../KataGo-master/cpp/neuralnet/eigenbackend.cpp:13:10: фатальная ошибка: Eigen/Dense: Нет такого файла или каталога
#include <Eigen/Dense>
^~~~~~~~~~~~~
компиляция прервана.
make[2]: *** [CMakeFiles/katago.dir/build.make:453: CMakeFiles/katago.dir/neuralnet/eigenbackend.cpp.o] Ошибка 1
make[2]: *** Ожидание завершения заданий…
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/katago.dir/all] Ошибка 2
make: *** [Makefile:84: all] Ошибка 2

@OmnipotentEntity
Copy link
Contributor

OmnipotentEntity commented Aug 29, 2020

Translated:

#include <Eigen / Dense>
^ ~~~~~~~~~~~~
compilation aborted.
make [2]: *** [CMakeFiles / katago.dir / build.make: 453: CMakeFiles / katago.dir / neuralnet / eigenbackend.cpp.o] Error 1
make [2]: *** Waiting for jobs to complete ...
make [1]: *** [CMakeFiles / Makefile2: 68: CMakeFiles / katago.dir / all] Error 2
make: *** [Makefile: 84: all] Error 2

You still don't have Eigen installed correctly. If you're currently running OpenSuse, you can install it by simply using sudo zypper install eigen3. Once you do that remove, your CMakeCache.txt file, and try rerunning cmake. (Deleting the cache gives CMake another chance at detecting it.)

If you are continuing to have problems after these steps, please come to the chat: http://discord.gg/5vacH5F

@GD-fix
Copy link
Author

GD-fix commented Aug 29, 2020

How You can see (https://software.opensuse.org/search?utf8=%E2%9C%93&baseproject=ALL&q=eigen3) there is only eigen3...src.rpm (i.e. source code). And there is non official libeigen3-devel (+ eigen3-devel, that I had installed).
I have downloaded these 2 packets too. On PC with Go, but without any net connection, I will install libeigen3-devel (by Yast2 Program Manager).
If it will not be helpfull, how I must install this downloaded source code eigen3 packet?
And cmake didn't give any error after eigen3-devel installing: there was make error (makeclean will not be helpfull in this case?)...

Thanks in advance.

@GD-fix
Copy link
Author

GD-fix commented Sep 5, 2020

As was expected, there is "nothing to do" with ...src.rpm:

zypper install ./eigen3-3.3.7-3.3.src.rpm
Получение метаданных репозитория "Go" ......................................................................................................................................[готово]
Сбор кэша репозитория "Go" .................................................................................................................................................[готово]
Загрузка данных о репозиториях...
Чтение установленных пакетов...
Строка "tmpRPMcache:eigen3=0:3.3.7-3.3" не найдена в именах пакетов. Пробуем возможности.
Поставщик "tmpRPMcache:eigen3=0:3.3.7-3.3" не найден.
Разрешение зависимостей пакетов...

Нечего выполнять.

So, because I didn't get answer here, how Katago developer expects his product must be installed on end users systems (except 1 particular OS - relic of the past), I had tried next steps (without of eigen3-devel packet uninstalling).
Unpack eigen3-3.3.7-3.3.src.rpm.
Unpack included eigen3-3.3.7.tar.bz2

cd eigen-eigen-323c052e1731
md 0_build
cd 0_build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
...{If it will need, I can copy this huge amount of output next time}
su -c 'make install'
...{This huge amount of output is in the next message, and the CMakeCache.txt was deleted}
.../KataGo-master/cpp> cmake . -DUSE_BACKEND=EIGEN -DNO_GIT_REVISION=1
...
.../KataGo-master/cpp> make clean && make
[ 1%] Building CXX object CMakeFiles/katago.dir/core/global.cpp.o
[ 2%] Building CXX object CMakeFiles/katago.dir/core/bsearch.cpp.o
[ 4%] Building CXX object CMakeFiles/katago.dir/core/config_parser.cpp.o
[ 5%] Building CXX object CMakeFiles/katago.dir/core/datetime.cpp.o
[ 6%] Building CXX object CMakeFiles/katago.dir/core/elo.cpp.o
[ 8%] Building CXX object CMakeFiles/katago.dir/core/fancymath.cpp.o
[ 9%] Building CXX object CMakeFiles/katago.dir/core/hash.cpp.o
[ 10%] Building CXX object CMakeFiles/katago.dir/core/logger.cpp.o
[ 12%] Building CXX object CMakeFiles/katago.dir/core/makedir.cpp.o
[ 13%] Building CXX object CMakeFiles/katago.dir/core/md5.cpp.o
[ 15%] Building CXX object CMakeFiles/katago.dir/core/multithread.cpp.o
[ 16%] Building CXX object CMakeFiles/katago.dir/core/rand.cpp.o
[ 17%] Building CXX object CMakeFiles/katago.dir/core/rand_helpers.cpp.o
[ 19%] Building CXX object CMakeFiles/katago.dir/core/sha2.cpp.o
[ 20%] Building CXX object CMakeFiles/katago.dir/core/test.cpp.o
[ 21%] Building CXX object CMakeFiles/katago.dir/core/threadsafequeue.cpp.o
[ 23%] Building CXX object CMakeFiles/katago.dir/core/timer.cpp.o
[ 24%] Building CXX object CMakeFiles/katago.dir/game/board.cpp.o
[ 26%] Building CXX object CMakeFiles/katago.dir/game/rules.cpp.o
[ 27%] Building CXX object CMakeFiles/katago.dir/game/boardhistory.cpp.o
[ 28%] Building CXX object CMakeFiles/katago.dir/dataio/sgf.cpp.o
[ 30%] Building CXX object CMakeFiles/katago.dir/dataio/numpywrite.cpp.o
[ 31%] Building CXX object CMakeFiles/katago.dir/dataio/trainingwrite.cpp.o
[ 32%] Building CXX object CMakeFiles/katago.dir/dataio/loadmodel.cpp.o
[ 34%] Building CXX object CMakeFiles/katago.dir/dataio/lzparse.cpp.o
[ 35%] Building CXX object CMakeFiles/katago.dir/dataio/homedata.cpp.o
[ 36%] Building CXX object CMakeFiles/katago.dir/neuralnet/nninputs.cpp.o
[ 38%] Building CXX object CMakeFiles/katago.dir/neuralnet/modelversion.cpp.o
[ 39%] Building CXX object CMakeFiles/katago.dir/neuralnet/nneval.cpp.o
[ 41%] Building CXX object CMakeFiles/katago.dir/neuralnet/desc.cpp.o
[ 42%] Building CXX object CMakeFiles/katago.dir/neuralnet/eigenbackend.cpp.o
/home/INSTall/0Go/katago/KataGo-master/cpp/neuralnet/eigenbackend.cpp:13:10: фатальная ошибка: Eigen/Dense: Нет такого файла или каталога
#include <Eigen/Dense>
^~~~~~~~~~~~~
компиляция прервана.
make[2]: *** [CMakeFiles/katago.dir/build.make:453: CMakeFiles/katago.dir/neuralnet/eigenbackend.cpp.o] Ошибка 1
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/katago.dir/all] Ошибка 2
make: *** [Makefile:84: all] Ошибка 2

So, there isn't any differences with installed or not eigen3 packet: it's Katago developer mistake, when the product doesn't work on end user OS (may be except on 1 particular)...

@GD-fix
Copy link
Author

GD-fix commented Sep 5, 2020

Install the project...
-- Install configuration: "Release"
-- Up-to-date: /usr/include/eigen3/signature_of_eigen3_matrix_library
-- Installing: /usr/share/pkgconfig/eigen3.pc
-- Installing: /usr/share/eigen3/cmake/Eigen3Targets.cmake
-- Up-to-date: /usr/share/eigen3/cmake/UseEigen3.cmake
-- Installing: /usr/share/eigen3/cmake/Eigen3Config.cmake
-- Installing: /usr/share/eigen3/cmake/Eigen3ConfigVersion.cmake
-- Up-to-date: /usr/include/eigen3/Eigen/Cholesky
-- Up-to-date: /usr/include/eigen3/Eigen/CholmodSupport
-- Installing: /usr/include/eigen3/Eigen/Core
-- Up-to-date: /usr/include/eigen3/Eigen/Dense
-- Up-to-date: /usr/include/eigen3/Eigen/Eigen
-- Up-to-date: /usr/include/eigen3/Eigen/Eigenvalues
-- Up-to-date: /usr/include/eigen3/Eigen/Geometry
-- Up-to-date: /usr/include/eigen3/Eigen/Householder
-- Up-to-date: /usr/include/eigen3/Eigen/IterativeLinearSolvers
-- Up-to-date: /usr/include/eigen3/Eigen/Jacobi
-- Up-to-date: /usr/include/eigen3/Eigen/LU
-- Up-to-date: /usr/include/eigen3/Eigen/MetisSupport
-- Up-to-date: /usr/include/eigen3/Eigen/OrderingMethods
-- Up-to-date: /usr/include/eigen3/Eigen/PaStiXSupport
-- Up-to-date: /usr/include/eigen3/Eigen/PardisoSupport
-- Up-to-date: /usr/include/eigen3/Eigen/QR
-- Up-to-date: /usr/include/eigen3/Eigen/QtAlignedMalloc
-- Up-to-date: /usr/include/eigen3/Eigen/SPQRSupport
-- Up-to-date: /usr/include/eigen3/Eigen/SVD
-- Up-to-date: /usr/include/eigen3/Eigen/Sparse
-- Up-to-date: /usr/include/eigen3/Eigen/SparseCholesky
-- Up-to-date: /usr/include/eigen3/Eigen/SparseCore
-- Up-to-date: /usr/include/eigen3/Eigen/SparseLU
-- Up-to-date: /usr/include/eigen3/Eigen/SparseQR
-- Up-to-date: /usr/include/eigen3/Eigen/StdDeque
-- Up-to-date: /usr/include/eigen3/Eigen/StdList
-- Up-to-date: /usr/include/eigen3/Eigen/StdVector
-- Up-to-date: /usr/include/eigen3/Eigen/SuperLUSupport
-- Up-to-date: /usr/include/eigen3/Eigen/UmfPackSupport
-- Up-to-date: /usr/include/eigen3/Eigen/src
-- Up-to-date: /usr/include/eigen3/Eigen/src/SVD
-- Up-to-date: /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SVD/SVDBase.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/LU
-- Up-to-date: /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/LU/FullPivLU.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/LU/arch
-- Up-to-date: /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/LU/InverseImpl.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/LU/Determinant.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Select.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/MapBase.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/VectorBlock.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Transpose.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/MatrixBase.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Map.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/BandMatrix.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/EigenBase.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Redux.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/IO.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Matrix.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Fuzzy.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Reverse.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Array.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/ArrayBase.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/NestByValue.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Block.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/StableNorm.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/util
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h
-- Installing: /usr/include/eigen3/Eigen/src/Core/util/Macros.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/util/Memory.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/util/Meta.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/util/Constants.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/AltiVec
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/CUDA
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/SSE
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/NEON
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/AVX512
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/Default
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/ZVector
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/AVX
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Solve.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Inverse.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Product.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/SolverBase.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Swap.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/functors
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/NumTraits.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/CoreIterators.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/NoAlias.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Random.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Visitor.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Dot.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Stride.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/DenseBase.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Ref.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Assign.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Diagonal.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/DenseStorage.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/MathFunctions.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Transpositions.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Core/Replicate.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SPQRSupport
-- Up-to-date: /usr/include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/OrderingMethods
-- Up-to-date: /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Jacobi
-- Up-to-date: /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers
-- Up-to-date: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/misc
-- Up-to-date: /usr/include/eigen3/Eigen/src/misc/lapack.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/misc/blas.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/misc/lapacke.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/misc/Kernel.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/misc/Image.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/PardisoSupport
-- Up-to-date: /usr/include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/StlSupport
-- Up-to-date: /usr/include/eigen3/Eigen/src/StlSupport/StdDeque.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/StlSupport/StdVector.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/StlSupport/StdList.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/StlSupport/details.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/MetisSupport
-- Up-to-date: /usr/include/eigen3/Eigen/src/MetisSupport/MetisSupport.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SuperLUSupport
-- Up-to-date: /usr/include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/QR
-- Up-to-date: /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/arch
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/Transform.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/Translation.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Geometry/Scaling.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Eigenvalues
-- Up-to-date: /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/UmfPackSupport
-- Up-to-date: /usr/include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCholesky
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/CholmodSupport
-- Up-to-date: /usr/include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/PaStiXSupport
-- Up-to-date: /usr/include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Cholesky
-- Up-to-date: /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Cholesky/LLT.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/plugins
-- Up-to-date: /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Householder
-- Up-to-date: /usr/include/eigen3/Eigen/src/Householder/Householder.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseQR
-- Up-to-date: /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/AdolcForward
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/AlignedVector3
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/ArpackSupport
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/AutoDiff
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/BVH
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/EulerAngles
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/FFT
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/IterativeSolvers
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/KroneckerProduct
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/LevenbergMarquardt
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/MatrixFunctions
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/MoreVectorization
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/MPRealSupport
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/NonLinearOptimization
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/NumericalDiff
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/OpenGLSupport
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/Polynomials
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/Skyline
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/SparseExtra
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/SpecialFunctions
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/Splines
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Splines
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Splines/Spline.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/MatrixFunctions
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/MoreVectorization
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/KroneckerProduct
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/AutoDiff
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/NonLinearOptimization
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Polynomials
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Eigenvalues
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SparseExtra
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Skyline
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/BVH
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/EulerAngles
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/NumericalDiff
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SpecialFunctions
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/CUDA
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/CUDA/CudaSpecialFunctions.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/FFT
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/Tensor
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/ThreadPool
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/util
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateCXX11Meta.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/SimpleThreadPool.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractAccessor.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSycl.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclRun.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractFunctors.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclTuple.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclPlaceHolderExpr.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExprConstructor.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclConvertToDeviceExpression.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclLeafCount.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h
-- Up-to-date: /usr/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h

@GD-fix
Copy link
Author

GD-fix commented Sep 5, 2020

For comparison the file list of standardly installed packet (from Yast2 Program Manager):

eigen3-devel - C++ Template Library for Linear Algebra

/usr/include/eigen3
/usr/include/eigen3/Eigen
/usr/include/eigen3/Eigen/Cholesky
/usr/include/eigen3/Eigen/CholmodSupport
/usr/include/eigen3/Eigen/Core
/usr/include/eigen3/Eigen/Dense
/usr/include/eigen3/Eigen/Eigen
/usr/include/eigen3/Eigen/Eigenvalues
/usr/include/eigen3/Eigen/Geometry
/usr/include/eigen3/Eigen/Householder
/usr/include/eigen3/Eigen/IterativeLinearSolvers
/usr/include/eigen3/Eigen/Jacobi
/usr/include/eigen3/Eigen/LU
/usr/include/eigen3/Eigen/MetisSupport
/usr/include/eigen3/Eigen/OrderingMethods
/usr/include/eigen3/Eigen/PaStiXSupport
/usr/include/eigen3/Eigen/PardisoSupport
/usr/include/eigen3/Eigen/QR
/usr/include/eigen3/Eigen/QtAlignedMalloc
/usr/include/eigen3/Eigen/SPQRSupport
/usr/include/eigen3/Eigen/SVD
/usr/include/eigen3/Eigen/Sparse
/usr/include/eigen3/Eigen/SparseCholesky
/usr/include/eigen3/Eigen/SparseCore
/usr/include/eigen3/Eigen/SparseLU
/usr/include/eigen3/Eigen/SparseQR
/usr/include/eigen3/Eigen/StdDeque
/usr/include/eigen3/Eigen/StdList
/usr/include/eigen3/Eigen/StdVector
/usr/include/eigen3/Eigen/SuperLUSupport
/usr/include/eigen3/Eigen/UmfPackSupport
/usr/include/eigen3/Eigen/src
/usr/include/eigen3/Eigen/src/Cholesky
/usr/include/eigen3/Eigen/src/Cholesky/LDLT.h
/usr/include/eigen3/Eigen/src/Cholesky/LLT.h
/usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h
/usr/include/eigen3/Eigen/src/CholmodSupport
/usr/include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h
/usr/include/eigen3/Eigen/src/Core
/usr/include/eigen3/Eigen/src/Core/Array.h
/usr/include/eigen3/Eigen/src/Core/ArrayBase.h
/usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h
/usr/include/eigen3/Eigen/src/Core/Assign.h
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h
/usr/include/eigen3/Eigen/src/Core/Assign_MKL.h
/usr/include/eigen3/Eigen/src/Core/BandMatrix.h
/usr/include/eigen3/Eigen/src/Core/Block.h
/usr/include/eigen3/Eigen/src/Core/BooleanRedux.h
/usr/include/eigen3/Eigen/src/Core/CommaInitializer.h
/usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h
/usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h
/usr/include/eigen3/Eigen/src/Core/CoreIterators.h
/usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h
/usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h
/usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h
/usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h
/usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h
/usr/include/eigen3/Eigen/src/Core/DenseBase.h
/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h
/usr/include/eigen3/Eigen/src/Core/DenseStorage.h
/usr/include/eigen3/Eigen/src/Core/Diagonal.h
/usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h
/usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h
/usr/include/eigen3/Eigen/src/Core/Dot.h
/usr/include/eigen3/Eigen/src/Core/EigenBase.h
/usr/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h
/usr/include/eigen3/Eigen/src/Core/Fuzzy.h
/usr/include/eigen3/Eigen/src/Core/GeneralProduct.h
/usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h
/usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h
/usr/include/eigen3/Eigen/src/Core/IO.h
/usr/include/eigen3/Eigen/src/Core/Inverse.h
/usr/include/eigen3/Eigen/src/Core/Map.h
/usr/include/eigen3/Eigen/src/Core/MapBase.h
/usr/include/eigen3/Eigen/src/Core/MathFunctions.h
/usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h
/usr/include/eigen3/Eigen/src/Core/Matrix.h
/usr/include/eigen3/Eigen/src/Core/MatrixBase.h
/usr/include/eigen3/Eigen/src/Core/NestByValue.h
/usr/include/eigen3/Eigen/src/Core/NoAlias.h
/usr/include/eigen3/Eigen/src/Core/NumTraits.h
/usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h
/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h
/usr/include/eigen3/Eigen/src/Core/Product.h
/usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h
/usr/include/eigen3/Eigen/src/Core/Random.h
/usr/include/eigen3/Eigen/src/Core/Redux.h
/usr/include/eigen3/Eigen/src/Core/Ref.h
/usr/include/eigen3/Eigen/src/Core/Replicate.h
/usr/include/eigen3/Eigen/src/Core/ReturnByValue.h
/usr/include/eigen3/Eigen/src/Core/Reverse.h
/usr/include/eigen3/Eigen/src/Core/Select.h
/usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h
/usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h
/usr/include/eigen3/Eigen/src/Core/Solve.h
/usr/include/eigen3/Eigen/src/Core/SolveTriangular.h
/usr/include/eigen3/Eigen/src/Core/SolverBase.h
/usr/include/eigen3/Eigen/src/Core/StableNorm.h
/usr/include/eigen3/Eigen/src/Core/Stride.h
/usr/include/eigen3/Eigen/src/Core/Swap.h
/usr/include/eigen3/Eigen/src/Core/Transpose.h
/usr/include/eigen3/Eigen/src/Core/Transpositions.h
/usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h
/usr/include/eigen3/Eigen/src/Core/VectorBlock.h
/usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h
/usr/include/eigen3/Eigen/src/Core/Visitor.h
/usr/include/eigen3/Eigen/src/Core/arch
/usr/include/eigen3/Eigen/src/Core/arch/AVX
/usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h
/usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h
/usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h
/usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h
/usr/include/eigen3/Eigen/src/Core/arch/AVX512
/usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h
/usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h
/usr/include/eigen3/Eigen/src/Core/arch/AltiVec
/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h
/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h
/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h
/usr/include/eigen3/Eigen/src/Core/arch/CUDA
/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h
/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h
/usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h
/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h
/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
/usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h
/usr/include/eigen3/Eigen/src/Core/arch/Default
/usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h
/usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h
/usr/include/eigen3/Eigen/src/Core/arch/NEON
/usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h
/usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h
/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h
/usr/include/eigen3/Eigen/src/Core/arch/SSE
/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h
/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
/usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h
/usr/include/eigen3/Eigen/src/Core/arch/ZVector
/usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h
/usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h
/usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h
/usr/include/eigen3/Eigen/src/Core/functors
/usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h
/usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h
/usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h
/usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h
/usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h
/usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h
/usr/include/eigen3/Eigen/src/Core/products
/usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h
/usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h
/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h
/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h
/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h
/usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h
/usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h
/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h
/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h
/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h
/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h
/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h
/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h
/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h
/usr/include/eigen3/Eigen/src/Core/util
/usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h
/usr/include/eigen3/Eigen/src/Core/util/Constants.h
/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
/usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h
/usr/include/eigen3/Eigen/src/Core/util/MKL_support.h
/usr/include/eigen3/Eigen/src/Core/util/Macros.h
/usr/include/eigen3/Eigen/src/Core/util/Memory.h
/usr/include/eigen3/Eigen/src/Core/util/Meta.h
/usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h
/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h
/usr/include/eigen3/Eigen/src/Core/util/XprHelper.h
/usr/include/eigen3/Eigen/src/Eigenvalues
/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h
/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h
/usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h
/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
/usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
/usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h
/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h
/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h
/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
/usr/include/eigen3/Eigen/src/Geometry
/usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h
/usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h
/usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h
/usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h
/usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h
/usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h
/usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h
/usr/include/eigen3/Eigen/src/Geometry/Quaternion.h
/usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h
/usr/include/eigen3/Eigen/src/Geometry/RotationBase.h
/usr/include/eigen3/Eigen/src/Geometry/Scaling.h
/usr/include/eigen3/Eigen/src/Geometry/Transform.h
/usr/include/eigen3/Eigen/src/Geometry/Translation.h
/usr/include/eigen3/Eigen/src/Geometry/Umeyama.h
/usr/include/eigen3/Eigen/src/Geometry/arch
/usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h
/usr/include/eigen3/Eigen/src/Householder
/usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h
/usr/include/eigen3/Eigen/src/Householder/Householder.h
/usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h
/usr/include/eigen3/Eigen/src/IterativeLinearSolvers
/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h
/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h
/usr/include/eigen3/Eigen/src/Jacobi
/usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h
/usr/include/eigen3/Eigen/src/LU
/usr/include/eigen3/Eigen/src/LU/Determinant.h
/usr/include/eigen3/Eigen/src/LU/FullPivLU.h
/usr/include/eigen3/Eigen/src/LU/InverseImpl.h
/usr/include/eigen3/Eigen/src/LU/PartialPivLU.h
/usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h
/usr/include/eigen3/Eigen/src/LU/arch
/usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h
/usr/include/eigen3/Eigen/src/MetisSupport
/usr/include/eigen3/Eigen/src/MetisSupport/MetisSupport.h
/usr/include/eigen3/Eigen/src/OrderingMethods
/usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h
/usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h
/usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h
/usr/include/eigen3/Eigen/src/PaStiXSupport
/usr/include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h
/usr/include/eigen3/Eigen/src/PardisoSupport
/usr/include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h
/usr/include/eigen3/Eigen/src/QR
/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h
/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h
/usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h
/usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h
/usr/include/eigen3/Eigen/src/QR/HouseholderQR.h
/usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h
/usr/include/eigen3/Eigen/src/SPQRSupport
/usr/include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h
/usr/include/eigen3/Eigen/src/SVD
/usr/include/eigen3/Eigen/src/SVD/BDCSVD.h
/usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h
/usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h
/usr/include/eigen3/Eigen/src/SVD/SVDBase.h
/usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h
/usr/include/eigen3/Eigen/src/SparseCholesky
/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h
/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
/usr/include/eigen3/Eigen/src/SparseCore
/usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h
/usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h
/usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
/usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h
/usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h
/usr/include/eigen3/Eigen/src/SparseCore/SparseView.h
/usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h
/usr/include/eigen3/Eigen/src/SparseLU
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h
/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h
/usr/include/eigen3/Eigen/src/SparseQR
/usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h
/usr/include/eigen3/Eigen/src/StlSupport
/usr/include/eigen3/Eigen/src/StlSupport/StdDeque.h
/usr/include/eigen3/Eigen/src/StlSupport/StdList.h
/usr/include/eigen3/Eigen/src/StlSupport/StdVector.h
/usr/include/eigen3/Eigen/src/StlSupport/details.h
/usr/include/eigen3/Eigen/src/SuperLUSupport
/usr/include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h
/usr/include/eigen3/Eigen/src/UmfPackSupport
/usr/include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h
/usr/include/eigen3/Eigen/src/misc
/usr/include/eigen3/Eigen/src/misc/Image.h
/usr/include/eigen3/Eigen/src/misc/Kernel.h
/usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h
/usr/include/eigen3/Eigen/src/misc/blas.h
/usr/include/eigen3/Eigen/src/misc/lapack.h
/usr/include/eigen3/Eigen/src/misc/lapacke.h
/usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h
/usr/include/eigen3/Eigen/src/plugins
/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h
/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h
/usr/include/eigen3/Eigen/src/plugins/BlockMethods.h
/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
/usr/include/eigen3/signature_of_eigen3_matrix_library
/usr/include/eigen3/unsupported
/usr/include/eigen3/unsupported/Eigen
/usr/include/eigen3/unsupported/Eigen/AdolcForward
/usr/include/eigen3/unsupported/Eigen/AlignedVector3
/usr/include/eigen3/unsupported/Eigen/ArpackSupport
/usr/include/eigen3/unsupported/Eigen/AutoDiff
/usr/include/eigen3/unsupported/Eigen/BVH
/usr/include/eigen3/unsupported/Eigen/CXX11
/usr/include/eigen3/unsupported/Eigen/CXX11/Tensor
/usr/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry
/usr/include/eigen3/unsupported/Eigen/CXX11/ThreadPool
/usr/include/eigen3/unsupported/Eigen/CXX11/src
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSycl.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclConvertToDeviceExpression.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExprConstructor.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractAccessor.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractFunctors.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclLeafCount.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclPlaceHolderExpr.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclRun.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorSyclTuple.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry
/usr/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util
/usr/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool
/usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/SimpleThreadPool.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/util
/usr/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateCXX11Meta.h
/usr/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h
/usr/include/eigen3/unsupported/Eigen/EulerAngles
/usr/include/eigen3/unsupported/Eigen/FFT
/usr/include/eigen3/unsupported/Eigen/IterativeSolvers
/usr/include/eigen3/unsupported/Eigen/KroneckerProduct
/usr/include/eigen3/unsupported/Eigen/LevenbergMarquardt
/usr/include/eigen3/unsupported/Eigen/MPRealSupport
/usr/include/eigen3/unsupported/Eigen/MatrixFunctions
/usr/include/eigen3/unsupported/Eigen/MoreVectorization
/usr/include/eigen3/unsupported/Eigen/NonLinearOptimization
/usr/include/eigen3/unsupported/Eigen/NumericalDiff
/usr/include/eigen3/unsupported/Eigen/OpenGLSupport
/usr/include/eigen3/unsupported/Eigen/Polynomials
/usr/include/eigen3/unsupported/Eigen/Skyline
/usr/include/eigen3/unsupported/Eigen/SparseExtra
/usr/include/eigen3/unsupported/Eigen/SpecialFunctions
/usr/include/eigen3/unsupported/Eigen/Splines
/usr/include/eigen3/unsupported/Eigen/src
/usr/include/eigen3/unsupported/Eigen/src/AutoDiff
/usr/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h
/usr/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h
/usr/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h
/usr/include/eigen3/unsupported/Eigen/src/BVH
/usr/include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h
/usr/include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h
/usr/include/eigen3/unsupported/Eigen/src/Eigenvalues
/usr/include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h
/usr/include/eigen3/unsupported/Eigen/src/EulerAngles
/usr/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h
/usr/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h
/usr/include/eigen3/unsupported/Eigen/src/FFT
/usr/include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h
/usr/include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h
/usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers
/usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h
/usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h
/usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h
/usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h
/usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h
/usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h
/usr/include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h
/usr/include/eigen3/unsupported/Eigen/src/KroneckerProduct
/usr/include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h
/usr/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt
/usr/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h
/usr/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h
/usr/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h
/usr/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h
/usr/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h
/usr/include/eigen3/unsupported/Eigen/src/MatrixFunctions
/usr/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h
/usr/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h
/usr/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h
/usr/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h
...
...

@lightvector
Copy link
Owner

lightvector commented Sep 5, 2020

It sounds like you have a sounds like a cmake/eigen3 issue - cmake is probably failing to find the right path for your eigen3 installation, or eigen3 is misconfigured somehow.

The root problem is:

Your program manager claims that /usr/include/eigen3/Eigen/Dense exists.
Your compiler claims that #include <Eigen/Dense> is not being found.

That means cmake, when instructed to require Eigen, must be failing to find and add /usr/include/eigen3 among the system include paths. If it were successfully instructing your compiler to add a system path of /usr/include/eigen3, then <Eigen/Dense> would resolve to /usr/include/eigen3/Eigen/Dense and you would not see such a compile error.

So here are some routes that you might try. More then one of them might work, so pick your favorite, and try it, and if it fails, try another one:

  • How old is your version of cmake? If this is simply a cmake issue, there is a chance that this is improved in more recent cmake versions. Although, I don't think this is likely to work, I suspect your eigen configuration may instead have an issue.

    Explanation: For every different library, cmake has some messy set of heuristics to find all the different places that library might be installed on different kinds of operating systems, and to work with different compilers and build environments and everything. Obviously, it would be painful and extremely difficult for KataGo to try to manually reproduce all of these things on every possible operating system. So we mostly just rely on cmake, because this is cmake's purpose. But cmake isn't perfect either.

  • As I understand you, your cmake is no longer complaining about failing to find eigen ever since you installed eigen3-devel. But then instead make fails to find it. Correct?

    Cmake's job is to figure out based on your specific os and your build environment what the right commands are to provide to your specific compiler, and generate a makefile that does this. If it thinks it finds Eigen3, it should be attempting to provide Eigen3 on the system include path to the compiler.

    At any point, you may run make like make VERBOSE=1 for it to output every command in full as it runs it, to see exactly what arguments your compiler is getting. In particular, you will be able to tell here if it's specifying the extra system include directory for Eigen incorrectly. So... what system path is cmake adding that is not /usr/include/eigen3?

  • Alternatively, you may peek inside CMakeCache.txt. You can see all the variables that cmake has defined internally, including probably variables that relate to Eigen3. Those can maybe provide a hint about how cmake might be pointed to the wrong paths here, if it is.

  • The last time I checked Eigen3Config.cmake in Eigen on Windows, it was actually hardcoded by Eigen3 developers in a way specifically that would make its use fail with cmake even when following Eigen3's documentation for how to use the library, unless installed in a different not-well-documented manner, due to a hardcoded relative path that expected the files to be installed in a very specific directory structure. It took a while for me to figure out, the flaw was in some sense more with how Eigen3 devs documented and implemented their cmake integration than with cmake itself.

    Perhaps you have encountered a similar issue, but this time on Linux. I would hope that the version of Eigen3 in your program manager doesn't have that flaw, but there is a chance it might.

    Your program manager is telling you that the following has been installed:
    /usr/share/eigen3/cmake/Eigen3Config.cmake

    The bug I found was that on Windows, this file was hardcoded to look for a path that in a very specific relative location, and for some usages, this path would point to the wrong place. If your inspection of verbose make and CmakeCache does reveal some sort of wrong path, then one could consider to cat this config file to see if this is the source of the wrong path on your system.

  • An ultimate workaround would be to just directly specify a system include path to your compiler.
    For g++, this would be via -isystem, so I think you could try something like:
    cmake <other cmake arguments that you already have> "-DCMAKE_CXX_FLAGS=-isystem /usr/include/eigen3"

The last solution is of course hacky and not very generalizable. But once you've gotten the issue solved, in the event that you want to help make things better for other users in your situation, you could consider helping debug the situation, looking at your unique build environment and why things went wrong. Due to the very poor documentation of Eigen3+cmake on Windows, I added a bunch of specific MSVC-specific error guidance and workarounds to try to help the common case a user might get stuck. Once you've got it working, if you think there is error guidance that KataGo could add to its cmakelists would help in your case (Linux, rather than Windows) that would also not be misleading and trigger when the error was something else instead, I could try adding that.

@GD-fix
Copy link
Author

GD-fix commented Sep 12, 2020

" As I understand you, your cmake is no longer complaining about failing to find eigen ever since you installed eigen3-devel. But then instead make fails to find it. Correct?"
.../KataGo-master/cpp> cmake . -DUSE_BACKEND=EIGEN -DNO_GIT_REVISION=1
-- The C compiler identification is GNU 8.1.1
-- The CXX compiler identification is GNU 8.1.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Building 'katago' executable for GTP engine and other tools
-DUSE_BACKEND=EIGEN, using Eigen CPU backend
-DNO_GIT_REVISION=1 is set, avoiding including the Git revision in compiled executable
-- Found Eigen3: /usr/include/eigen3 (Required is at least version "2.91.0")
Found Eigen3 at
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11")
CMake Warning at CMakeLists.txt:253 (message):
WARNING: libzip library was NOT found. KataGo should still work
for GTP/matches/analysis if everything else is good, but selfplay for
writing training data will not be possible.
...

I'm unsure, that "Found Eigen3 at " (i.e. with void ${EIGEN3_INCLUDE_DIRS}) is that, what it must be, and this is correct...

Then I had edited CMakeLists.txt:
...
find_package(Eigen3 REQUIRED)
if(Eigen3_FOUND)
include_directories(SYSTEM ${EIGEN3_INCLUDE_DIRS})
message("Found Eigen3 at ${EIGEN3_INCLUDE_DIRS}")
endif(Eigen3_FOUND)
...

and had got:
...
-- Found Eigen3: /usr/include/eigen3 (Required is at least version "2.91.0")
Found Eigen3 at
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11")
Found ZLIB at /usr/include
...

Comparing of Eigen3 and ZLIB gives (for my non developer opinion) the next result:
Cmake finds the package "Eigen3", but without information about its version, and required (in CMakeLists.txt) variable "EIGEN3_INCLUDE_DIRS" isn't valid, or Cmake cann't get information about Eigen3 include dir's too...

" At any point, you may run make like make VERBOSE=1 for it to output every command in full as it runs it, to see exactly what arguments your compiler is getting. In particular, you will be able to tell here if it's specifying the extra system include directory for Eigen incorrectly. So... what system path is cmake adding that is not /usr/include/eigen3?
Alternatively, you may peek inside CMakeCache.txt. You can see all the variables that cmake has defined internally, including probably variables that relate to Eigen3. Those can maybe provide a hint about how cmake might be pointed to the wrong paths here, if it is."
I think, the path is void (empty).

" Your program manager is telling you that the following has been installed:
/usr/share/eigen3/cmake/Eigen3Config.cmake
The bug I found was that on Windows, this file was hardcoded to look for a path that in a very specific relative location, and for some usages, this path would point to the wrong place. If your inspection of verbose make and CmakeCache does reveal some sort of wrong path, then one could consider to cat this config file to see if this is the source of the wrong path on your system."
I had edited CMakeLists.txt (with some strokes added from /usr/share/eigen3/cmake/Eigen3Config.cmake with modification of PACKAGE_PREFIX_DIR to "/usr"):
...
elseif(USE_BACKEND STREQUAL "EIGEN")
target_compile_definitions(katago PRIVATE USE_EIGEN_BACKEND)
find_package(Eigen3 REQUIRED)
get_filename_component(PACKAGE_PREFIX_DIR "/usr" ABSOLUTE)
include ("${PACKAGE_PREFIX_DIR}/share/eigen3/cmake/Eigen3Targets.cmake")

Legacy variables, do not use. May be removed in the future.

set (EIGEN3_FOUND 1)
set (EIGEN3_USE_FILE "${PACKAGE_PREFIX_DIR}/share/eigen3/cmake/UseEigen3.cmake")
set (EIGEN3_DEFINITIONS "")
set (EIGEN3_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/include/eigen3")
set (EIGEN3_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/include/eigen3")
set (EIGEN3_ROOT_DIR "${PACKAGE_PREFIX_DIR}")
set (EIGEN3_VERSION_STRING "3.3.7")
set (EIGEN3_VERSION_MAJOR "3")
set (EIGEN3_VERSION_MINOR "3")
set (EIGEN3_VERSION_PATCH "7")
include_directories(SYSTEM ${EIGEN3_INCLUDE_DIRS})
message("Found Eigen3 at ${EIGEN3_ROOT_DIR} with include dirs ${EIGEN3_INCLUDE_DIRS} or ${EIGEN3_INCLUDE_DIR} and version ${EIGEN3_VERSION_STRING}")
endif()
...

and had got:
...
-- Found Eigen3: /usr/include/eigen3 (Required is at least version "2.91.0")
Found Eigen3 at /usr with include dirs /usr/include/eigen3 or /usr/include/eigen3 and version 3.3.7
...

Of course, it's better instead of "hardcoded" path to get (and set) it somehow from "find_package"...

Then I had built KataGo:
.../KataGo-master/cpp> make clean && make -j 4
Scanning dependencies of target katago
[ 1%] Building CXX object CMakeFiles/katago.dir/core/global.cpp.o
[ 2%] Building CXX object CMakeFiles/katago.dir/core/bsearch.cpp.o
[ 5%] Building CXX object CMakeFiles/katago.dir/core/datetime.cpp.o
[ 5%] Building CXX object CMakeFiles/katago.dir/core/config_parser.cpp.o
[ 6%] Building CXX object CMakeFiles/katago.dir/core/elo.cpp.o
[ 8%] Building CXX object CMakeFiles/katago.dir/core/fancymath.cpp.o
[ 9%] Building CXX object CMakeFiles/katago.dir/core/hash.cpp.o
[ 10%] Building CXX object CMakeFiles/katago.dir/core/logger.cpp.o
[ 12%] Building CXX object CMakeFiles/katago.dir/core/makedir.cpp.o
[ 13%] Building CXX object CMakeFiles/katago.dir/core/md5.cpp.o
[ 15%] Building CXX object CMakeFiles/katago.dir/core/multithread.cpp.o
[ 16%] Building CXX object CMakeFiles/katago.dir/core/rand.cpp.o
[ 17%] Building CXX object CMakeFiles/katago.dir/core/rand_helpers.cpp.o
[ 19%] Building CXX object CMakeFiles/katago.dir/core/sha2.cpp.o
[ 20%] Building CXX object CMakeFiles/katago.dir/core/test.cpp.o
[ 21%] Building CXX object CMakeFiles/katago.dir/core/threadsafequeue.cpp.o
[ 23%] Building CXX object CMakeFiles/katago.dir/core/timer.cpp.o
[ 24%] Building CXX object CMakeFiles/katago.dir/game/board.cpp.o
[ 26%] Building CXX object CMakeFiles/katago.dir/game/rules.cpp.o
[ 27%] Building CXX object CMakeFiles/katago.dir/game/boardhistory.cpp.o
[ 28%] Building CXX object CMakeFiles/katago.dir/dataio/sgf.cpp.o
[ 30%] Building CXX object CMakeFiles/katago.dir/dataio/numpywrite.cpp.o
[ 31%] Building CXX object CMakeFiles/katago.dir/dataio/trainingwrite.cpp.o
[ 32%] Building CXX object CMakeFiles/katago.dir/dataio/loadmodel.cpp.o
[ 34%] Building CXX object CMakeFiles/katago.dir/dataio/lzparse.cpp.o
[ 35%] Building CXX object CMakeFiles/katago.dir/dataio/homedata.cpp.o
[ 36%] Building CXX object CMakeFiles/katago.dir/neuralnet/nninputs.cpp.o
[ 38%] Building CXX object CMakeFiles/katago.dir/neuralnet/modelversion.cpp.o
[ 39%] Building CXX object CMakeFiles/katago.dir/neuralnet/nneval.cpp.o
[ 41%] Building CXX object CMakeFiles/katago.dir/neuralnet/desc.cpp.o
[ 42%] Building CXX object CMakeFiles/katago.dir/neuralnet/eigenbackend.cpp.o
[ 43%] Building CXX object CMakeFiles/katago.dir/search/timecontrols.cpp.o
[ 45%] Building CXX object CMakeFiles/katago.dir/search/searchparams.cpp.o
[ 46%] Building CXX object CMakeFiles/katago.dir/search/mutexpool.cpp.o
[ 47%] Building CXX object CMakeFiles/katago.dir/search/search.cpp.o
[ 49%] Building CXX object CMakeFiles/katago.dir/search/searchresults.cpp.o
[ 50%] Building CXX object CMakeFiles/katago.dir/search/asyncbot.cpp.o
[ 52%] Building CXX object CMakeFiles/katago.dir/search/distributiontable.cpp.o
[ 53%] Building CXX object CMakeFiles/katago.dir/search/analysisdata.cpp.o
[ 54%] Building CXX object CMakeFiles/katago.dir/program/gtpconfig.cpp.o
[ 56%] Building CXX object CMakeFiles/katago.dir/program/setup.cpp.o
[ 57%] Building CXX object CMakeFiles/katago.dir/program/playutils.cpp.o
[ 58%] Building CXX object CMakeFiles/katago.dir/program/playsettings.cpp.o
[ 60%] Building CXX object CMakeFiles/katago.dir/program/play.cpp.o
[ 61%] Building CXX object CMakeFiles/katago.dir/program/selfplaymanager.cpp.o
[ 63%] Building CXX object CMakeFiles/katago.dir/tests/testboardarea.cpp.o
[ 64%] Building CXX object CMakeFiles/katago.dir/tests/testboardbasic.cpp.o
[ 65%] Building CXX object CMakeFiles/katago.dir/tests/testcommon.cpp.o
[ 67%] Building CXX object CMakeFiles/katago.dir/tests/testrules.cpp.o
[ 68%] Building CXX object CMakeFiles/katago.dir/tests/testscore.cpp.o
[ 69%] Building CXX object CMakeFiles/katago.dir/tests/testsgf.cpp.o
[ 71%] Building CXX object CMakeFiles/katago.dir/tests/testnninputs.cpp.o
[ 72%] Building CXX object CMakeFiles/katago.dir/tests/testownership.cpp.o
[ 73%] Building CXX object CMakeFiles/katago.dir/tests/testsearch.cpp.o
[ 75%] Building CXX object CMakeFiles/katago.dir/tests/testtime.cpp.o
[ 76%] Building CXX object CMakeFiles/katago.dir/tests/testtrainingwrite.cpp.o
[ 78%] Building CXX object CMakeFiles/katago.dir/tests/testnn.cpp.o
[ 79%] Building CXX object CMakeFiles/katago.dir/command/commandline.cpp.o
[ 80%] Building CXX object CMakeFiles/katago.dir/command/analysis.cpp.o
[ 82%] Building CXX object CMakeFiles/katago.dir/command/benchmark.cpp.o
[ 83%] Building CXX object CMakeFiles/katago.dir/command/evalsgf.cpp.o
[ 84%] Building CXX object CMakeFiles/katago.dir/command/gatekeeper.cpp.o
[ 86%] Building CXX object CMakeFiles/katago.dir/command/gtp.cpp.o
[ 87%] Building CXX object CMakeFiles/katago.dir/command/lzcost.cpp.o
[ 89%] Building CXX object CMakeFiles/katago.dir/command/match.cpp.o
[ 90%] Building CXX object CMakeFiles/katago.dir/command/matchauto.cpp.o
[ 91%] Building CXX object CMakeFiles/katago.dir/command/misc.cpp.o
[ 93%] Building CXX object CMakeFiles/katago.dir/command/runtests.cpp.o
[ 94%] Building CXX object CMakeFiles/katago.dir/command/sandbox.cpp.o
[ 95%] Building CXX object CMakeFiles/katago.dir/command/selfplay.cpp.o
[ 97%] Building CXX object CMakeFiles/katago.dir/command/tune.cpp.o
[ 98%] Building CXX object CMakeFiles/katago.dir/main.cpp.o
[100%] Linking CXX executable katago
[100%] Built target katago

Is it OK now? (Benchmark had run correct, but I have one remark on it: it will be more usable, if number of benchmarked threads will increase in succession from minimum until rate decrease (maximum 2 consecutive times), because threads overnumbering (12 in my case) leads to memory thrashing, when with optimal (5) and next numbers of threads the memory usage is normal (<|~ a half of full 16GB RAM with middle weights)...)

@lightvector
Copy link
Owner

Thanks, I'm glad you got it running.

Do you happen to have time to help investigate what went wrong with your cmake? It would be great if there is something I can adjust in the official CMakeLists.txt so as to fix this problem in a general way, for anyone else with a system like yours.

In particular, you discovered that it was failing to provide a value for EIGEN3_INCLUDE_DIRS. However, you also observed that /usr/share/eigen3/cmake/Eigen3Config.cmake was present in your system, and had the command set (EIGEN3_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/include/eigen3"). Therefore is it the case that cmake must have failed to find this particular Eigen3Config.cmake and found something else bogus instead and therefore failed to set the correct paths? Or is it the case that it found it correctly and somehow the variable was not set anyways?

I'm a little surprised that you notice heavy memory usage with 12 threads. I thought I had fixed that as of this release - Eigen Memory Bugfixes. Do you happen to be attempting to compile with a version prior to that?

@GD-fix
Copy link
Author

GD-fix commented Sep 12, 2020

How You had written: ".../usr/share/eigen3/cmake/Eigen3Config.cmake... this file was hardcoded to look for a path that in a very specific relative location, and for some usages, this path would point to the wrong place...".
And how I had written: "...with some strokes added from /usr/share/eigen3/cmake/Eigen3Config.cmake with modification of PACKAGE_PREFIX_DIR to "/usr"...".
I think, this is the answer...
If You want, I'll try to make this change in Eigen3Config.cmake itself and to compile with Your original CMakeLists.txt.
But, I think, more comfortable for end users way is modifying of CMakeLists.txt to obtain somehow (I don't know: I'm not a developer) the path from correctly defining it "find_package" function and to set needed variables with relative to it pathes, especially as: "Legacy variables, do not use. May be removed in the future.". Or developers, that are used Eigen, must open such this issue on Eigen developers page to fix its bug...

I had downloaded zip archive of master branch, when I had written about it in previous issue: #292 (comment)
Increasing of memory usage with increasing of threads usage is the bug?

@lightvector
Copy link
Owner

Yes you are on an old version then. Please use the most recent version to get better memory usage.

I still don't understand why your cmake configuration led to such problems, and since it's your machine, not mine, I don't have any way to run the appropriate tests to figure out more. So I don't feel like I understand well enough to report the issue, but if you think you understand it well enough and you are sure it's an Eigen/CMake bug, then yes theoretically the best way would be to raise the issue with Eigen or Cmake developers (whichever is appropriate) and have them fix it.

@lightvector
Copy link
Owner

As long as you have any familiarity with git or other version control, then in general, it is not recommended to download the zip archive and attempt to compile that way. Instead it's better to just 'git clone' the repo directly, so that it's easy to 'git pull' or 'git fetch' and stay up to date with bugfixes - the memory use problems you just reported have already been fixed for a few weeks. :)

@GD-fix
Copy link
Author

GD-fix commented Sep 12, 2020

How I understood, You had the same problem with Your cmake configuration: ".../usr/share/eigen3/cmake/Eigen3Config.cmake... this file was hardcoded to look for a path that in a very specific relative location, and for some usages, this path would point to the wrong place...", didn't You?

How I had written several times, I'm using Go on PC without any net connection. So, I didn't understand Your recommendation about "git clone"...

So, is there any reason to download now a zip archive, to unpack it on PC without Internet, to change in /usr/share/eigen3/cmake/Eigen3Config.cmake the value of PACKAGE_PREFIX_DIR to "/usr", to try to compile new version without CMakeLists.txt modification and then to write here the results?

@lightvector
Copy link
Owner

Ah sorry, I do keep forgetting - it's not common for me to talk to someone who has no internet on a machine.

I'm not convinced the problem I ran into was the same one you ran into. For example I only ran into that problem on Windows with a custom unzipping of Eigen3, but when I "installed" it via MSVC build, there was no issue and the path was correct. So the problem was merely that Eigen3 didn't document how it should be installed on windows. Similarly, when I installed Eigen3 via package manager on my Linux, there was no problem. So I'm definitely not sure why your install had issues with setting the path correctly.

@GD-fix
Copy link
Author

GD-fix commented Sep 12, 2020

OK. I'll download and report here about compiling and about benchmark...

@GD-fix
Copy link
Author

GD-fix commented Sep 19, 2020

Editing of Eigen3Config.cmake file doesn't work. "find_package" function finds package directory by file "signature_of_eigen3_matrix_library", but .cmake files are at another location...
So, I had modified CMakeLists.txt:
...
if(NOT MSVC)
find_package(Eigen3 REQUIRED)
include_directories(SYSTEM ${EIGEN3_INCLUDE_DIRS})
if(EIGEN3_INCLUDE_DIRS)
message("Found Eigen3 at ${EIGEN3_INCLUDE_DIRS}")
else()
find_package(Eigen3)
if(NOT Eigen3_FOUND)
set(EIGEN3_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIRS} CACHE PATH "Directory containing 'Eigen' and 'unsupported' subdirs with Eigen headers")
message(FATAL_ERROR "
** KataGo: Eigen3 was not found. If you've downloaded Eigen3, you can IGNORE the whole above error from CMake and just set 'EIGEN3_INCLUDE_DIRS' to the root eigen3-3.. directory after unzipping it. Among other things it should contain 'Eigen' and 'unsupported' subdirs, which is all KataGo needs. Otherwise, you will need to 'build' Eigen3 even though it is header-only and install it via MSVC in order for cmake to find it via FindEigen3.cmake.")
else()
get_filename_component(PACKAGE_PREFIX_DIR "/usr" ABSOLUTE)
include ("${PACKAGE_PREFIX_DIR}/share/eigen3/cmake/Eigen3Targets.cmake")
set (EIGEN3_USE_FILE "${PACKAGE_PREFIX_DIR}/share/eigen3/cmake/UseEigen3.cmake")
set (EIGEN3_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/include/eigen3")
set (EIGEN3_ROOT_DIR "${PACKAGE_PREFIX_DIR}")
include_directories(SYSTEM ${EIGEN3_INCLUDE_DIRS})
message(STATUS "Package Eigen3 was found, but without variable EIGEN3_INCLUDE_DIRS, which we set to ${EIGEN3_INCLUDE_DIRS}, assuming that Eigen3 header files are here.")
endif()
endif()
...

and had got:
...
-- Found Eigen3: /usr/include/eigen3 (Required is at least version "2.91.0")
-- Package Eigen3 was found, but without variable EIGEN3_INCLUDE_DIRS, which we set to /usr/include/eigen3, assuming that Eigen3 header files are here.
...

Benchmark had run correct. There wasn't dependency of memory usage from numSearchThreads and was some not a very big - from weights size. There was logical recommendation of 4 numSearchThreads using for PC with 4 core CPU, but I didn't understand, why the 12 numSearchThreads usage was rated worse, then 3 with the next results:
numSearchThreads = 3: 10 / 10 positions, visits/s = 5.41 nnEvals/s = 5.23 nnBatches/s = 5.20 avgBatchSize = 1.01 (151.4 secs) (EloDiff baseline)
numSearchThreads = 4: 10 / 10 positions, visits/s = 6.48 nnEvals/s = 6.30 nnBatches/s = 6.22 avgBatchSize = 1.01 (128.1 secs) (EloDiff +53)
numSearchThreads = 5: 10 / 10 positions, visits/s = 6.37 nnEvals/s = 6.18 nnBatches/s = 5.99 avgBatchSize = 1.03 (131.9 secs) (EloDiff +34)
numSearchThreads = 6: 10 / 10 positions, visits/s = 6.52 nnEvals/s = 6.35 nnBatches/s = 6.12 avgBatchSize = 1.04 (130.3 secs) (EloDiff +31)
numSearchThreads = 8: 10 / 10 positions, visits/s = 6.44 nnEvals/s = 6.34 nnBatches/s = 5.98 avgBatchSize = 1.06 (135.1 secs) (EloDiff +2)
numSearchThreads = 12: 10 / 10 positions, visits/s = 6.43 nnEvals/s = 6.37 nnBatches/s = 5.65 avgBatchSize = 1.13 (141.6 secs) (EloDiff -48)

@GD-fix
Copy link
Author

GD-fix commented Oct 3, 2020

I had downloaded binary release versions.
With "./katago-v1.6.1-cpu-eigen-avx2-linux-x64/katago benchmark ..." I had got "Недопустимая инструкция (стек памяти сброшен на диск)".
With "./katago-v1.6.1-cpu-eigen-linux-x64/katago" benchmark had passed successfully.

So, because eigen binary release works without any eigen package installed, I'm closing the issue.

@GD-fix GD-fix closed this as completed Oct 3, 2020
@lightvector
Copy link
Owner

I'm glad you got it working finally. By the way, to answer an earlier question from you that I missed - the reason why it shows 6,8,12 threads as worse even though they have a similar visits/s, is because having more threads decreases the quality of the search. If when you increase the number of threads the speed stays the same, or even increases slightly but not enough to compensate, then the overall strength will go down.

@lightvector
Copy link
Owner

And the "EloDiff" number is attempting to estimate what the change to Elo might be. It's not a perfect estimate, but should give an indication of what tradeoff point you want between more threads (to improve performance) and fewer threads (to limit the harm to the search quality).

@GD-fix
Copy link
Author

GD-fix commented Oct 10, 2020

Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants