Skip to content

Linear Algebra in the Cxx Library

Jeff Hammond edited this page Oct 15, 2018 · 8 revisions

Please feel free to dump initial ideas, links to useful resources, etc on either this wiki or in the repository.

If you don't have write access to the GitHub repository, please email Bryce Adelstein Lelbach ([email protected]) and he'll add you.

Questions we should work on answering:

  • Q: What are we trying to accomplish in this space? What are the intended use cases?
    • Graphics.
    • Simulation.
    • Scientific Computing.
  • Q: What are the design requirements and principles?
    • Builds on top of the mdspan feature and interoperates with the 2D Graphics proposal.
    • Clear path for implementing operations with a high performance BLAS library.
    • Supports both compile-time and run-time meta-data (extents, striding, padding, etc).
    • Supports mixing compile-time and run-time meta-data (a la mdspan).
    • Separate data storage from algorithms (e.g. the string_view model).
    • Supports mixed precision operations.
    • Supports non-fundamental numeric types (e.g. fixed-point, units, chrono::duration etc.)
  • Q: What capabilities must be included in a minimum viable product (e.g. version 1)?
    • Abstractions for element iteration (e.g. multi-dimensional for loop).
  • Q: What are the risks?
    • Is prohibitively difficult to learn for users with basic knowledge of linear algebra
    • Introduces run-time overhead over using graphics oriented geometry libraries (e.g. GLM)
Clone this wiki locally