Linear algebra library solely using static memory alocation. It's been developed primarily for the PAN mission.
The library is structured into a set of individual modules.
Most of the core functionality can be included with #include <lin/core.hpp>
. This will bring in the basic matrix types, vector types, and simple operators - e.g. matrix/vector addition, element wise scaling, taking a transpose, frobenius norm, etc.
Additional modules are available and provide more complex functionality such as the references module (#include <lin/references.hpp>
), generators (#include <lin/generators.hpp>
), matrix factorizations (#include <lin/factorizations.hpp>
), etc.
All unit tests live in test/**
and can be run with:
bazel test //test:all
The tests only run in CI can be run wiht:
bazel test //test:ci
Documentation can be built with doxygen by running:
cd docs
doxygen
and then opening docs/html/index.html
. Starting at the modules page will be most helpful.
The documentation is also hosted online at https://pathfinder-for-autonomous-navigation.github.io/lin/modules.html
There is a small python module wrapping a few basic types from lin
that have double
elements. All of the core module is implemented with a handful of helpful additions. The source code for the it is generated at install time by the setup.py
file.
The module can be installed with:
pip install .
For running tests locally using a virtual environment may be useful:
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install . -vvv
pytest -v test_lin.py