This library is geared towards realtime applications that require their math to be as fast as possible. Much care was taken to maximize inlining opportunities and for code generation to be optimal when a function isn't inlined by passing values in registers whenever possible. It contains 3D and 4D arithmetic commonly used in video games and realtime applications.
It offers an alternative to GLM and DirectX Math. See here for a comparison with similar libraries.
Much thought was put into designing the library for it to be as flexible and powerful as possible. To this end, the following decisions were made:
- The library consists of 100% C++11 header files and is thus easy to integrate in any project
- The interface follows C-style conventions to ensure optimal code generation
- Both float32 and float64 arithmetic are supported
- Row vectors are used
- See here for more details
- Windows VS2015 x86 and x64
- Windows VS2017/2019 x86, x64, and ARM64*
- Linux (gcc5, gcc6, gcc7, gcc8, gcc9) x86 and x64
- Linux (clang4, clang5, clang6, clang7, clang8, clang9) x86 and x64
- OS X (Xcode 8.3, 9.4, 10.3) x86 and x64
- OS X (Xcode 11.2) x64
- Android (NVIDIA CodeWorks with clang5) ARMv7-A and ARM64
- iOS (Xcode 8.3, 9.4, 10.3, 11.2) ARM64
The above supported platform list is only what is tested every release but if it compiles, it should work just fine.
Note: VS2017 and VS2019 compile with ARM64 on AppVeyor but I have no device to test them with.
This library is 100% headers as such you just need to include them in your own project to start using it. However, if you wish to run the unit tests or to contribute to RTM head on over to the getting started section in order to setup your environment and make sure to check out the contributing guidelines.
You don't need anything else to get started: everything is self contained. See here for details.
This project uses the MIT license.
Copyright (c) 2018 Nicholas Frechette & Realtime Math contributors
This project was started from the math code found in the Animation Compression Library v1.1.0 and it retains the copyright of the original contributors.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.