Skip to content

Latest commit

 

History

History
42 lines (30 loc) · 1.97 KB

README.md

File metadata and controls

42 lines (30 loc) · 1.97 KB

The Wheel Strongly-Typed Matrix Library

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.

Motivation

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)

Using in your project

  1. Add Wheel Strongly-Typed Matrix as a dependency in your project

    find_package(libwheel_strongly_typed_matrix REQUIRED)
  2. Link against it in your project

    target_link_libraries(your_project
      PRIVATE
        libwheel::strongly_typed_matrix
    )