3 unstable releases
0.3.0 | Sep 26, 2024 |
---|---|
0.2.2 | Aug 7, 2024 |
0.2.1 | Jul 17, 2024 |
0.2.0 |
|
0.1.0 |
|
#227 in Hardware support
725KB
20K
SLoC
Game Math for Me
A math library for video games that allow independent management of data. Just like DirectXMath, data and vectors are divided.
Design
Data Type
Data types are designed to be used when storing data in files or exchanging it with other systems.
Example
use gmm::Float4;
let a = Float4::new(1.0, 2.0, 3.0, 4.0);
let s = Float4::fill(5.0);
let res = a + s;
println!("{} + {} = {}", a, s, res);
Vector Type
Vector types are designed to be used when processing calculations.
Some systems use SIMD
instructions.
Example
use gmm::Vector;
let a = Vector::new(1.0, 2.0, 3.0, 4.0);
let s = Vector::fill(5.0);
let res = a + s;
println!("{} + {} = {}", a, s, res);
Features
Supports SIMD operations
The gmm library supports SIMD instructions on the x86
, x86_64
and the aarch64
architecture.
Compile Features
bytemuck
- Enables the bytemuck library implementation.serde
- Enables the serde library implementation.mint
- Enables the mint library implementation.scalar-math
- Disable the simd instruction in the library.use-assertion
- Allow panic calls within a function.
License
MIT license (LICENSE or http://opensource.org/licenses/MIT)
Dependencies
~200KB