The Wheel Strongly-Typed Matrix library creates a type-safe wraps around a linear algebra matrix type (for now,
Eigen::Matrix
). This library leverages C++'s strong type system to provide compile-time guarantees that the
operations you perform (or attempt to perform) are mathematically and semantically valid.
Daniel Withopf's presentations on type-safe matrix operations inspired this work. In his lectures, Daniel introduced dimensioned linear algebra and described how the theory translates to software. He developed a library during his time at Bosch, but the source code is unavailable. Fortunately, he overviews enough of the high-level interface to aid implementations. For background information, check out Daniel's excellent presentations:
-
Taking Static Type-Safety to the Next Level: Physical Units for Matrices - Presented at CppCon 2022 (video, slides)
-
Taking Static Type-safety to the Next Level: Physical Units for Matrices - Presented at CppNow 2022 (video)
-
Physical Units for Matrices: How Hard Can It Be? - Presented at Meeting C++ 2021 (video, slides)
-
Physical Units for Matrices: How Hard Can It Be? - Presented at MUC++ 2021 (video)
-
Add Wheel Strongly-Typed Matrix as a dependency in your project
find_package(libwheel_strongly_typed_matrix REQUIRED)
-
Link against it in your project
target_link_libraries(your_project PRIVATE libwheel::strongly_typed_matrix )