The release of version 1.0.0 of the linear algebra library for C++ (C++23 standard) has occurred. smath, distributed under the Apache 2.0 license as a single small header file.
- Generic class Vec<N, T> with useful aliases Vec2/Vec3/Vec4 and accessors (x/y/z/w, r/g/b/a). Vectors support approximate comparison and tuple/structured bindings;
- type Quaternion<T> based on Vec4;
- Generic class Mat with useful aliases Mat2/Mat3/Mat4;
- Utility functions for angles rad/deg/turns considering customizable base unit with the macro SMATH_ANGLE_UNIT.
- disabling the tracker blocking swizzling at compile time (swizzle<"…">);
- support for std::format;
- optional implicit conversions;
- utility functions for packing normalized RGBA (pack_unorm4x8, unpack_snorm4x8, etc.);
- support for C++20 modules;
- additional adapters are also provided for interaction with libraries Eigen GLM (OpenGL Mathematics), Handmade-Math, raylib, SFML and Enthusiasts have created a do-notation for C++.
Source: linux.org.ru
