swabbur / Euclidean

A header-only C++ library for linear algebra operations with constant dimensions.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Euclidean

A header-only C++ library implementing linear algebra operations with compile-time constant dimensions using STL algorithms and template metaprogramming, build with CMake, tested with Catch2 and styled based on the Pitchfork Layout (PFL) and the style guide for python code (PEP8).

Do not forget to pass CMake the -DBUILD_TESTING=ON option to enable unit testing.

Continuous Integration

Features

Composition

Composition constructors make it a lot easier to construct larger and more complex vectors from smaller ones.

Vector<float, 5> vector(1.0f, 2.0f, Vector<float, 2>(3.0f, 4.0f), 5.0f);

STL Compatibility

Vector and Matrix classes are written to be used with existing STL algorithm.

Vector<3> vector;
std::fill(std::begin(vector), std::end(vector), 1.0f);

Implicit Constructors

Implicit constructors allow for readable vector and matrix definitions.

Matrix<float, 3, 3> matrix = {
        1.0f, 2.0f, 3.0f,
        4.0f, 5.0f, 6.0f,
        7.0f, 8.0f, 9.0f
};

Upcoming Features

  • Quaternions

About

A header-only C++ library for linear algebra operations with constant dimensions.

License:Apache License 2.0


Languages

Language:C++ 92.2%Language:CMake 7.8%