A basic math library for vectors and matrices

# tiny_math

A basic math library for vectors and matrices (just for 2,3, and 4 dimensions)

## Yet another math library

This library is intended mainly for test purposes (integration with PyPi, ReadTheDocs, CI, python-bindings, etc.). However, we currently use it as a replacement to other more complete libraries like glm and Eigen in some projects that make heavy use of C/C++ and also require Python support through bindings.

## Setup

### C++

Clone this package into your third_party dependencies:

# Replace "third_party" with your own dependencies-folder name
git clone https://github.com/wpumacay/tiny_math.git third_party/tiny_math


The library is a template-based header-only library, so just include the headers in the include folder, e.g. in your own CMakeLists.txt:

include_directories( third_party/tiny_math/include )


Alternatively, you can use the CMake target tinymath_cpp_lib as a dependency in your own target:

add_library( my_own_awesome_library tinymath_cpp_lib )


### Python

Use the provided setup.py file:

python setup.py install


Or via PyPi:

pip install wp-tinymath


And import the tinymath package in your python files:

import tinymath as tm


## Usage

### C++

#include <vector_t.h>
#include <matrix_t.h>

int main()
{
// Create a vec3-float32 and show it on the console
tinymath::Vector3f _vec = { 1.0f, 2.0f, 3.0f };
std::cout << "vec: " << tinymath::toString( vec ) << std::endl;

// Create a mat3 float32, show its entries and its inverse
auto mat = tinymath::Matrix3f( { 3.0f, 9.0f, 3.0f,
9.0f, 0.0f, 3.0f,
2.0f, 3.0f, 8.0f } );

std::cout << "mat:" << std::endl;
std::cout << tinymath::toString( mat ) << std::endl;
std::cout << "mat.inverse():" << std::endl;
std::cout << tinymath::toString( mat.inverse() ) << std::endl;

return 0;
}


### Python

import tinymath as tm

# Create a vec3-float32 and show it on the console
vec = tm.Vector3f( [1.0, 2.0, 3.0] )
print( 'vec: {}'.format( vec ) )

# Create a mat3 float32, show its entries and its inverse
mat = tm.Matrix3f( [ [ 3.0, 9.0, 3.0 ],
[ 9.0, 0.0, 3.0 ],
[ 2.0, 3.0, 8.0 ] ] );

print( "mat:" )
print( mat )
print( "mat.inverse():" )
print( mat.inverse() )


## Project details

Uploaded source