Skip to content
/ lin Public

Templated linear algebra library relying solely on static memory allocation.

License

Notifications You must be signed in to change notification settings

kylekrol/lin

Repository files navigation

lin

Build Status

Linear algebra library solely using static memory alocation. It's been developed primarily for the PAN mission.

Overview

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.

Running Tests

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

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

Python Bindings

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

About

Templated linear algebra library relying solely on static memory allocation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •