3 unstable releases

0.3.0 Sep 26, 2024
0.2.2 Aug 7, 2024
0.2.1 Jul 17, 2024
0.2.0 Jul 16, 2024
0.1.0 Jul 10, 2024

#217 in Hardware support

MIT license

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