[package]
name = "tract-linalg"
version = "0.23.1"
license = "MIT OR Apache-2.0"
authors = ["Mathieu Poumeyrol <kali@zoy.org>"]
description = "Tiny, no-nonsense, self contained, TensorFlow and ONNX inference"
repository = "https://github.com/snipsco/tract"
keywords = ["TensorFlow", "NeuralNetworks"]
categories = ["science"]
autobenches = false
edition = "2024"

[badges]
maintenance = { status = "actively-developed" }

[dependencies]
byteorder.workspace = true
derive-new.workspace = true
downcast-rs.workspace = true
dyn-clone.workspace = true
dyn-eq.workspace = true
dyn-hash.workspace = true
lazy_static.workspace = true
log.workspace = true
num-traits.workspace = true
pastey.workspace = true
rayon = { workspace = true, optional = true }
scan_fmt.workspace = true
tract-data.workspace = true

[build-dependencies]
cc.workspace = true
half.workspace = true
minijinja.workspace = true
walkdir.workspace = true

[dev-dependencies]
env_logger.workspace = true
libc.workspace = true
nu-ansi-term.workspace = true
core_affinity.workspace = true

[target.'cfg(not(target_family = "wasm"))'.dev-dependencies]
criterion.workspace = true
proptest.workspace = true

[target.'cfg(target_family = "wasm")'.dev-dependencies]
# Wasm doesn't support the `rayon` feature of criterion
criterion = { version = "0.8", default-features = false, features = ["plotters", "cargo_bench_support"] }
# Wasm doesn't support the `fork` feature of proptest.
proptest = { version = "1.0.0", default-features = false, features = ["std", "bit-set"] }

[features]
# This feature is meant to accomodate very restrictive / legacy toolchains that do
# have support for fp16 instructions, breaking tract compilation.
# It is not meant to be used in other situations, where run-time detection is
# preferred.
no_fp16 = []
apple-amx-ios = []
default = [ ]
multithread-mm = [ "rayon" ]
complex = [ "tract-data/complex" ]
hwbench = [ "rayon" ]

[[bench]]
bench = false
name = "arm64"
harness = false

[[bench]]
name = "mat_vec"
harness = false

[[bench]]
name = "mm_for_wavenet_hw"
harness = false

[[bench]]
name = "mm_for_inception"
harness = false

[[bench]]
name = "mm_for_asr_am"
harness = false

[[bench]]
name = "qmmm_i8"
harness = false

[[bench]]
name = "hardswish"
harness = false

[[bench]]
name = "silu"
harness = false

[[bench]]
name = "gelu"
harness = false

[[bench]]
name = "sigmoid"
harness = false

[[bench]]
name = "softmax"
harness = false

[[bench]]
name = "activations_avx512_f16"
harness = false

[[bench]]
name = "erf"
harness = false

[[bench]]
name = "rms_norm"
harness = false

[[bench]]
name = "activations_avx512_fp16"
harness = false

[[bench]]
bench = false
name = "arm64simd"
harness = false

[[bench]]
bench = false
name = "arm32neon"
harness = false

[[bench]]
name = "virtual_im2col"
harness = false

[[bench]]
bench = false
name = "x86_64"
harness = false

[[bench]]
bench = false
name = "intel"
harness = false

[[bench]]
bench = false
name = "leaky_relu"
harness = false

[[bench]]
name = "avx512_zombies"
harness = false

[[bench]]
name = "activations_avx512"
harness = false

[[bench]]
name = "wasm"
harness = false

[[bench]]
name = "vnni_i32"
harness = false
