[#] smath 1.0.0 -- библиотека линейной алгебры для языка C++ (стандарт C++23)
robot(spnet, 1) — All
2026-03-12 15:44:03


Состоялся выпуск 1.0.0 библиотеки линейной алгебры для языка C++ (стандарт C++23) [ smath ]( https://github.com/slendidev/smath ) , распространяемой по лицензии Apache 2.0 в виде единственного небольшого заголовочного файла.

[ Возможности библиотеки ]( https://github.com/slendidev/smath?tab=readme-ov-file#features ) :

• дженерик-класс Vec с полезными алиасами Vec2/Vec3/Vec4 и аксессорами (x/y/z/w, r/g/b/a). Векторы поддерживают приблизительное сравнение и кортежные/структурированные привязки;

• тип Quaternion на основе Vec4;

• дженерик-класс Mat с полезными алиасами Mat2/Mat3/Mat4;

• вспомогательные функции для углов rad/deg/turns с учётом настраиваемой базовой единицы измерения макросом SMATH_ANGLE_UNIT.

• поддержка [ cвиззлинга ]( https://en.wikipedia.org/wiki/Swizzling_(computer_graphics) ) во время компиляции (swizzle);

• поддержка std::format;

• опциональные неявные преобразования;

• вспомогательные функции упаковки нормализованного RGBA (pack_unorm4x8, unpack_snorm4x8 и др.);

• поддержка модулей C++20;

• также предоставляются [ дополнительные адаптеры ]( https://github.com/slendidev/smath/tree/master/include/smath/interop ) взаимодействия с библиотеками [ Eigen ]( https://libeigen.gitlab.io ) , [ GLM (OpenGL Mathematics) ]( https://github.com/g-truc/glm ) , [ Handmade-Math ]( https://github.com/HandmadeMath/Handmade-Math ) , [ raylib ]( https://www.raylib.com ) и [ SFML ]( https://www.sfml-dev.org ) .

https://www.linux.org.ru/news/development/18240204