Skip to content
/ math Public

SIMD optimized C++ mathematics library. (vector, matrix, quaternion, ray, triangle, sphere, AABB, etc.)

License

Notifications You must be signed in to change notification settings

cfnptr/math

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c00f07c · Apr 15, 2025

History

63 Commits
Sep 14, 2024
Mar 12, 2025
Apr 15, 2025
Oct 15, 2024
Mar 21, 2025
Mar 12, 2025
Mar 10, 2025
Oct 15, 2024
Mar 19, 2025
Sep 14, 2024
Nov 14, 2023
Mar 10, 2025

Repository files navigation

Math

A library providing common linear algebra math operations.

See the documentation.

Features

  • Vector (float2/3/4, int2/3/4)
  • Matrix (float2x2/3x3/4x4)
  • Quaternion (float4)
  • Euler angles, radians conversion
  • Matrix translate, scale, rotate
  • Pespective, orthographics projection
  • Ray, line, plane, triangle, sphere...
  • Axis aligned bounding box (AABB)
  • Bounding volume hierarchy (BVH)
  • Color conversion (RGBA, linear)
  • Version (major, minor, patch, build)
  • Hexadecimal string conversion
  • Tone mapping, gamma correction
  • Image based lighting (IBL, BRDF)
  • Spherical harmonics (SH)
  • Enum class flags declaration
  • Simplified integer types (uint32, int8, etc)

Supported operating systems

  • Windows (10/11)
  • Ubuntu (22.04/24.04)
  • macOS (14/15)

This list includes only those systems on which functionality testing is conducted. However, you can also compile it under any other Linux distribution or operating system.

Build requirements

Use building instructions to install all required tools and libraries.

CMake options

Name Description Default value
MATH_BUILD_SHARED Build Math shared library ON
MATH_BUILD_TESTS Build Math library tests ON

CMake targets

Name Description Windows macOS Linux
math-static Static Math library .lib .a .a
math-shared Dynamic Math library .dll .dylib .so

Cloning

git clone https://github.com/cfnptr/math

Building CI

  • Windows: ./scripts/build-release.bat
  • macOS / Ubuntu: ./scripts/build-release.sh

Inspired by