# 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). ## [0.10.3](https://github.com/denehoffman/rustitude/compare/rustitude-v0.10.2...rustitude-v0.10.3) - 2024-08-18 ### Other - update readmes ## [0.10.2](https://github.com/denehoffman/rustitude/compare/rustitude-v0.10.1...rustitude-v0.10.2) - 2024-08-02 ### Fixed - resolves a huge bug I introduced when I put the `Model` `amplitudes` field under an `Arc` ## [0.10.1](https://github.com/denehoffman/rustitude/compare/rustitude-v0.10.0...rustitude-v0.10.1) - 2024-08-01 ### Other - change `Reflectivity` enum to `Sign` for more generic use - update READMEs ## [0.10.0](https://github.com/denehoffman/rustitude/compare/rustitude-v0.9.3...rustitude-v0.10.0) - 2024-07-30 ### Added - [**breaking**] add `Decay` enum to basically every amplitude to avoid hardcoding particle indices ## [0.9.2](https://github.com/denehoffman/rustitude/compare/rustitude-v0.9.1...rustitude-v0.9.2) - 2024-07-23 ### Added - remove duplicate methods for loading data and replace with enum ## [0.9.1](https://github.com/denehoffman/rustitude/compare/rustitude-v0.9.0...rustitude-v0.9.1) - 2024-07-23 ### Added - add f32 benchmark ### Other - update benchmarks and tests to reflect new breaking syntax - add crate-level docs for rustitude to point to rustitude-core and rustitude-gluex - change logo url - update dependencies ## [0.8.0](https://github.com/denehoffman/rustitude/compare/rustitude-v0.7.4...rustitude-v0.8.0) - 2024-06-27 ### Added - add benchmark for indexed evaluation ### Other - corrected mistake in README.md - update all README.mds - update badges ## [0.7.4](https://github.com/denehoffman/rustitude/compare/rustitude-v0.7.3...rustitude-v0.7.4) - 2024-06-21 ### Other - Merge branch 'main' into development - reduce number of samples in read_dataset benchmark ## [0.7.2](https://github.com/denehoffman/rustitude/compare/rustitude-v0.7.1...rustitude-v0.7.2) - 2024-06-19 ### Other - deprecate norm_int methods ## [0.7.1](https://github.com/denehoffman/rustitude/compare/rustitude-v0.7.0...rustitude-v0.7.1) - 2024-06-17 ### Added - add basic dataset read benchmark ## [0.7.0](https://github.com/denehoffman/rustitude/compare/rustitude-v0.6.0...rustitude-v0.7.0) - 2024-06-10 ### Added - [**breaking**] Restructures AmpOp into concrete types - add par_ versions for all compute and norm_int methods and refactor python accordingly. Also remove RwLocks and extra allocations in the Amplitude struct, which is a huge speedup ### Other - bump versions because smart-release just doesn't know how to do anything I guess ## 0.5.0 (2024-05-24) ### New Features - add RustitudeError and remove unwraps, error handling should work in python as well - update benchmark and itertools dep, which deprecated group_by -> chunk_by - make Model::new public to allow for proper benchmarking, and add divan benchmark for basic kmatrix ### Bug Fixes - switch from divan to criterion because I don't trust the threaded benchmarks - didn't need an extra pyproject.toml - bump versions ### Test - add convert script and update benchmark to use a standardized test file ### Commit Statistics - 9 commits contributed to the release over the course of 2 calendar days. - 8 days passed between releases. - 7 commits were understood as [conventional](https://www.conventionalcommits.org). - 0 issues like '(#ID)' were seen in commit messages ### Commit Details
view details * **Uncategorized** - Bump versions ([`405ed0c`](https://github.com/denehoffman/rustitude/commit/405ed0cb2ad417ccf0041a49ce6fbd6b6693539c)) - Merge pull request #3 from denehoffman/python_reorg ([`467caac`](https://github.com/denehoffman/rustitude/commit/467caacc688f94c074d28be1ec54a422d8d9ebc0)) - Add RustitudeError and remove unwraps, error handling should work in python as well ([`6955773`](https://github.com/denehoffman/rustitude/commit/6955773a3e96890efa4573d5c7bc355bb23a07e6)) - Add convert script and update benchmark to use a standardized test file ([`a306fc4`](https://github.com/denehoffman/rustitude/commit/a306fc4c47acc701aae32104ea2e017d2a4f97cc)) - Merge pull request #2 from denehoffman/create_benchmarks ([`1297b92`](https://github.com/denehoffman/rustitude/commit/1297b9275dfac49f2591573b46438ff588a77c51)) - Switch from divan to criterion because I don't trust the threaded benchmarks ([`6a67ab1`](https://github.com/denehoffman/rustitude/commit/6a67ab1c8b98ea21a00a3098dfcf150ae6baa228)) - Didn't need an extra pyproject.toml ([`36236e5`](https://github.com/denehoffman/rustitude/commit/36236e54eb26dbe0015482feb60e65ce4e0cb698)) - Update benchmark and itertools dep, which deprecated group_by -> chunk_by ([`b495892`](https://github.com/denehoffman/rustitude/commit/b495892674a3fad4937de6e830241230b52880c3)) - Make Model::new public to allow for proper benchmarking, and add divan benchmark for basic kmatrix ([`8b1eee7`](https://github.com/denehoffman/rustitude/commit/8b1eee79d545caaca39b8b38be1f00f7762adcda))
## 0.4.3 (2024-05-16) ### Refactor - this is no longer a python crate ### Style - get rid of extra git-files and media ### Commit Statistics - 4 commits contributed to the release. - 2 commits were understood as [conventional](https://www.conventionalcommits.org). - 0 issues like '(#ID)' were seen in commit messages ### Commit Details
view details * **Uncategorized** - Release rustitude-core v1.0.1, rustitude-gluex v0.2.2, rustitude v0.4.3 ([`fe0c603`](https://github.com/denehoffman/rustitude/commit/fe0c6036d4816587b1d65ae2697f3b241cfe579c)) - Release rustitude-gluex v0.2.2, rustitude v0.4.3 ([`0062542`](https://github.com/denehoffman/rustitude/commit/006254211c6dda1924cede7818c94ab4dcf1f49a)) - Get rid of extra git-files and media ([`0e94ec4`](https://github.com/denehoffman/rustitude/commit/0e94ec45850cb6129924b2be27793a17c51b03c2)) - This is no longer a python crate ([`e4399ef`](https://github.com/denehoffman/rustitude/commit/e4399efe07ea8e66d9769a067c55c72d9dc09c69))
## 0.4.2 (2024-05-15) ### Refactor - major move required to have rustitude function properly as a Rust crate. I set this up very wrong the first time ### Bug Fixes - readmes and licenses suck ### Commit Statistics - 5 commits contributed to the release. - 2 commits were understood as [conventional](https://www.conventionalcommits.org). - 0 issues like '(#ID)' were seen in commit messages ### Commit Details
view details * **Uncategorized** - Release rustitude v0.4.2 ([`6fde79a`](https://github.com/denehoffman/rustitude/commit/6fde79a5b11d20069c36d47a272aee9bed9fd3a9)) - Release rustitude v0.4.2 ([`f0d5b95`](https://github.com/denehoffman/rustitude/commit/f0d5b954f659e5410fc504b460e980a1fb270936)) - Readmes and licenses suck ([`174a6f5`](https://github.com/denehoffman/rustitude/commit/174a6f540fa8f2b0292a9657e87acbe65edcaf71)) - Release rustitude-gluex v0.2.1, rustitude v0.4.2 ([`3a45077`](https://github.com/denehoffman/rustitude/commit/3a45077dcd7413ac50e5ec45dc98826b11d789fb)) - Major move required to have rustitude function properly as a Rust crate. I set this up very wrong the first time ([`9089c84`](https://github.com/denehoffman/rustitude/commit/9089c84e481124ff764b24f42507ab14913fef07))
## 0.4.1 (2024-05-15) ### Bug Fixes - add package info into workspace ### Other - merge rustitude-core to crates subdirectory - more Cargo.lock and readme updates - update Cargo.tomls - move rustitude to crates subdirectory ### Refactor - move rustitude into the crates directory and add to workspace ### Commit Statistics - 7 commits contributed to the release over the course of 1 calendar day. - 6 commits were understood as [conventional](https://www.conventionalcommits.org). - 0 issues like '(#ID)' were seen in commit messages ### Commit Details
view details * **Uncategorized** - Release rustitude v0.4.1 ([`9f6b0c5`](https://github.com/denehoffman/rustitude/commit/9f6b0c5570050312cc7f5ed1609d37e0f6f0aaca)) - Add package info into workspace ([`740a018`](https://github.com/denehoffman/rustitude/commit/740a0186ae22bdab87f514a5e035f3917a531c86)) - Move rustitude into the crates directory and add to workspace ([`0973112`](https://github.com/denehoffman/rustitude/commit/097311224630f5a4d98381a11d2917ca6378ad46)) - Merge rustitude-core to crates subdirectory ([`9617a27`](https://github.com/denehoffman/rustitude/commit/9617a27322460b378fb022ef28561f31197fc86f)) - More Cargo.lock and readme updates ([`64ec509`](https://github.com/denehoffman/rustitude/commit/64ec5097cc99eb9bb6d73376e6d3b2788f637d9d)) - Update Cargo.tomls ([`78b96b9`](https://github.com/denehoffman/rustitude/commit/78b96b94097670af64886abb84ed263048e91e62)) - Move rustitude to crates subdirectory ([`8f2f28c`](https://github.com/denehoffman/rustitude/commit/8f2f28c972c20c0b8cef2869ab08fc4abaec5cf7))
## 0.4.0 (2024-05-15) ### Bug Fixes - make add_submodule public ### Other - reorganize crate structure ## 0.3.4 (2024-05-06) ### Chore - bump python library version ### Documentation - Update README.md - Update README.md - fixed some links - Update README.md ### New Features - add type checking and re-export rustitude-core and rustitude-gluex as their own submodules ### Bug Fixes - correct spelling ### Other - update Cargo.lock - re-enable tag check - temporarily disable tag check so we can push to pypi through an action - re-enable on-push and on-PR workflow conditions A release only happens with a new tag - update pyproject.toml version ## 0.3.3 (2024-05-03) ### Chore - update pyproject.toml info ### Other - remove unused library in rustitude-gluex which prevented cross-compilation - Update maturin.yml don't publish on every push, need to set up more for that - add maturin github actions ## 0.3.3-pypi (2024-05-03) ### Chore - update pyproject.toml info ### Other - remove unused library in rustitude-gluex which prevented cross-compilation - Update maturin.yml don't publish on every push, need to set up more for that - add maturin github actions ## 0.3.2 (2024-05-02) ### Chore - bump rustitude dependency versions ### New Features - initial commit to rustitude meta-crate Includes some preliminary PyO3 bindings for the rustitude-core crate as well as rustitude-gluex bindings for testing. The gluex submodule will eventually be behind a feature gate! ### Other - Create rust.yml - add README and CHANGELOG ### Reverted - opt for implementing all pyo3 bindings in their own submodules - this package will be very lightweight! ### Style - add local notes - Create LICENSE - update .gitignore ## 0.3.1 (2024-04-10) ### Chore - update Cargo.lock ### Documentation - update README.md - update README.md - document ParameterType - document Scalar and ComplexScalar - document Amplitude - document Node - document macros ### New Features - add pretty printing to Parameter struct - formalize Parameter struct - rework loading from parquet and different ways to load EPS - modify output of Manage::parameters to include other parameter fields - re-export num_complex::Complex64 ### Bug Fixes - make Manager::compute public again - fix tests - reorganize amplitude module into amplitude and manager restructure manager via Manage trait - remove nightly-only feature which was unused - doctest ### Other - update .gitignore - get rid of expect, gluex - some updates to bacon and other configs - first commit of functional code This really doesn't work well at all, it is super slow and hoards memory ### Style - remove line from docs-header.html ## 0.3.0 (2024-04-05) ## 0.2.0-alpha (2024-02-02) ### Chore - Release rustitude version 0.2.0-alpha ### New Features - re-implement dependency resolution ### Other - add Resolver trait and some other minor organizational things ### Refactor - change par_evaluate_on to evaluate_on_par This matches other methods and makes the API more consistent. It also makes it easier to search for the parallel version if you already know the non-parallel version by typing completion. - changed resolve to function to match amplitude plus other aesthetic changes - major rewrite of Dataset and Variable types While this is technically a breaking change, I'm still working in 0.1.* here. The core of this is that Dataset entries are no longer enums, which have the size of their largest variant (in our case, complex matrices probably). This is bad, as it wastes memory and takes longer to move around. While I still haven't tested this, I believe my solution is better, and as far as I can tell, it makes a lot of the code cleaner. It did require a rewrite of Variable, since the return type is no longer an enum, so there are now multiple Variable variants, each with Builders. I also added a Builder to the Amplitude struct, and renamed the traits Amplitude(Variable)Builder to IntoAmplitude(Variable) to avoid confusion. I disabled most of the gluex code while I'm working through the changes, but Ylm is implemented and might work, although I haven't tested it at time of writing. Assume tests will break here. ### Style - give logo a white background - add logo ## 0.1.3 (2023-12-29) ### New Features - add Pow trait and pow function to Amplitude - allow for different amplitudes for data and MC This ensures we can assign weights as part of the amplitude, but users can choose whether they want weighted MC or not. Also makes it easy if your branch names differ between the two files, you only have to re-implement some things. - add Branch struct Branch is a convenience wrapper for getting data from the Dataset without duplicating or copying anything into a new variable dependency. ### Bug Fixes - doctests were taking Strings after I changed to &str ### Refactor - move data extraction into dataset and propogate errors - change inputs to functions to &str ### Style - try out logging fit steps - remove some commented-out code ## 0.1.2-beta.2 (2023-12-29) ### Chore - release ## 0.1.2-beta.1 (2023-12-29) ### Chore - Release rustitude version 0.1.2-beta.1