Git Product home page Git Product logo

lin's Introduction

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

lin's People

Contributors

kylekrol avatar tanishqaggarwal avatar shihaocao avatar nhz2 avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.