|
GrassmannCG
1.1.0
created from b58ad42 on deploy-documenation
|
This repo contains the implementation of the conjugate gradient method on the Grassmann manifold. It produces three outputs
libGrassmannCG.aGrassmannCG.cmake that exports two targets: GrassmannCG::GrassmannCG and GrassmannCG::MatlabBindingsAssuming that you are in the repo's directory, the quick start is
Note that you have to activate optimized compilation with -DCMAKE_BUILD_TYPE=Release when configuring the project with cmake. See the sections Configurations and Targets below to build the Matlab or Python interface, and generate the documentation with doxygen. Then, you can make thia library available in your cmake project via
You may simply copy the GrassmannCG.cmake from this repo's build directory to your project's folder.
If you found this code useful in your scientific work, we encourage you to cite our original paper:
This project is documented with doxygen within the source code. The documentation can be compiled with
Ensure that doxygen is available to cmake. The documenation is also available on Gitlab-Pages under NOT CONFIGURED.
You may use Awesome Doxygen by specifying
The cmake project supplies several options for building interfaces
| Key | Info | required cmake-packages | Default |
|---|---|---|---|
USE_BLAS | links to external BLAS lib. | BLAS | Off |
USE_OPEN_MP | multi-threading with OpenMP | OpenMP | Off |
GENERATE_DOCS | generate html documentation | Doxygen | Off |
USE_UTF8_FMT | print iter. with UT8 formatting | n/a | Off |
The default configuration only requires the Eigen3 library. The project only specifies static libraries to be linked with, see below.
It only requires Eigen3 to be accessible to cmake. A list of all user-defined variables can be queried with
cmake -S . -B <YOUR_BUILD_DIR> -LH