diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..6e82476b9 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,19 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [0.1.1](https://github.com/QuEraComputing/ppvm/compare/v0.1.0...v0.1.1) - 2026-10-23 + +### Fixed + +- *(hash)* spread high-bit keys across buckets in tableau and Pauli-word maps ([#267](https://github.com/QuEraComputing/ppvm/pull/267)) +- *(tableau)* use FoldHashMap for two-qubit rotation coefficients ([#268](https://github.com/QuEraComputing/ppvm/pull/268)) + +### Other + +- add crates.io READMEs for the published crates ([#265](https://github.com/QuEraComputing/ppvm/pull/265)) diff --git a/Cargo.lock b/Cargo.lock index d23a4ba0e..75d6a20fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2167,7 +2167,7 @@ dependencies = [ [[package]] name = "ppvm" -version = "0.1.0" +version = "0.1.1" dependencies = [ "ppvm-pauli-sum", "ppvm-sym", @@ -2176,7 +2176,7 @@ dependencies = [ [[package]] name = "ppvm-cli" -version = "0.1.0" +version = "0.1.1" dependencies = [ "clap", "eyre", @@ -2187,7 +2187,7 @@ dependencies = [ [[package]] name = "ppvm-lindblad" -version = "0.1.0" +version = "0.1.1" dependencies = [ "approx", "criterion 0.7.0", @@ -2205,7 +2205,7 @@ dependencies = [ [[package]] name = "ppvm-pauli-sum" -version = "0.1.0" +version = "0.1.1" dependencies = [ "approx", "bon", @@ -2225,7 +2225,7 @@ dependencies = [ [[package]] name = "ppvm-pauli-word" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "bincode", @@ -2241,7 +2241,7 @@ dependencies = [ [[package]] name = "ppvm-pauli-word-2" -version = "0.1.0" +version = "0.1.1" dependencies = [ "bitvec", "bytemuck", @@ -2253,7 +2253,7 @@ dependencies = [ [[package]] name = "ppvm-python-native" -version = "0.1.0" +version = "0.1.1" dependencies = [ "bnum", "mimalloc", @@ -2281,7 +2281,7 @@ dependencies = [ [[package]] name = "ppvm-stim" -version = "0.1.0" +version = "0.1.1" dependencies = [ "bitvec", "bnum", @@ -2298,7 +2298,7 @@ dependencies = [ [[package]] name = "ppvm-sym" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "fxhash", @@ -2309,7 +2309,7 @@ dependencies = [ [[package]] name = "ppvm-tableau" -version = "0.1.0" +version = "0.1.1" dependencies = [ "bitvec", "bnum", @@ -2329,7 +2329,7 @@ dependencies = [ [[package]] name = "ppvm-tableau-sum" -version = "0.1.0" +version = "0.1.1" dependencies = [ "bitvec", "bytemuck", @@ -2349,7 +2349,7 @@ dependencies = [ [[package]] name = "ppvm-traits" -version = "0.1.0" +version = "0.1.1" dependencies = [ "ahash", "bitvec", @@ -2366,14 +2366,14 @@ dependencies = [ [[package]] name = "ppvm-traits-2" -version = "0.1.0" +version = "0.1.1" dependencies = [ "num", ] [[package]] name = "ppvm-tui" -version = "0.1.0" +version = "0.1.1" dependencies = [ "eyre", "ppvm-vihaco", @@ -2382,7 +2382,7 @@ dependencies = [ [[package]] name = "ppvm-vihaco" -version = "0.1.0" +version = "0.1.1" dependencies = [ "bitvec", "bnum", @@ -3127,7 +3127,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stim-parser" -version = "0.1.0" +version = "0.1.1" dependencies = [ "ariadne", "chumsky 0.12.0", @@ -3492,7 +3492,7 @@ dependencies = [ [[package]] name = "vihaco-circuit-isa" -version = "0.1.0" +version = "0.1.1" dependencies = [ "chumsky 0.10.1", "eyre", diff --git a/Cargo.toml b/Cargo.toml index 2043c7a68..2db44aa4a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,9 +6,9 @@ edition.workspace = true publish = false [dependencies] -ppvm-pauli-sum = { version = "0.1.0", path = "crates/ppvm-pauli-sum" } -ppvm-tableau = { version = "0.1.0", path = "crates/ppvm-tableau" } -ppvm-sym = { version = "0.1.0", path = "crates/ppvm-sym" } +ppvm-pauli-sum = { version = "0.1.1", path = "crates/ppvm-pauli-sum" } +ppvm-tableau = { version = "0.1.1", path = "crates/ppvm-tableau" } +ppvm-sym = { version = "0.1.1", path = "crates/ppvm-sym" } [workspace] members = [ @@ -36,7 +36,7 @@ members = [ # Single version for every crate and the `bloqade-ppvm` Python package # (via ppvm-python-native); bumped by release-plz. [workspace.package] -version = "0.1.0" +version = "0.1.1" edition = "2024" license = "Apache-2.0" repository = "https://github.com/QuEraComputing/ppvm" diff --git a/crates/ppvm-cli/Cargo.toml b/crates/ppvm-cli/Cargo.toml index ef5091d6b..de85c24c7 100644 --- a/crates/ppvm-cli/Cargo.toml +++ b/crates/ppvm-cli/Cargo.toml @@ -9,8 +9,8 @@ description = "Command-line tool and TUI for parsing, running and stepping throu [dependencies] clap = { version = "4.6.1", features = ["derive"] } eyre = "0.6.12" -ppvm-tui = { version = "0.1.0", path = "../ppvm-tui" } -ppvm-vihaco = { version = "0.1.0", path = "../ppvm-vihaco", features = ["rayon"] } +ppvm-tui = { version = "0.1.1", path = "../ppvm-tui" } +ppvm-vihaco = { version = "0.1.1", path = "../ppvm-vihaco", features = ["rayon"] } ratatui = "0.29.0" [[bin]] diff --git a/crates/ppvm-lindblad/Cargo.toml b/crates/ppvm-lindblad/Cargo.toml index c7d0db589..961f48131 100644 --- a/crates/ppvm-lindblad/Cargo.toml +++ b/crates/ppvm-lindblad/Cargo.toml @@ -11,9 +11,9 @@ description = "Direct Heisenberg-picture Lindbladian evolution on an adaptive Pa fxhash = "0.2.1" ndarray = "0.17" num = "0.4.3" -ppvm-traits = { version = "0.1.0", path = "../ppvm-traits" } -ppvm-pauli-word = { version = "0.1.0", path = "../ppvm-pauli-word" } -ppvm-pauli-sum = { version = "0.1.0", path = "../ppvm-pauli-sum" } +ppvm-traits = { version = "0.1.1", path = "../ppvm-traits" } +ppvm-pauli-word = { version = "0.1.1", path = "../ppvm-pauli-word" } +ppvm-pauli-sum = { version = "0.1.1", path = "../ppvm-pauli-sum" } rayon = "1.11" # Matrix-exponential action (Al-Mohy & Higham). QuSpin-rust is MIT-licensed; # the pinned rev is the commit that added the LICENSE file. diff --git a/crates/ppvm-pauli-sum/Cargo.toml b/crates/ppvm-pauli-sum/Cargo.toml index 923803938..75157c08a 100644 --- a/crates/ppvm-pauli-sum/Cargo.toml +++ b/crates/ppvm-pauli-sum/Cargo.toml @@ -7,8 +7,8 @@ repository.workspace = true description = "Pauli-propagation engine for ppvm: `PauliSum`, truncation strategies and ready-made configs." [dependencies] -ppvm-traits = { version = "0.1.0", path = "../ppvm-traits" } -ppvm-pauli-word = { version = "0.1.0", path = "../ppvm-pauli-word" } +ppvm-traits = { version = "0.1.1", path = "../ppvm-traits" } +ppvm-pauli-word = { version = "0.1.1", path = "../ppvm-pauli-word" } bytemuck = { version = "1", features = ["min_const_generics"] } fxhash = "0.2.1" num = "0.4.3" diff --git a/crates/ppvm-pauli-word/Cargo.toml b/crates/ppvm-pauli-word/Cargo.toml index 3a0cb89c9..c98d4b490 100644 --- a/crates/ppvm-pauli-word/Cargo.toml +++ b/crates/ppvm-pauli-word/Cargo.toml @@ -7,7 +7,7 @@ repository.workspace = true description = "Packed Pauli-string types (plain, phased, lossy and pattern) for the ppvm simulators." [dependencies] -ppvm-traits = { version = "0.1.0", path = "../ppvm-traits" } +ppvm-traits = { version = "0.1.1", path = "../ppvm-traits" } bitvec = "1.0.1" bytemuck = { version = "1", features = ["min_const_generics"] } fxhash = "0.2.1" diff --git a/crates/ppvm-python-native/Cargo.toml b/crates/ppvm-python-native/Cargo.toml index 62267c48a..27bc6a2ba 100644 --- a/crates/ppvm-python-native/Cargo.toml +++ b/crates/ppvm-python-native/Cargo.toml @@ -24,10 +24,10 @@ num = "0.4.3" numpy = "0.29" paste = "1.0.15" ppvm-lindblad = { version = "0.1.0", path = "../ppvm-lindblad" } -ppvm-pauli-sum = { version = "0.1.0", path = "../ppvm-pauli-sum" } -ppvm-stim = { version = "0.1.0", path = "../ppvm-stim", features = ["rayon"] } -ppvm-tableau = { version = "0.1.0", path = "../ppvm-tableau" } -ppvm-tableau-sum = { version = "0.1.0", path = "../ppvm-tableau-sum", features = ["rayon"] } +ppvm-pauli-sum = { version = "0.1.1", path = "../ppvm-pauli-sum" } +ppvm-stim = { version = "0.1.1", path = "../ppvm-stim", features = ["rayon"] } +ppvm-tableau = { version = "0.1.1", path = "../ppvm-tableau" } +ppvm-tableau-sum = { version = "0.1.1", path = "../ppvm-tableau-sum", features = ["rayon"] } # abi3-py310: build a single stable-ABI wheel that loads on CPython 3.10+, # instead of one wheel per Python version. pyo3 = { version = "0.29.0", features = [ diff --git a/crates/ppvm-stim/Cargo.toml b/crates/ppvm-stim/Cargo.toml index c6f53d4e6..f7734973c 100644 --- a/crates/ppvm-stim/Cargo.toml +++ b/crates/ppvm-stim/Cargo.toml @@ -12,14 +12,14 @@ default = [] rayon = ["dep:rayon"] [dependencies] -ppvm-pauli-sum = { version = "0.1.0", path = "../ppvm-pauli-sum" } -ppvm-tableau = { version = "0.1.0", path = "../ppvm-tableau" } +ppvm-pauli-sum = { version = "0.1.1", path = "../ppvm-pauli-sum" } +ppvm-tableau = { version = "0.1.1", path = "../ppvm-tableau" } bitvec = "1.0.1" itertools = "0.14" num = "0.4.3" smallvec = "1.15" thiserror = "2" -stim-parser = { version = "0.1.0", path = "../stim-parser" } +stim-parser = { version = "0.1.1", path = "../stim-parser" } # rayon needs OS threads — native only. [target.'cfg(not(target_arch = "wasm32"))'.dependencies] diff --git a/crates/ppvm-sym/Cargo.toml b/crates/ppvm-sym/Cargo.toml index 795149bcf..1aa993399 100644 --- a/crates/ppvm-sym/Cargo.toml +++ b/crates/ppvm-sym/Cargo.toml @@ -10,5 +10,5 @@ description = "Symbolic, parametric Pauli propagation for ppvm." anyhow = "1.0.100" fxhash = "0.2.1" num = "0.4.3" -ppvm-traits = { version = "0.1.0", path = "../ppvm-traits", default-features = false } -ppvm-pauli-sum = { version = "0.1.0", path = "../ppvm-pauli-sum", default-features = false } +ppvm-traits = { version = "0.1.1", path = "../ppvm-traits", default-features = false } +ppvm-pauli-sum = { version = "0.1.1", path = "../ppvm-pauli-sum", default-features = false } diff --git a/crates/ppvm-tableau-sum/Cargo.toml b/crates/ppvm-tableau-sum/Cargo.toml index fab5f37dc..0038e2d53 100644 --- a/crates/ppvm-tableau-sum/Cargo.toml +++ b/crates/ppvm-tableau-sum/Cargo.toml @@ -11,12 +11,12 @@ bitvec = "1.0.1" bytemuck = { version = "1", features = ["min_const_generics"] } fxhash = "0.2.1" num = "0.4.3" -ppvm-traits = { version = "0.1.0", path = "../ppvm-traits" } -ppvm-pauli-sum = { version = "0.1.0", path = "../ppvm-pauli-sum" } -ppvm-tableau = { version = "0.1.0", path = "../ppvm-tableau" } +ppvm-traits = { version = "0.1.1", path = "../ppvm-traits" } +ppvm-pauli-sum = { version = "0.1.1", path = "../ppvm-pauli-sum" } +ppvm-tableau = { version = "0.1.1", path = "../ppvm-tableau" } rand = "0.10.1" smallvec = "1.15" -ppvm-pauli-word = { version = "0.1.0", path = "../ppvm-pauli-word" } +ppvm-pauli-word = { version = "0.1.1", path = "../ppvm-pauli-word" } # Native-only dep: rayon (OS threads). Pruned on wasm32. [target.'cfg(not(target_arch = "wasm32"))'.dependencies] diff --git a/crates/ppvm-tableau/Cargo.toml b/crates/ppvm-tableau/Cargo.toml index e53f4d461..ba129031d 100644 --- a/crates/ppvm-tableau/Cargo.toml +++ b/crates/ppvm-tableau/Cargo.toml @@ -16,11 +16,11 @@ fxhash = "0.2.1" bnum = { version = "0.13.0", features = ["numtraits"] } itertools = "0.14.0" num = "0.4.3" -ppvm-traits = { version = "0.1.0", path = "../ppvm-traits" } -ppvm-pauli-sum = { version = "0.1.0", path = "../ppvm-pauli-sum" } +ppvm-traits = { version = "0.1.1", path = "../ppvm-traits" } +ppvm-pauli-sum = { version = "0.1.1", path = "../ppvm-pauli-sum" } rand = "0.10.1" smallvec = "1.15" -ppvm-pauli-word = { version = "0.1.0", path = "../ppvm-pauli-word" } +ppvm-pauli-word = { version = "0.1.1", path = "../ppvm-pauli-word" } # rayon needs OS threads — native only. [target.'cfg(not(target_arch = "wasm32"))'.dependencies] diff --git a/crates/ppvm-tui/Cargo.toml b/crates/ppvm-tui/Cargo.toml index 2ba54d303..4c30a97bf 100644 --- a/crates/ppvm-tui/Cargo.toml +++ b/crates/ppvm-tui/Cargo.toml @@ -12,4 +12,4 @@ eyre = "0.6.12" # don't declare it directly — that keeps a single crossterm version in the tree # and unifies event types with any host ratatui app. ratatui = "0.29.0" -ppvm-vihaco = { version = "0.1.0", path = "../ppvm-vihaco" } +ppvm-vihaco = { version = "0.1.1", path = "../ppvm-vihaco" } diff --git a/crates/ppvm-vihaco/Cargo.toml b/crates/ppvm-vihaco/Cargo.toml index 61b4e1edd..37d65d8a4 100644 --- a/crates/ppvm-vihaco/Cargo.toml +++ b/crates/ppvm-vihaco/Cargo.toml @@ -20,12 +20,12 @@ eyre = "0.6.12" log = "0.4.29" num = "0.4.3" rayon = { version = "1.10", optional = true } -ppvm-tableau = { version = "0.1.0", path = "../ppvm-tableau" } +ppvm-tableau = { version = "0.1.1", path = "../ppvm-tableau" } smallvec = "1.15.1" vihaco = "0.4.1" vihaco-cpu = "0.4.1" vihaco-parser = "0.4.1" vihaco-parser-derive = "0.4.1" -vihaco-circuit-isa = { version = "0.1.0", path = "../vihaco-circuit-isa" } -ppvm-pauli-sum = { version = "0.1.0", path = "../ppvm-pauli-sum" } +vihaco-circuit-isa = { version = "0.1.1", path = "../vihaco-circuit-isa" } +ppvm-pauli-sum = { version = "0.1.1", path = "../ppvm-pauli-sum" } rand = "0.10.3" diff --git a/skills/ppvm-usage/examples/rust/Cargo.toml b/skills/ppvm-usage/examples/rust/Cargo.toml index 62c5f8f8c..96427c5fd 100644 --- a/skills/ppvm-usage/examples/rust/Cargo.toml +++ b/skills/ppvm-usage/examples/rust/Cargo.toml @@ -14,7 +14,7 @@ edition = "2024" publish = false [dependencies] -ppvm-pauli-sum = { version = "0.1.0", path = "../../../../crates/ppvm-pauli-sum" } -ppvm-tableau = { version = "0.1.0", path = "../../../../crates/ppvm-tableau" } -ppvm-sym = { version = "0.1.0", path = "../../../../crates/ppvm-sym" } -ppvm-stim = { version = "0.1.0", path = "../../../../crates/ppvm-stim" } +ppvm-pauli-sum = { version = "0.1.1", path = "../../../../crates/ppvm-pauli-sum" } +ppvm-tableau = { version = "0.1.1", path = "../../../../crates/ppvm-tableau" } +ppvm-sym = { version = "0.1.1", path = "../../../../crates/ppvm-sym" } +ppvm-stim = { version = "0.1.1", path = "../../../../crates/ppvm-stim" }