Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
75 lines (63 loc) · 2.18 KB
/
Copy pathCargo.toml
File metadata and controls
75 lines (63 loc) · 2.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
[workspace]
members = ["buffer", "py"]
default-members = [".", "buffer", "py"]
[workspace.package]
version = "0.1.42"
edition = "2024"
[workspace.dependencies]
rustymath = { path = ".", version = ">=0.1.39, <1", default-features = false }
rustymath-buffer = { path = "buffer", version = ">=0.1.39, <1" }
pyo3 = ">=0.29"
pyo3-build-config = ">=0.29"
[workspace.metadata.fastfmt]
join_comments = true
[package]
name = "rustymath"
version.workspace = true
edition.workspace = true
rust-version = "1.98"
license = "Apache-2.0"
description = "Maths in plain Rust, from fast f16, f32 and f64 functions to exact rationals."
repository = "https://github.com/AnswerDotAI/rustymath"
[lib]
name = "rustymath"
test = false
[features]
default = ["native"]
# Compiles rustymath's own linear algebra into macOS builds too, beside Accelerate, so `RUSTYMATH_NATIVE=1` can select it at run time.
# Other targets always compile it. The Mac release builds turn it off with `--no-default-features`.
native = []
[dependencies]
half = { version = ">=2.7.1, <3", features = ["num-traits"] }
hashbrown = ">=0.15, <1"
foldhash = ">=0.2.0, <1"
num-bigint = ">=0.4.6, <0.5"
num-complex = ">=0.4.6, <1"
num-integer = ">=0.1.46, <1"
num-rational = ">=0.4.2, <1"
num-traits = ">=0.2.19, <1"
rand = { version = ">=0.10.2, <1", default-features = false, features = ["alloc"] }
strength_reduce = ">=0.2.4, <1"
# The browser build has no threads. There `parallel` runs its pieces in turn on the calling thread.
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
rayon = ">=1.12.0, <2"
[target.'cfg(target_vendor = "apple")'.dependencies]
# The timing lock's QoS call, which asks macOS to favour the performance cores for a timing.
libc = ">=0.2.190, <1"
[profile.test]
inherits = "release"
[profile.release]
opt-level = 2
# Without LTO, an edit recompiles only the codegen units whose code changed.
lto = "off"
overflow-checks = false
debug-assertions = false
incremental = true
# Line tables change with every shifted line and recompile the code below it.
debug = false
[profile.dist]
inherits = "release"
incremental = false
# Cargo's default LTO: thin LTO across the crate's codegen units, which inlines between them.
lto = false
strip = true