In order to easily work with GLSL, the operations are column-major. The library supports arithmetic operations on vectors, matrices and quaternions. It also provides basic transformation functions.
CinMath utilizes SIMD intrinsics (single instruction multiple data intrinsics): both 128 bit wide and 256 bit wide registers can be used to parallelize non-dependant computations.
Currently, all of the library functionalities come in a single header (CinMath.h). The library can be configured to either use SSE or AVX instruction sets with a single define, above the main header:
#define CIN_USE_SSE
for SSE or #define CIN_USE_AVX
for AVX optimizations.
git clone --recursive https://github.com/CzekoladowyKocur/CinMath.git