This is a reference implementation of P1673, "A free function linear algebra interface based on the BLAS." You can find the latest submitted revision of P1673 at this URL.
- CMake >= 3.17 (earlier versions may work, but are not tested)
- C++ build environment that supports C++17 or greater
We run github's automated tests on every pull request. Automated tests use "ubuntu-latest", which presumably defaults to a fairly new GCC. Other compilers, including MSVC 2019, have been tested in the past.
- Download and install googletest (GTest)
- Download and install mdspan:
- [email protected]:kokkos/mdspan.git
- Run CMake, pointing it to your googletest and mdspan install locations
- If you want to build tests, set LINALG_ENABLE_TESTS=ON
- If you want to build examples, set LINALG_ENABLE_EXAMPLES=ON
- If you have a BLAS installation, set LINALG_ENABLE_BLAS=ON. BLAS support is currently experimental.
- If you have a TBB (Threading Building Blocks) installation and want to use TBB, set LINALG_ENABLE_TBB=ON (and optionally set TBB_DIR to the lib/cmake/TBB subdirectory of your TBB installation, or wherever the TBBConfig.cmake file happens to live). TBB support is currently experimental.
- Build and install as usual
- If you enabled tests, use "ctest" to run them
Be sure to build mdspan and googletest in the Release configuration before installing.
The following CMake options are known to work:
- mdspan_DIR=${MDSPAN_INSTALL_DIR}\lib\cmake\mdspan (where MDSPAN_INSTALL_DIR is the path to your mdspan installation)
- GTEST_INCLUDE_DIR=${GTEST_INSTALL_DIR}\include (where GTEST_INSTALL_DIR is the path to your googletest installation)
- GTEST_LIBRARY=${GTEST_INSTALL_DIR}\lib\gtest.lib
- GTEST_MAIN_LIBRARY=${GTEST_INSTALL_DIR}\lib\gtest_main.lib
When building tests, for all CMAKE_CXX_FLAGS_* options, you might need to change "/MD" to "/MT", depending on how googletest was built.