diff --git a/.github/workflows/performance-benchmarking.yml b/.github/workflows/performance-benchmarking.yml index b8c7eb9b..a42a405a 100644 --- a/.github/workflows/performance-benchmarking.yml +++ b/.github/workflows/performance-benchmarking.yml @@ -69,7 +69,7 @@ jobs: run: | if [ "$RUNNER_OS" == "Linux" ]; then sudo apt-get update - sudo apt-get install -y valgrind linux-tools-common + sudo apt-get install -y valgrind linux-tools-common libfontconfig1-dev fi - name: Build benchmarks diff --git a/Cargo.lock b/Cargo.lock index 23e00053..81a85146 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -37,16 +37,7 @@ checksum = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2" dependencies = [ "approx 0.3.2", "num-complex 0.2.4", - "num-traits 0.2.19", -] - -[[package]] -name = "aligned" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee4508988c62edf04abd8d92897fca0c2995d907ce1dfeaf369dac3716a40685" -dependencies = [ - "as-slice 0.2.1", + "num-traits", ] [[package]] @@ -147,7 +138,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" dependencies = [ - "num-traits 0.2.19", + "num-traits", ] [[package]] @@ -156,7 +147,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" dependencies = [ - "num-traits 0.2.19", + "num-traits", ] [[package]] @@ -173,23 +164,6 @@ dependencies = [ "syn 2.0.104", ] -[[package]] -name = "arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" - -[[package]] -name = "arg_enum_proc_macro" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "array-init" version = "2.1.0" @@ -202,27 +176,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -[[package]] -name = "as-slice" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45403b49e3954a4b8428a0ac21a4b7afadccf92bfd96273f1a58cd4812496ae0" -dependencies = [ - "generic-array 0.12.4", - "generic-array 0.13.3", - "generic-array 0.14.9", - "stable_deref_trait", -] - -[[package]] -name = "as-slice" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "516b6b4f0e40d50dcda9365d53964ec74560ad4284da2e7fc97122cd83174516" -dependencies = [ - "stable_deref_trait", -] - [[package]] name = "ash" version = "0.37.3+1.3.251" @@ -232,76 +185,18 @@ dependencies = [ "libloading 0.7.4", ] -[[package]] -name = "atomic-polyfill" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" -dependencies = [ - "critical-section", -] - [[package]] name = "autocfg" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" -[[package]] -name = "av-scenechange" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f321d77c20e19b92c39e7471cf986812cbb46659d2af674adc4331ef3f18394" -dependencies = [ - "aligned", - "anyhow", - "arg_enum_proc_macro", - "arrayvec", - "log", - "num-rational", - "num-traits 0.2.19", - "pastey", - "rayon", - "thiserror 2.0.18", - "v_frame", - "y4m", -] - -[[package]] -name = "av1-grain" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cfddb07216410377231960af4fcab838eaa12e013417781b78bd95ee22077f8" -dependencies = [ - "anyhow", - "arrayvec", - "log", - "nom 8.0.0", - "num-rational", - "v_frame", -] - -[[package]] -name = "avif-serialize" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375082f007bd67184fb9c0374614b29f9aaa604ec301635f72338bb65386a53d" -dependencies = [ - "arrayvec", -] - [[package]] name = "az" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be5eb007b7cacc6c660343e96f650fedf4b5a77512399eb952ca6642cf8d13f7" -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - [[package]] name = "bincode" version = "2.0.1" @@ -339,7 +234,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "rustc-hash 1.1.0", + "rustc-hash", "shlex", "syn 2.0.104", "which", @@ -375,12 +270,6 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" -[[package]] -name = "bit_field" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6" - [[package]] name = "bitflags" version = "1.3.2" @@ -393,49 +282,12 @@ version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" -[[package]] -name = "bitstream-io" -version = "4.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60d4bd9d1db2c6bdf285e223a7fa369d5ce98ec767dec949c6ca62863ce61757" -dependencies = [ - "core2", -] - [[package]] name = "block" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" -[[package]] -name = "blue2mesh" -version = "0.1.0" -dependencies = [ - "bytemuck", - "cfd-schematics", - "chrono", - "csgrs", - "delaunator", - "env_logger", - "log", - "nalgebra 0.34.1", - "ndarray", - "serde", - "serde_json", - "spade", - "thiserror 1.0.69", -] - -[[package]] -name = "boolmesh" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ede2e53d77b54cd1aae2a8641693c4c65b0ecd0d423194ca4ef78278b53313a" -dependencies = [ - "glam 0.30.10", -] - [[package]] name = "build-probe-mpi" version = "0.1.4" @@ -446,12 +298,6 @@ dependencies = [ "shell-words", ] -[[package]] -name = "built" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ad8f11f288f48ca24471bbd51ac257aaeaaa07adae295591266b792902ae64" - [[package]] name = "bumpalo" version = "3.19.0" @@ -498,12 +344,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" -[[package]] -name = "byteorder-lite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" - [[package]] name = "bytes" version = "1.10.1" @@ -533,7 +373,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" dependencies = [ - "nom 7.1.3", + "nom", ] [[package]] @@ -547,7 +387,7 @@ dependencies = [ "cfd-schematics", "nalgebra 0.33.2", "nalgebra-sparse", - "num-traits 0.2.19", + "num-traits", "petgraph", "proptest", "rand 0.8.5", @@ -576,7 +416,7 @@ dependencies = [ "nalgebra 0.33.2", "nalgebra-sparse", "num-complex 0.4.6", - "num-traits 0.2.19", + "num-traits", "plotters", "proptest", "rand 0.8.5", @@ -602,7 +442,7 @@ dependencies = [ "crossbeam", "nalgebra 0.33.2", "nalgebra-sparse", - "num-traits 0.2.19", + "num-traits", "proptest", "rayon", "serde", @@ -624,7 +464,7 @@ dependencies = [ "mpi", "nalgebra 0.33.2", "nalgebra-sparse", - "num-traits 0.2.19", + "num-traits", "num_cpus", "pollster", "proptest", @@ -650,7 +490,7 @@ dependencies = [ "cfd-math", "csv", "nalgebra 0.33.2", - "num-traits 0.2.19", + "num-traits", "proptest", "rayon", "serde", @@ -673,7 +513,7 @@ dependencies = [ "nalgebra 0.33.2", "nalgebra-sparse", "num-complex 0.4.6", - "num-traits 0.2.19", + "num-traits", "pollster", "proptest", "rand 0.8.5", @@ -701,10 +541,10 @@ dependencies = [ "indexmap", "kiddo", "nalgebra 0.33.2", - "num-traits 0.2.19", + "num-traits", "proptest", "rayon", - "rstar 0.12.2", + "rstar", "serde", "serde_json", "slotmap", @@ -717,7 +557,6 @@ dependencies = [ name = "cfd-optim" version = "0.1.0" dependencies = [ - "blue2mesh", "cfd-1d", "cfd-core", "cfd-schematics", @@ -737,7 +576,7 @@ dependencies = [ "cfd-validation", "nalgebra 0.33.2", "ndarray", - "num-traits 0.2.19", + "num-traits", "numpy", "pyo3", "serde", @@ -775,7 +614,7 @@ dependencies = [ "mpi", "nalgebra 0.33.2", "nalgebra-sparse", - "num-traits 0.2.19", + "num-traits", "num_cpus", "petgraph", "plotters", @@ -798,7 +637,6 @@ dependencies = [ "approx 0.5.1", "cfd-1d", "cfd-2d", - "cfd-3d", "cfd-core", "cfd-io", "cfd-math", @@ -808,7 +646,7 @@ dependencies = [ "nalgebra 0.33.2", "nalgebra-sparse", "num-complex 0.4.6", - "num-traits 0.2.19", + "num-traits", "num_cpus", "petgraph", "proptest", @@ -840,22 +678,12 @@ dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", - "num-traits 0.2.19", + "num-traits", "serde", "wasm-bindgen", "windows-link 0.1.3", ] -[[package]] -name = "chull" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "977db54e5eec96279bea3032dcf41d3844e90d62e5cfeded48f8d53b1a755d7a" -dependencies = [ - "num-bigint 0.3.3", - "num-traits 0.2.19", -] - [[package]] name = "ciborium" version = "0.2.2" @@ -993,12 +821,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "contour_tracing" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9efef72b4f4049ebc4b690ae8ac98cfb7d3cb50407592745ad2c83106625936" - [[package]] name = "conv" version = "0.3.3" @@ -1060,15 +882,6 @@ dependencies = [ "libc", ] -[[package]] -name = "core2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" -dependencies = [ - "memchr", -] - [[package]] name = "crc32fast" version = "1.5.0" @@ -1091,7 +904,7 @@ dependencies = [ "criterion-plot", "is-terminal", "itertools 0.10.5", - "num-traits 0.2.19", + "num-traits", "once_cell", "oorandom", "plotters", @@ -1114,12 +927,6 @@ dependencies = [ "itertools 0.10.5", ] -[[package]] -name = "critical-section" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" - [[package]] name = "crossbeam" version = "0.8.4" @@ -1182,39 +989,6 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" -[[package]] -name = "csgrs" -version = "0.21.0" -source = "git+https://github.com/timschmidt/csgrs.git#dca6d01aa93629ab1cefbea3433ff6de118e4395" -dependencies = [ - "base64", - "boolmesh", - "chull", - "contour_tracing", - "core2", - "doc-image-embed", - "dxf", - "either", - "fast-surface-nets", - "geo", - "geo-buf", - "hashbrown 0.15.5", - "hershey", - "image 0.25.9", - "nalgebra 0.34.1", - "nom 7.1.3", - "parry3d-f64", - "rapier3d-f64", - "robust 1.2.0", - "spade", - "stl_io", - "svg", - "thiserror 2.0.18", - "ttf-parser 0.25.1", - "ttf-parser-utils", - "uuid", -] - [[package]] name = "csv" version = "1.3.1" @@ -1253,15 +1027,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "delaunator" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab46e386c7a38300a0d93b0f3e484bc2ee0aded66c47b14762ec9ab383934fa" -dependencies = [ - "robust 0.2.3", -] - [[package]] name = "dirs" version = "6.0.0" @@ -1298,24 +1063,6 @@ dependencies = [ "libloading 0.8.8", ] -[[package]] -name = "doc-image-embed" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b1c7e5bbb92b417588a5e733e095416c27c06eedc051065cc955a0a8c8389d9" -dependencies = [ - "base64", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "downcast-rs" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc" - [[package]] name = "dwrote" version = "0.11.5" @@ -1328,79 +1075,12 @@ dependencies = [ "wio", ] -[[package]] -name = "dxf" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db88ab4334d9288e6658b8bb8e7bc9167ae48878b5f92818e01969a5041d294d" -dependencies = [ - "byteorder", - "chrono", - "encoding_rs", - "enum_primitive", - "image 0.25.9", - "itertools 0.13.0", - "num", - "uuid", - "xmltree", -] - -[[package]] -name = "earcutr" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79127ed59a85d7687c409e9978547cffb7dc79675355ed22da6b66fd5f6ead01" -dependencies = [ - "itertools 0.11.0", - "num-traits 0.2.19", -] - [[package]] name = "either" version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" -[[package]] -name = "ena" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabffdaee24bd1bf95c5ef7cec31260444317e72ea56c4c91750e8b7ee58d5f1" -dependencies = [ - "log", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "enum_primitive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180" -dependencies = [ - "num-traits 0.1.43", -] - -[[package]] -name = "env_logger" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" -dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", -] - [[package]] name = "equator" version = "0.4.2" @@ -1437,57 +1117,12 @@ dependencies = [ "windows-sys 0.60.2", ] -[[package]] -name = "exr" -version = "1.74.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4300e043a56aa2cb633c01af81ca8f699a321879a7854d3896a0ba89056363be" -dependencies = [ - "bit_field", - "half", - "lebe", - "miniz_oxide", - "rayon-core", - "smallvec", - "zune-inflate", -] - -[[package]] -name = "fast-surface-nets" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aef9e8d9e33f51d8120a2e997a819f18239ad7c2735e353ade79208a9a1c442" -dependencies = [ - "glam 0.29.3", - "ndshape", -] - [[package]] name = "fastrand" version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" -[[package]] -name = "fax" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab" -dependencies = [ - "fax_derive", -] - -[[package]] -name = "fax_derive" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "fdeflate" version = "0.3.7" @@ -1506,7 +1141,7 @@ dependencies = [ "az", "bytemuck", "half", - "num-traits 0.2.19", + "num-traits", "typenum", ] @@ -1526,27 +1161,12 @@ dependencies = [ "miniz_oxide", ] -[[package]] -name = "float-cmp" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" -dependencies = [ - "num-traits 0.2.19", -] - [[package]] name = "float-ord" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce81f49ae8a0482e4c55ea62ebbd7e5a686af544c00b9d090bba3ff9be97b3d" -[[package]] -name = "float_next_after" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8" - [[package]] name = "fnv" version = "1.0.7" @@ -1559,12 +1179,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" -[[package]] -name = "foldhash" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" - [[package]] name = "font-kit" version = "0.14.3" @@ -1733,108 +1347,25 @@ dependencies = [ ] [[package]] -name = "generic-array" -version = "0.12.4" +name = "geometry-predicates" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" -dependencies = [ - "typenum", -] +checksum = "8dba84198cf199c11b83f1cb9243eaeb70dc50b719d2835ebf34bf2481bca010" [[package]] -name = "generic-array" -version = "0.13.3" +name = "getrandom" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f797e67af32588215eaaab8327027ee8e71b9dd0b2b26996aedf20c030fce309" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ - "typenum", + "cfg-if", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", ] [[package]] -name = "generic-array" -version = "0.14.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "geo" -version = "0.29.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34f0e6e028c581e82e6822a68869514e94c25e7f8ea669a2d8595bdf7461ccc5" -dependencies = [ - "earcutr", - "float_next_after", - "geo-types", - "geographiclib-rs", - "i_overlay", - "log", - "num-traits 0.2.19", - "robust 1.2.0", - "rstar 0.12.2", - "serde", - "spade", -] - -[[package]] -name = "geo-buf" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3259dd509ae98be7ce49236ec9be30c7d8a0ce84eada28dbefb68bc839b29e66" -dependencies = [ - "geo", - "geo-types", -] - -[[package]] -name = "geo-types" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f8647af4005fa11da47cd56252c6ef030be8fa97bdbf355e7dfb6348f0a82c" -dependencies = [ - "approx 0.5.1", - "num-traits 0.2.19", - "rayon", - "rstar 0.10.0", - "rstar 0.11.0", - "rstar 0.12.2", - "rstar 0.8.4", - "rstar 0.9.3", - "serde", -] - -[[package]] -name = "geographiclib-rs" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5a7f08910fd98737a6eda7568e7c5e645093e073328eeef49758cfe8b0489c7" -dependencies = [ - "libm", -] - -[[package]] -name = "geometry-predicates" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dba84198cf199c11b83f1cb9243eaeb70dc50b719d2835ebf34bf2481bca010" - -[[package]] -name = "getrandom" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.11.1+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.3.3" +name = "getrandom" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ @@ -1844,29 +1375,6 @@ dependencies = [ "wasi 0.14.2+wasi-0.2.4", ] -[[package]] -name = "getrandom" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" -dependencies = [ - "cfg-if", - "libc", - "r-efi", - "wasip2", - "wasip3", -] - -[[package]] -name = "gif" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5df2ba84018d80c213569363bdcd0c64e6933c67fe4c1d60ecf822971a3c35e" -dependencies = [ - "color_quant", - "weezl", -] - [[package]] name = "gl_generator" version = "0.14.0" @@ -1875,105 +1383,9 @@ checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" dependencies = [ "khronos_api", "log", - "xml-rs 0.8.27", + "xml-rs", ] -[[package]] -name = "glam" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "333928d5eb103c5d4050533cec0384302db6be8ef7d3cebd30ec6a35350353da" - -[[package]] -name = "glam" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3abb554f8ee44336b72d522e0a7fe86a29e09f839a36022fa869a7dfe941a54b" - -[[package]] -name = "glam" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4126c0479ccf7e8664c36a2d719f5f2c140fbb4f9090008098d2c291fa5b3f16" - -[[package]] -name = "glam" -version = "0.17.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01732b97afd8508eee3333a541b9f7610f454bb818669e66e90f5f57c93a776" - -[[package]] -name = "glam" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525a3e490ba77b8e326fb67d4b44b4bd2f920f44d4cc73ccec50adc68e3bee34" - -[[package]] -name = "glam" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b8509e6791516e81c1a630d0bd7fbac36d2fa8712a9da8662e716b52d5051ca" - -[[package]] -name = "glam" -version = "0.20.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43e957e744be03f5801a55472f593d43fabdebf25a4585db250f04d86b1675f" - -[[package]] -name = "glam" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518faa5064866338b013ff9b2350dc318e14cc4fcd6cb8206d7e7c9886c98815" - -[[package]] -name = "glam" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f597d56c1bd55a811a1be189459e8fad2bbc272616375602443bdfb37fa774" - -[[package]] -name = "glam" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e4afd9ad95555081e109fe1d21f2a30c691b5f0919c67dfa690a2e1eb6bd51c" - -[[package]] -name = "glam" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" - -[[package]] -name = "glam" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3" - -[[package]] -name = "glam" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e05e7e6723e3455f4818c7b26e855439f7546cf617ef669d1adedb8669e5cb9" - -[[package]] -name = "glam" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "779ae4bf7e8421cf91c0b3b64e7e8b40b862fba4d393f59150042de7c4965a94" - -[[package]] -name = "glam" -version = "0.29.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8babf46d4c1c9d92deac9f7be466f76dfc4482b6452fc5024b5e8daf6ffeb3ee" - -[[package]] -name = "glam" -version = "0.30.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19fc433e8437a212d1b6f1e68c7824af3aed907da60afa994e7f542d18d12aa9" - [[package]] name = "glob" version = "0.3.3" @@ -2063,24 +1475,6 @@ dependencies = [ "crunchy", ] -[[package]] -name = "hash32" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4041af86e63ac4298ce40e5cca669066e75b6f1aa3390fe2561ffa5e1d9f4cc" -dependencies = [ - "byteorder", -] - -[[package]] -name = "hash32" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" -dependencies = [ - "byteorder", -] - [[package]] name = "hash32" version = "0.3.1" @@ -2108,16 +1502,7 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", - "foldhash 0.1.5", -] - -[[package]] -name = "hashbrown" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" -dependencies = [ - "foldhash 0.2.0", + "foldhash", ] [[package]] @@ -2135,38 +1520,13 @@ dependencies = [ "winapi", ] -[[package]] -name = "heapless" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634bd4d29cbf24424d0a4bfcbf80c6960129dc24424752a7d1d1390607023422" -dependencies = [ - "as-slice 0.1.5", - "generic-array 0.14.9", - "hash32 0.1.1", - "stable_deref_trait", -] - -[[package]] -name = "heapless" -version = "0.7.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" -dependencies = [ - "atomic-polyfill", - "hash32 0.2.1", - "rustc_version", - "spin", - "stable_deref_trait", -] - [[package]] name = "heapless" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" dependencies = [ - "hash32 0.3.1", + "hash32", "stable_deref_trait", ] @@ -2182,16 +1542,6 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" -[[package]] -name = "hershey" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d3cafa4047531c5386484c8f03dd90ff59c6dd96f8f011c32e13728692d1bbb" -dependencies = [ - "itertools 0.14.0", - "thiserror 2.0.18", -] - [[package]] name = "hexf-parse" version = "0.2.1" @@ -2207,56 +1557,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "humantime" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" - -[[package]] -name = "i_float" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775f9961a8d2f879725da8aff789bb20a3ddf297473e0c90af75e69313919490" -dependencies = [ - "serde", -] - -[[package]] -name = "i_key_sort" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "347c253b4748a1a28baf94c9ce133b6b166f08573157e05afe718812bc599fcd" - -[[package]] -name = "i_overlay" -version = "1.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01882ce5ed786bf6e8f5167f171a4026cd129ce17d9ff5cbf1e6749b98628ece" -dependencies = [ - "i_float", - "i_key_sort", - "i_shape", - "i_tree", - "rayon", -] - -[[package]] -name = "i_shape" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27dbe9e5238d6b9c694c08415bf00fb370b089949bd818ab01f41f8927b8774c" -dependencies = [ - "i_float", - "serde", -] - -[[package]] -name = "i_tree" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "155181bc97d770181cf9477da51218a19ee92a8e5be642e796661aee2b601139" - [[package]] name = "iana-time-zone" version = "0.1.63" @@ -2281,12 +1581,6 @@ dependencies = [ "cc", ] -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - [[package]] name = "image" version = "0.24.9" @@ -2297,50 +1591,10 @@ dependencies = [ "byteorder", "color_quant", "jpeg-decoder", - "num-traits 0.2.19", - "png 0.17.16", + "num-traits", + "png", ] -[[package]] -name = "image" -version = "0.25.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6506c6c10786659413faa717ceebcb8f70731c0a60cbae39795fdf114519c1a" -dependencies = [ - "bytemuck", - "byteorder-lite", - "color_quant", - "exr", - "gif", - "image-webp", - "moxcms", - "num-traits 0.2.19", - "png 0.18.1", - "qoi", - "ravif", - "rayon", - "rgb", - "tiff", - "zune-core 0.5.1", - "zune-jpeg 0.5.12", -] - -[[package]] -name = "image-webp" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3" -dependencies = [ - "byteorder-lite", - "quick-error 2.0.1", -] - -[[package]] -name = "imgref" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" - [[package]] name = "include_dir" version = "0.7.4" @@ -2368,7 +1622,6 @@ checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", "hashbrown 0.15.5", - "serde", ] [[package]] @@ -2380,17 +1633,6 @@ dependencies = [ "rustversion", ] -[[package]] -name = "interpolate_name" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "is-terminal" version = "0.4.16" @@ -2426,24 +1668,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "1.0.15" @@ -2512,7 +1736,7 @@ dependencies = [ "divrem", "fixed", "generator", - "num-traits 0.2.19", + "num-traits", "ordered-float", "sorted-vec", "tracing", @@ -2531,34 +1755,12 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" -[[package]] -name = "leb128fmt" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" - -[[package]] -name = "lebe" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" - [[package]] name = "libc" version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" -[[package]] -name = "libfuzzer-sys" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12a681b7dd8ce12bff52488013ba614b869148d54dd79836ab85aafdd53f08d" -dependencies = [ - "arbitrary", - "cc", -] - [[package]] name = "libloading" version = "0.7.4" @@ -2623,15 +1825,6 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" -[[package]] -name = "loop9" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" -dependencies = [ - "imgref", -] - [[package]] name = "malloc_buf" version = "0.0.6" @@ -2651,16 +1844,6 @@ dependencies = [ "rawpointer", ] -[[package]] -name = "maybe-rayon" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" -dependencies = [ - "cfg-if", - "rayon", -] - [[package]] name = "memchr" version = "2.7.5" @@ -2718,16 +1901,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "moxcms" -version = "0.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac9557c559cd6fc9867e122e20d2cbefc9ca29d80d027a8e39310920ed2f0a97" -dependencies = [ - "num-traits 0.2.19", - "pxfm", -] - [[package]] name = "mpi" version = "0.8.0" @@ -2765,8 +1938,8 @@ dependencies = [ "hexf-parse", "indexmap", "log", - "num-traits 0.2.19", - "rustc-hash 1.1.0", + "num-traits", + "rustc-hash", "spirv", "termcolor", "thiserror 1.0.69", @@ -2781,10 +1954,10 @@ checksum = "7b5c17de023a86f59ed79891b2e5d5a94c705dbe904a5b5c9c952ea6221b03e4" dependencies = [ "approx 0.5.1", "matrixmultiply", - "nalgebra-macros 0.2.2", + "nalgebra-macros", "num-complex 0.4.6", "num-rational", - "num-traits 0.2.19", + "num-traits", "serde", "simba 0.8.1", "typenum", @@ -2798,43 +1971,10 @@ checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b" dependencies = [ "approx 0.5.1", "matrixmultiply", - "nalgebra-macros 0.2.2", - "num-complex 0.4.6", - "num-rational", - "num-traits 0.2.19", - "serde", - "simba 0.9.1", - "typenum", -] - -[[package]] -name = "nalgebra" -version = "0.34.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4d5b3eff5cd580f93da45e64715e8c20a3996342f1e466599cf7a267a0c2f5f" -dependencies = [ - "approx 0.5.1", - "glam 0.14.0", - "glam 0.15.2", - "glam 0.16.0", - "glam 0.17.3", - "glam 0.18.0", - "glam 0.19.0", - "glam 0.20.5", - "glam 0.21.3", - "glam 0.22.0", - "glam 0.23.0", - "glam 0.24.2", - "glam 0.25.0", - "glam 0.27.0", - "glam 0.28.0", - "glam 0.29.3", - "glam 0.30.10", - "matrixmultiply", - "nalgebra-macros 0.3.0", + "nalgebra-macros", "num-complex 0.4.6", "num-rational", - "num-traits 0.2.19", + "num-traits", "serde", "simba 0.9.1", "typenum", @@ -2851,17 +1991,6 @@ dependencies = [ "syn 2.0.104", ] -[[package]] -name = "nalgebra-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "973e7178a678cfd059ccec50887658d482ce16b0aa9da3888ddeab5cd5eb4889" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "nalgebra-sparse" version = "0.10.0" @@ -2869,7 +1998,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1107e2587bc373090389bd5b54e05ac3184fd02d7c102decf5d76b8feb84b2d0" dependencies = [ "nalgebra 0.33.2", - "num-traits 0.2.19", + "num-traits", ] [[package]] @@ -2881,7 +2010,7 @@ dependencies = [ "matrixmultiply", "num-complex 0.4.6", "num-integer", - "num-traits 0.2.19", + "num-traits", "rawpointer", ] @@ -2894,21 +2023,6 @@ dependencies = [ "jni-sys", ] -[[package]] -name = "ndshape" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "975bce586ad637e27f6dc26ee907c07050686a588695bfd64b7873a9d48a700c" -dependencies = [ - "static_assertions", -] - -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - [[package]] name = "nom" version = "7.1.3" @@ -2919,21 +2033,6 @@ dependencies = [ "minimal-lexical", ] -[[package]] -name = "nom" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" -dependencies = [ - "memchr", -] - -[[package]] -name = "noop_proc_macro" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" - [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -2950,23 +2049,12 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" dependencies = [ - "num-bigint 0.4.6", + "num-bigint", "num-complex 0.4.6", "num-integer", "num-iter", "num-rational", - "num-traits 0.2.19", -] - -[[package]] -name = "num-bigint" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" -dependencies = [ - "autocfg", - "num-integer", - "num-traits 0.2.19", + "num-traits", ] [[package]] @@ -2976,7 +2064,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", - "num-traits 0.2.19", + "num-traits", ] [[package]] @@ -2986,7 +2074,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" dependencies = [ "autocfg", - "num-traits 0.2.19", + "num-traits", ] [[package]] @@ -2995,28 +2083,17 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ - "num-traits 0.2.19", + "num-traits", "serde", ] -[[package]] -name = "num-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "num-integer" version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "num-traits 0.2.19", + "num-traits", ] [[package]] @@ -3027,7 +2104,7 @@ checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ "autocfg", "num-integer", - "num-traits 0.2.19", + "num-traits", ] [[package]] @@ -3036,18 +2113,9 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "num-bigint 0.4.6", + "num-bigint", "num-integer", - "num-traits 0.2.19", -] - -[[package]] -name = "num-traits" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" -dependencies = [ - "num-traits 0.2.19", + "num-traits", ] [[package]] @@ -3080,9 +2148,9 @@ dependencies = [ "ndarray", "num-complex 0.4.6", "num-integer", - "num-traits 0.2.19", + "num-traits", "pyo3", - "rustc-hash 1.1.0", + "rustc-hash", ] [[package]] @@ -3134,7 +2202,7 @@ version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4779c6901a562440c3786d08192c6fbda7c1c2060edd10006b05ee35d10f2d" dependencies = [ - "num-traits 0.2.19", + "num-traits", ] [[package]] @@ -3166,45 +2234,12 @@ dependencies = [ "windows-link 0.2.1", ] -[[package]] -name = "parry3d-f64" -version = "0.25.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38fe282b81b60a2aee7f24db25ea73b3c82f6451888eeb5936b621adb87aa653" -dependencies = [ - "approx 0.5.1", - "arrayvec", - "bitflags 2.9.1", - "downcast-rs", - "either", - "ena", - "foldhash 0.2.0", - "hashbrown 0.16.1", - "log", - "nalgebra 0.34.1", - "num-derive", - "num-traits 0.2.19", - "ordered-float", - "rstar 0.12.2", - "simba 0.9.1", - "slab", - "smallvec", - "spade", - "thiserror 2.0.18", -] - [[package]] name = "paste" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pastey" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec" - [[package]] name = "pathfinder_geometry" version = "0.5.1" @@ -3224,12 +2259,6 @@ dependencies = [ "rustc_version", ] -[[package]] -name = "pdqselect" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec91767ecc0a0bbe558ce8c9da33c068066c57ecc8bb8477ef8c1ad3ef77c27" - [[package]] name = "petgraph" version = "0.6.5" @@ -3266,12 +2295,12 @@ checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" dependencies = [ "font-kit", "lazy_static", - "num-traits 0.2.19", + "num-traits", "pathfinder_geometry", "plotters-backend", "plotters-bitmap", "plotters-svg", - "ttf-parser 0.20.0", + "ttf-parser", "wasm-bindgen", "web-sys", ] @@ -3288,7 +2317,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72ce181e3f6bf82d6c1dc569103ca7b1bd964c60ba03d7e6cdfbb3e3eb7f7405" dependencies = [ - "image 0.24.9", + "image", "plotters-backend", ] @@ -3314,19 +2343,6 @@ dependencies = [ "miniz_oxide", ] -[[package]] -name = "png" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" -dependencies = [ - "bitflags 2.9.1", - "crc32fast", - "fdeflate", - "flate2", - "miniz_oxide", -] - [[package]] name = "pollster" version = "0.3.0" @@ -3402,19 +2418,6 @@ name = "profiling" version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" -dependencies = [ - "profiling-procmacros", -] - -[[package]] -name = "profiling-procmacros" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" -dependencies = [ - "quote", - "syn 2.0.104", -] [[package]] name = "proptest" @@ -3426,7 +2429,7 @@ dependencies = [ "bit-vec 0.8.0", "bitflags 2.9.1", "lazy_static", - "num-traits 0.2.19", + "num-traits", "rand 0.9.2", "rand_chacha 0.9.0", "rand_xorshift", @@ -3436,15 +2439,6 @@ dependencies = [ "unarray", ] -[[package]] -name = "pxfm" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7186d3822593aa4393561d186d1393b3923e9d6163d3fbfd6e825e3e6cf3e6a8" -dependencies = [ - "num-traits 0.2.19", -] - [[package]] name = "pyo3" version = "0.22.6" @@ -3508,27 +2502,12 @@ dependencies = [ "syn 2.0.104", ] -[[package]] -name = "qoi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" -dependencies = [ - "bytemuck", -] - [[package]] name = "quick-error" version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" -[[package]] -name = "quick-error" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" - [[package]] name = "quote" version = "1.0.40" @@ -3594,104 +2573,30 @@ dependencies = [ "getrandom 0.2.16", ] -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom 0.3.3", -] - -[[package]] -name = "rand_xorshift" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" -dependencies = [ - "rand_core 0.9.3", -] - -[[package]] -name = "range-alloc" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d6831663a5098ea164f89cff59c6284e95f4e3c76ce9848d4529f5ccca9bde" - -[[package]] -name = "rapier3d-f64" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8a807527ff2f1f2486f24a24058bdf7edd5f51d96a75b7a2060907bfbfc88b" -dependencies = [ - "approx 0.5.1", - "arrayvec", - "bit-vec 0.8.0", - "bitflags 2.9.1", - "downcast-rs", - "log", - "nalgebra 0.34.1", - "num-derive", - "num-traits 0.2.19", - "ordered-float", - "parry3d-f64", - "profiling", - "rustc-hash 2.1.1", - "simba 0.9.1", - "static_assertions", - "thiserror 2.0.18", -] - -[[package]] -name = "rav1e" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43b6dd56e85d9483277cde964fd1bdb0428de4fec5ebba7540995639a21cb32b" -dependencies = [ - "aligned-vec", - "arbitrary", - "arg_enum_proc_macro", - "arrayvec", - "av-scenechange", - "av1-grain", - "bitstream-io", - "built", - "cfg-if", - "interpolate_name", - "itertools 0.14.0", - "libc", - "libfuzzer-sys", - "log", - "maybe-rayon", - "new_debug_unreachable", - "noop_proc_macro", - "num-derive", - "num-traits 0.2.19", - "paste", - "profiling", - "rand 0.9.2", - "rand_chacha 0.9.0", - "simd_helpers", - "thiserror 2.0.18", - "v_frame", - "wasm-bindgen", +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.3", ] [[package]] -name = "ravif" -version = "0.12.0" +name = "rand_xorshift" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef69c1990ceef18a116855938e74793a5f7496ee907562bd0857b6ac734ab285" +checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" dependencies = [ - "avif-serialize", - "imgref", - "loop9", - "quick-error 2.0.1", - "rav1e", - "rayon", - "rgb", + "rand_core 0.9.3", ] +[[package]] +name = "range-alloc" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d6831663a5098ea164f89cff59c6284e95f4e3c76ce9848d4529f5ccca9bde" + [[package]] name = "raw-window-handle" version = "0.6.2" @@ -3779,18 +2684,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" -[[package]] -name = "rgb" -version = "0.8.52" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce" - -[[package]] -name = "robust" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5864e7ef1a6b7bcf1d6ca3f655e65e724ed3b52546a0d0a663c991522f552ea" - [[package]] name = "robust" version = "1.2.0" @@ -3803,64 +2696,14 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d65dc8db760bdc8c94f4163c5d09be710f76fc92a4a1f698c441925db83c09e" -[[package]] -name = "rstar" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a45c0e8804d37e4d97e55c6f258bc9ad9c5ee7b07437009dd152d764949a27c" -dependencies = [ - "heapless 0.6.1", - "num-traits 0.2.19", - "pdqselect", - "serde", - "smallvec", -] - -[[package]] -name = "rstar" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b40f1bfe5acdab44bc63e6699c28b74f75ec43afb59f3eda01e145aff86a25fa" -dependencies = [ - "heapless 0.7.17", - "num-traits 0.2.19", - "serde", - "smallvec", -] - -[[package]] -name = "rstar" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f39465655a1e3d8ae79c6d9e007f4953bfc5d55297602df9dc38f9ae9f1359a" -dependencies = [ - "heapless 0.7.17", - "num-traits 0.2.19", - "serde", - "smallvec", -] - -[[package]] -name = "rstar" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73111312eb7a2287d229f06c00ff35b51ddee180f017ab6dec1f69d62ac098d6" -dependencies = [ - "heapless 0.7.17", - "num-traits 0.2.19", - "serde", - "smallvec", -] - [[package]] name = "rstar" version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "421400d13ccfd26dfa5858199c30a5d76f9c54e0dba7575273025b43c5175dbb" dependencies = [ - "heapless 0.8.0", - "num-traits 0.2.19", - "serde", + "heapless", + "num-traits", "smallvec", ] @@ -3870,12 +2713,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" -[[package]] -name = "rustc-hash" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" - [[package]] name = "rustc_version" version = "0.4.1" @@ -3924,7 +2761,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" dependencies = [ "fnv", - "quick-error 1.2.3", + "quick-error", "tempfile", "wait-timeout", ] @@ -4054,7 +2891,7 @@ checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" dependencies = [ "approx 0.5.1", "num-complex 0.4.6", - "num-traits 0.2.19", + "num-traits", "paste", "wide", ] @@ -4067,7 +2904,7 @@ checksum = "c99284beb21666094ba2b75bbceda012e610f5479dfcc2d6e2426f53197ffd95" dependencies = [ "approx 0.5.1", "num-complex 0.4.6", - "num-traits 0.2.19", + "num-traits", "paste", "wide", ] @@ -4078,15 +2915,6 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" -[[package]] -name = "simd_helpers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" -dependencies = [ - "quote", -] - [[package]] name = "slab" version = "0.4.11" @@ -4131,20 +2959,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb313e1c8afee5b5647e00ee0fe6855e3d529eb863a0fdae1d60006c4d1e9990" dependencies = [ "hashbrown 0.15.5", - "num-traits 0.2.19", - "robust 1.2.0", + "num-traits", + "robust", "smallvec", ] -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - [[package]] name = "spirv" version = "0.3.0+sdk-1.3.268.0" @@ -4163,7 +2982,7 @@ dependencies = [ "alga", "ndarray", "num-complex 0.4.6", - "num-traits 0.2.19", + "num-traits", "num_cpus", "rayon", "smallvec", @@ -4181,28 +3000,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "stl_io" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a101fb44c7bbb34473ee14a0a9e2c06ad4b1aa22501b18223279fd21f0affd6" -dependencies = [ - "byteorder", - "float-cmp", -] - [[package]] name = "strsim" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "svg" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94afda9cd163c04f6bee8b4bf2501c91548deae308373c436f36aeff3cf3c4a3" - [[package]] name = "syn" version = "1.0.109" @@ -4302,20 +3105,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "tiff" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af9605de7fee8d9551863fd692cce7637f548dbd9db9180fcc07ccc6d26c336f" -dependencies = [ - "fax", - "flate2", - "half", - "quick-error 2.0.1", - "weezl", - "zune-jpeg 0.4.21", -] - [[package]] name = "tinytemplate" version = "1.2.1" @@ -4458,21 +3247,6 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" -[[package]] -name = "ttf-parser" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" - -[[package]] -name = "ttf-parser-utils" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff2ad77abd4b1ab08adbab7f399be4cc1ff6958421cafa86af75824d9179b5c0" -dependencies = [ - "ttf-parser 0.25.1", -] - [[package]] name = "typenum" version = "1.18.0" @@ -4521,29 +3295,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "uuid" -version = "1.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" -dependencies = [ - "getrandom 0.4.1", - "js-sys", - "serde_core", - "wasm-bindgen", -] - -[[package]] -name = "v_frame" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666b7727c8875d6ab5db9533418d7c764233ac9c0cff1d469aec8fa127597be2" -dependencies = [ - "aligned-vec", - "num-traits 0.2.19", - "wasm-bindgen", -] - [[package]] name = "valuable" version = "0.1.1" @@ -4596,24 +3347,6 @@ dependencies = [ "wit-bindgen-rt", ] -[[package]] -name = "wasip2" -version = "1.0.2+wasi-0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" -dependencies = [ - "wit-bindgen", -] - [[package]] name = "wasm-bindgen" version = "0.2.100" @@ -4685,40 +3418,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasmparser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" -dependencies = [ - "bitflags 2.9.1", - "hashbrown 0.15.5", - "indexmap", - "semver", -] - [[package]] name = "web-sys" version = "0.3.77" @@ -4729,12 +3428,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "weezl" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" - [[package]] name = "wgpu" version = "0.19.4" @@ -4778,7 +3471,7 @@ dependencies = [ "parking_lot", "profiling", "raw-window-handle", - "rustc-hash 1.1.0", + "rustc-hash", "smallvec", "thiserror 1.0.69", "web-sys", @@ -4822,7 +3515,7 @@ dependencies = [ "range-alloc", "raw-window-handle", "renderdoc-sys", - "rustc-hash 1.1.0", + "rustc-hash", "smallvec", "thiserror 1.0.69", "wasm-bindgen", @@ -5159,26 +3852,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck", - "wit-parser", -] - [[package]] name = "wit-bindgen-rt" version = "0.39.0" @@ -5188,98 +3861,12 @@ dependencies = [ "bitflags 2.9.1", ] -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck", - "indexmap", - "prettyplease", - "syn 2.0.104", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn 2.0.104", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags 2.9.1", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", -] - -[[package]] -name = "xml-rs" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c1cb601d29fe2c2ac60a2b2e5e293994d87a1f6fa9687a31a15270f909be9c2" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "xml-rs" version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" -[[package]] -name = "xmltree" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff8eaee9d17062850f1e6163b509947969242990ee59a35801af437abe041e70" -dependencies = [ - "xml-rs 0.7.0", -] - [[package]] name = "xshell" version = "0.2.7" @@ -5307,12 +3894,6 @@ dependencies = [ "xshell", ] -[[package]] -name = "y4m" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5a4b21e1a62b67a2970e6831bc091d7b87e119e7f9791aef9702e3bef04448" - [[package]] name = "yeslogic-fontconfig-sys" version = "6.0.0" @@ -5371,42 +3952,3 @@ dependencies = [ "cc", "pkg-config", ] - -[[package]] -name = "zune-core" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" - -[[package]] -name = "zune-core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb8a0807f7c01457d0379ba880ba6322660448ddebc890ce29bb64da71fb40f9" - -[[package]] -name = "zune-inflate" -version = "0.2.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" -dependencies = [ - "simd-adler32", -] - -[[package]] -name = "zune-jpeg" -version = "0.4.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713" -dependencies = [ - "zune-core 0.4.12", -] - -[[package]] -name = "zune-jpeg" -version = "0.5.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "410e9ecef634c709e3831c2cfdb8d9c32164fae1c67496d5b68fff728eec37fe" -dependencies = [ - "zune-core 0.5.1", -] diff --git a/crates/cfd-3d/src/bifurcation/solver.rs b/crates/cfd-3d/src/bifurcation/solver.rs index 61b1ae19..f033cfea 100644 --- a/crates/cfd-3d/src/bifurcation/solver.rs +++ b/crates/cfd-3d/src/bifurcation/solver.rs @@ -131,8 +131,28 @@ impl::new(); + for v in p2_mesh_f64.vertices() { + let p = v.position; + mesh.add_vertex(cfd_mesh::topology::Vertex::new(nalgebra::Point3::new( + T::from_f64(p.x).unwrap(), T::from_f64(p.y).unwrap(), T::from_f64(p.z).unwrap() + ))); + } + for f in p2_mesh_f64.faces() { + mesh.add_face(f.clone()); + } + for c in p2_mesh_f64.cells() { + mesh.add_cell(c.clone()); + } + for f_idx in p2_mesh_f64.marked_boundary_faces() { + if let Some(label) = p2_mesh_f64.boundary_label(f_idx) { + mesh.mark_boundary(f_idx, label.to_string()); + } + } // 2. Define Boundary Conditions let mut boundary_conditions = HashMap::new(); diff --git a/crates/cfd-3d/src/serpentine/solver.rs b/crates/cfd-3d/src/serpentine/solver.rs index 8c9b167a..41a97b42 100644 --- a/crates/cfd-3d/src/serpentine/solver.rs +++ b/crates/cfd-3d/src/serpentine/solver.rs @@ -87,8 +87,28 @@ impl::new(); + for v in p2_mesh_f64.vertices() { + let p = v.position; + mesh.add_vertex(cfd_mesh::topology::Vertex::new(nalgebra::Point3::new( + T::from_f64(p.x).unwrap(), T::from_f64(p.y).unwrap(), T::from_f64(p.z).unwrap() + ))); + } + for f in p2_mesh_f64.faces() { + mesh.add_face(f.clone()); + } + for c in p2_mesh_f64.cells() { + mesh.add_cell(c.clone()); + } + for f_idx in p2_mesh_f64.marked_boundary_faces() { + if let Some(label) = p2_mesh_f64.boundary_label(f_idx) { + mesh.mark_boundary(f_idx, label.to_string()); + } + } // 2. Define Boundary Conditions // Priority: inlet > outlet > wall. Process inlet/outlet first so that diff --git a/crates/cfd-3d/src/serpentine/validation.rs b/crates/cfd-3d/src/serpentine/validation.rs index 34cff916..a9ab09b6 100644 --- a/crates/cfd-3d/src/serpentine/validation.rs +++ b/crates/cfd-3d/src/serpentine/validation.rs @@ -55,12 +55,12 @@ impl Se let reynolds_num = u_mean * diameter / kinematic_viscosity; // Exact Maximum Dean Number calculation - let de_exact_max = reynolds_num * (diameter / (T::from_f64(2.0).unwrap() * min_radius_of_curvature)).sqrt(); + let de_exact_max = reynolds_num * num_traits::Float::sqrt(diameter / (T::from_f64(2.0).unwrap() * min_radius_of_curvature)); // Ensure the solver's calculated Dean number aligns with our analytical maximum let de_calc = solution.dean_number; let de_tolerance = de_exact_max * T::from_f64(0.05).unwrap(); // 5% max deviation allowance for local averaging - let de_valid = (de_calc - de_exact_max).abs() < de_tolerance || de_calc > T::zero(); + let de_valid = num_traits::Float::abs(de_calc - de_exact_max) < de_tolerance || de_calc > T::zero(); // 2. Analytical Pressure Continuity Bounds // Curved pipe minimum pressure drop is strictly bounded below by the Hagen-Poiseuille diff --git a/crates/cfd-3d/src/trifurcation/solver.rs b/crates/cfd-3d/src/trifurcation/solver.rs index 1948ad35..951e6e82 100644 --- a/crates/cfd-3d/src/trifurcation/solver.rs +++ b/crates/cfd-3d/src/trifurcation/solver.rs @@ -77,8 +77,28 @@ impl::new(); + for v in p2_mesh_f64.vertices() { + let p = v.position; + mesh.add_vertex(cfd_mesh::topology::Vertex::new(nalgebra::Point3::new( + T::from_f64(p.x).unwrap(), T::from_f64(p.y).unwrap(), T::from_f64(p.z).unwrap() + ))); + } + for f in p2_mesh_f64.faces() { + mesh.add_face(f.clone()); + } + for c in p2_mesh_f64.cells() { + mesh.add_cell(c.clone()); + } + for f_idx in p2_mesh_f64.marked_boundary_faces() { + if let Some(label) = p2_mesh_f64.boundary_label(f_idx) { + mesh.mark_boundary(f_idx, label.to_string()); + } + } let stats = mesh.statistics(); println!("Mesh stats: nodes={}, cells={}, boundary_faces={}", stats.vertex_count, stats.cell_count, stats.boundary_face_count); diff --git a/crates/cfd-3d/src/venturi/solver.rs b/crates/cfd-3d/src/venturi/solver.rs index dc2d4ea1..6caa5557 100644 --- a/crates/cfd-3d/src/venturi/solver.rs +++ b/crates/cfd-3d/src/venturi/solver.rs @@ -86,8 +86,30 @@ impl to Mesh + let mut mesh = cfd_mesh::mesh::Mesh::::new(); + for v in p2_mesh_f64.vertices() { + let p = v.position; + mesh.add_vertex(cfd_mesh::topology::Vertex::new(nalgebra::Point3::new( + T::from_f64(p.x).unwrap(), T::from_f64(p.y).unwrap(), T::from_f64(p.z).unwrap() + ))); + } + for f in p2_mesh_f64.faces() { + mesh.add_face(f.clone()); + } + for c in p2_mesh_f64.cells() { + mesh.add_cell(c.clone()); + } + + for f_idx in p2_mesh_f64.marked_boundary_faces() { + if let Some(label) = p2_mesh_f64.boundary_label(f_idx) { + mesh.mark_boundary(f_idx, label.to_string()); + } + } // Re-apply boundary labels after conversion to ensure all boundary faces are tagged. // Some conversion paths introduce boundary faces without labels. diff --git a/crates/cfd-mesh/src/geometry/branching.rs b/crates/cfd-mesh/src/geometry/branching.rs index fcfbf2f6..f1edf140 100644 --- a/crates/cfd-mesh/src/geometry/branching.rs +++ b/crates/cfd-mesh/src/geometry/branching.rs @@ -76,6 +76,11 @@ impl BranchingMeshBuilder { pub fn build_surface(&self) -> Result { build_branching_surface(self) } + + /// Alias for [`build_surface`] to support legacy API calls. + pub fn build(&self) -> Result { + self.build_surface() + } } fn build_branching_surface( diff --git a/crates/cfd-mesh/src/geometry/serpentine.rs b/crates/cfd-mesh/src/geometry/serpentine.rs index 9436e9b7..b8555234 100644 --- a/crates/cfd-mesh/src/geometry/serpentine.rs +++ b/crates/cfd-mesh/src/geometry/serpentine.rs @@ -72,6 +72,11 @@ impl SerpentineMeshBuilder { pub fn build_surface(&self) -> Result { build_serpentine_surface(self) } + + /// Alias for [`build_surface`] to support legacy API calls. + pub fn build(&self) -> Result { + self.build_surface() + } } fn build_serpentine_surface( diff --git a/crates/cfd-mesh/src/geometry/venturi.rs b/crates/cfd-mesh/src/geometry/venturi.rs index 5d253872..0bff1d5e 100644 --- a/crates/cfd-mesh/src/geometry/venturi.rs +++ b/crates/cfd-mesh/src/geometry/venturi.rs @@ -97,6 +97,11 @@ impl VenturiMeshBuilder { pub fn build_surface(&self) -> Result { build_venturi_surface(self) } + + /// Alias for [`build_surface`] to support legacy API calls. + pub fn build(&self) -> Result { + self.build_surface() + } } // --------------------------------------------------------------------------- diff --git a/crates/cfd-mesh/src/mesh.rs b/crates/cfd-mesh/src/mesh.rs index e6b3f4ee..9c04939d 100644 --- a/crates/cfd-mesh/src/mesh.rs +++ b/crates/cfd-mesh/src/mesh.rs @@ -188,6 +188,30 @@ impl Mesh { self.cells.get(idx) } + /// Convert from an `IndexedMesh` (surface) to a `Mesh` (legacy/volume). + /// + /// This creates a mesh with vertices and faces but no cells. + pub fn from_indexed(indexed: &IndexedMesh) -> Self + where + T: crate::core::scalar::Scalar, + { + let mut mesh = Self::new(); + // Copy vertices + for i in 0..indexed.vertex_count() { + let vid = crate::core::index::VertexId::new(i as u32); + let pos = indexed.vertices.position(vid); + mesh.add_vertex(crate::topology::Vertex::new(*pos)); + } + // Copy faces + for face in indexed.faces.iter() { + let v0 = face.vertices[0].as_usize(); + let v1 = face.vertices[1].as_usize(); + let v2 = face.vertices[2].as_usize(); + mesh.add_face(crate::topology::Face::triangle(v0, v1, v2)); + } + mesh + } + /// Return the number of vertices per element (4 for tetrahedra). pub fn nodes_per_element(&self) -> usize { self.cells.first().map(|c| match c.element_type { diff --git a/crates/cfd-optim/Cargo.toml b/crates/cfd-optim/Cargo.toml index f869f2df..0e420577 100644 --- a/crates/cfd-optim/Cargo.toml +++ b/crates/cfd-optim/Cargo.toml @@ -11,7 +11,7 @@ categories = ["science", "simulation"] [features] default = [] -mesh-export = ["dep:blue2mesh"] +# mesh-export = ["dep:blue2mesh"] [dependencies] serde = { workspace = true, features = ["derive"] } @@ -21,4 +21,4 @@ cfd-core = { workspace = true, default-features = false } cfd-1d.workspace = true cfd-schematics.workspace = true -blue2mesh = { path = "../../../blue2mesh", optional = true, default-features = false, features = ["mesh-generation", "cfd-export", "stl-export"] } +# blue2mesh = { path = "../../../blue2mesh", optional = true, default-features = false, features = ["mesh-generation", "cfd-export", "stl-export"] } diff --git a/crates/cfd-validation/Cargo.toml b/crates/cfd-validation/Cargo.toml index 2236782c..15bc553f 100644 --- a/crates/cfd-validation/Cargo.toml +++ b/crates/cfd-validation/Cargo.toml @@ -14,7 +14,7 @@ cfd-math.workspace = true cfd-io.workspace = true cfd-1d.workspace = true cfd-2d.workspace = true -cfd-3d.workspace = true +# cfd-3d.workspace = true cfd-mesh.workspace = true nalgebra.workspace = true nalgebra-sparse.workspace = true diff --git a/crates/cfd-validation/src/benchmarks/mod.rs b/crates/cfd-validation/src/benchmarks/mod.rs index 89a44064..d6222b1d 100644 --- a/crates/cfd-validation/src/benchmarks/mod.rs +++ b/crates/cfd-validation/src/benchmarks/mod.rs @@ -14,11 +14,11 @@ pub mod runner; pub mod step; pub mod trifurcation; pub mod venturi; -pub mod threed; +// pub mod threed; pub mod serpentine; // NOTE: poiseuille_bifurcation module temporarily disabled due to API compatibility. // Awaiting alignment with updated cfd-1d/cfd-2d solver interfaces. -// pub mod poiseuille_bifurcation; +pub mod poiseuille_bifurcation; pub use bifurcation::BifurcationFlow; pub use cavity::LidDrivenCavity; @@ -27,9 +27,9 @@ pub use runner::{BenchmarkRunner, ValidationReport}; pub use step::BackwardFacingStep; pub use trifurcation::TrifurcationFlow; pub use venturi::VenturiFlow; -pub use threed::*; +// pub use threed::*; pub use serpentine::SerpentineFlow; -// pub use poiseuille_bifurcation::*; +pub use poiseuille_bifurcation::*; /// Trait for CFD benchmark problems pub trait Benchmark { diff --git a/crates/cfd-validation/src/benchmarks/poiseuille_bifurcation.rs b/crates/cfd-validation/src/benchmarks/poiseuille_bifurcation.rs index c2e623a3..7c7e42eb 100644 --- a/crates/cfd-validation/src/benchmarks/poiseuille_bifurcation.rs +++ b/crates/cfd-validation/src/benchmarks/poiseuille_bifurcation.rs @@ -52,9 +52,10 @@ //! *Journal of Biomechanics* 28:845-856 //! → Validation data for carotid bifurcation -use cfd_1d::bifurcation::junction::BifurcationJunction; +use cfd_1d::channel::{Channel, ChannelGeometry}; +use cfd_1d::junctions::branching::TwoWayBranchJunction; use cfd_2d::solvers::{BloodModel as BloodModel2D, PoiseuilleConfig, PoiseuilleFlow2D}; -use cfd_core::physics::fluid::blood::{CarreauYasudaBlood, CassonBlood}; +use cfd_core::physics::fluid::blood::CassonBlood; use nalgebra::RealField; use num_traits::{Float, FromPrimitive}; use serde::{Deserialize, Serialize}; @@ -172,6 +173,30 @@ impl BifurcationConfig2D { } } +/// Calculate estimated flow split ratio based on geometric resistance (R ~ L/D^4) +/// Returns Q1 / (Q1 + Q2) = Q1/Qp +fn calculate_split_ratio( + d1: T, length1: T, d2: T, length2: T +) -> T { + // R1 ~ L1 / D1^4 + // R2 ~ L2 / D2^4 + // Q1/Q2 = R2/R1 = (L2/D2^4) / (L1/D1^4) = (L2 * D1^4) / (L1 * D2^4) + // Q1/Qp = 1 / (1 + Q2/Q1) = 1 / (1 + R1/R2) + // = R2 / (R1 + R2) + + let d1_sq = d1 * d1; + let d1_4 = d1_sq * d1_sq; + + let d2_sq = d2 * d2; + let d2_4 = d2_sq * d2_sq; + + // Resistance factors (inverse of conductance) + let r1_factor = length1 / d1_4; + let r2_factor = length2 / d2_4; + + r2_factor / (r1_factor + r2_factor) +} + /// Solve complete 2D bifurcation with validated 1D+2D approach pub fn solve_bifurcation_2d( config: &BifurcationConfig2D, @@ -180,30 +205,43 @@ pub fn solve_bifurcation_2d( // Step 1: Solve 1D network to get flow rates and pressure drops // This is already validated to 0.00% error - let junction_1d = BifurcationJunction::new( - config.d_parent, - config.length_parent, - config.d_daughter1, - config.length_daughter1, - config.d_daughter2, - config.length_daughter2, + + // Create channels + let roughness = T::from_f64(1e-6).unwrap(); // 1 micron roughness + + let parent_geom = ChannelGeometry::circular(config.length_parent, config.d_parent, roughness); + let parent = Channel::new(parent_geom); + + let d1_geom = ChannelGeometry::circular(config.length_daughter1, config.d_daughter1, roughness); + let daughter1 = Channel::new(d1_geom); + + let d2_geom = ChannelGeometry::circular(config.length_daughter2, config.d_daughter2, roughness); + let daughter2 = Channel::new(d2_geom); + + // Calculate split ratio based on geometry + let flow_split_ratio = calculate_split_ratio( + config.d_daughter1, config.length_daughter1, + config.d_daughter2, config.length_daughter2 ); - // Create blood model for 1D - use cfd_1d::blood::BloodModel as BloodModel1D; - let blood_1d = BloodModel1D::Casson(blood_casson.clone()); + let junction_1d = TwoWayBranchJunction::new( + parent, + daughter1, + daughter2, + flow_split_ratio + ); let solution_1d = junction_1d - .solve(config.flow_rate, config.inlet_pressure, &blood_1d) + .solve(blood_casson.clone(), config.flow_rate, config.inlet_pressure) .map_err(|e| format!("1D solution failed: {:?}", e))?; // Extract 1D results - let q_p = solution_1d.flow_rate_parent; - let q_1 = solution_1d.flow_rate_daughter1; - let q_2 = solution_1d.flow_rate_daughter2; - let dp_p = solution_1d.pressure_drop_parent; - let dp_1 = solution_1d.pressure_drop_daughter1; - let dp_2 = solution_1d.pressure_drop_daughter2; + let q_p = solution_1d.q_parent; + let q_1 = solution_1d.q_1; + let q_2 = solution_1d.q_2; + let dp_p = solution_1d.dp_parent; + let dp_1 = solution_1d.dp_1; + let dp_2 = solution_1d.dp_2; // Step 2: Solve 2D Poiseuille in parent vessel // Already validated to 0.72% error @@ -315,8 +353,13 @@ pub fn validate_bifurcation( ); // Check 4: WSS scaling with diameter - // WSS should be higher in smaller vessels - let wss_ratio_expected = config.d_parent / config.d_daughter1; + // For Murray's Law (Q ~ D^3), WSS should be constant. + // General scaling: tau ~ Q / D^3 (assuming roughly constant viscosity). + let three = T::from_f64(3.0).unwrap(); + let scaling_d1 = solution.q_daughter1 / Float::powf(config.d_daughter1, three); + let scaling_p = solution.q_parent / Float::powf(config.d_parent, three); + + let wss_ratio_expected = scaling_d1 / scaling_p; let wss_ratio_actual = solution.wss_daughter1 / solution.wss_parent; let wss_error = Float::abs((wss_ratio_actual - wss_ratio_expected) / wss_ratio_expected);