[package]
name = "ggmath"
version = "0.16.6"

categories = [
    "data-structures",
    "game-development",
    "graphics",
    "mathematics",
    "no-std",
]
edition = "2024"
keywords = ["math", "matrix", "simd", "vector"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/Noam2Stein/ggmath"
rust-version = "1.90.0"

description = "A linear algebra library for games and graphics with generic SIMD types."

[features]
std = []

assertions = []
no-assertions = []

default = ["std"]

bytemuck = ["dep:bytemuck"]
fixed = ["dep:fixed"]
fixp = ["dep:fixp"]
libm = ["dep:libm"]
mint = ["dep:mint"]
serde = ["dep:serde"]
wide = ["dep:wide"]

[dependencies]
bytemuck = { version = "1.25.0", optional = true }
fixed = { version = "1.30.0", optional = true }
fixp = { version = "0.1.0", optional = true }
libm = { version = "0.2.16", optional = true }
mint = { version = "0.5.9", optional = true }
serde = { version = "1.0.228", optional = true }
wide = { version = "1.1.1", optional = true }

[dev-dependencies]
assert-impl-trait = "1.0.0"
colored = "3.1.1"
glam = "0.32.0"
gungraun = "0.17.2"
itertools = "0.14.0"
num-primitive = "0.3.6"
repetitive = "0.3.2"
serde_json = "1.0.149"

[profile.bench]
lto = "fat"
codegen-units = 1

[[bench]]
name = "vector_f32"
path = "benches/vector/f32.rs"
harness = false

[[bench]]
name = "matrix_f32"
path = "benches/matrix/f32.rs"
harness = false

[[bench]]
name = "mask_f32"
path = "benches/mask/f32.rs"
harness = false
