Skip to content

Releases: denehoffman/rustitude

rustitude-core v1.0.1

16 May 00:20
Compare
Choose a tag to compare

Documentation

  • update readme link
  • Update README.md (missed a spot)
  • update readmes

Refactor

  • change Amplitude such that new makes a new Amplitude, add conversion traits to AmpOp and PyAmpOp, and fix amplitude! macro
  • major move required to have rustitude function properly as a Rust crate. I set this up very wrong the first time

Style

  • get rid of extra git-files and media

Commit Statistics

  • 6 commits contributed to the release.
  • 1 day passed between releases.
  • 6 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Get rid of extra git-files and media (0e94ec4)
    • Update readme link (8824d4c)
    • Change Amplitude such that new makes a new Amplitude, add conversion traits to AmpOp and PyAmpOp, and fix amplitude! macro (b08b3b8)
    • Major move required to have rustitude function properly as a Rust crate. I set this up very wrong the first time (9089c84)
    • Update README.md (missed a spot) (27799fd)
    • Update readmes (53c553d)

v0.4.0: The "Cache Me If You Can" Release

15 May 00:10
Compare
Choose a tag to compare

The refactoring details of this update got lost to automatic changelog generation... See the new examples for the updated usage. I realized that while I was constraining amplitudes by free parameters, the amplitudes would still be calculated each time they show up in a sum. This is inefficient, since we can just calculate all possible amplitudes once, cache the results, and then walk the execution tree using the cache. That's what this update does. As such, it refactors the manager and amplitude modules, moving a lot of the functionality of Manager to the new Model struct. There is a lot to do still, but now model construction from amplitudes can have an arbitrary number nesting sums and products, as well as unary operations like real, imag, and norm_sqr. These alone give all the functionality of the previous system, but it allows for some other nice things, like not having to specify part in the Zlm amplitude (just take the real or imaginary part using the provided method!).

All of this drastically cuts down on boilerplate code, and it's also much, much faster. I have been lazy making benchmarks, but in my testing this change gave me an ~18.5x speedup (3.7s to 200ms for some particularly complicated amplitude I made).

There is further potential to speed things up even more. We could, for instance, add an optional method to the Node trait which gives the gradient rather than the plain function evaluation. As long it's done properly for the individual amplitudes, it seems like it shouldn't be difficult to propagate it to the root AmpOp via the chain rule. This will probably be a focus for the next version. Most of the next version will be centered around testing and plotting results, as this really needs to be done. Currently, some of the activate/deactivate mechanics seem to have weird side-effects, and they might not work as intended.

Bug Fixes

  • make add_submodule public

Other

  • reorganize crate structure

Commit Statistics

  • 2 commits contributed to the release over the course of 1 calendar day.
  • 8 days passed between releases.
  • 2 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Reorganize crate structure (f39aab0)
    • Make add_submodule public (b71f07c)

rustitude v0.4.2

15 May 23:43
Compare
Choose a tag to compare

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

  • 4 commits contributed to the release.
  • 2 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Release rustitude v0.4.2 (f0d5b95)
    • Readmes and licenses suck (174a6f5)
    • Release rustitude-gluex v0.2.1, rustitude v0.4.2 (3a45077)
    • Major move required to have rustitude function properly as a Rust crate. I set this up very wrong the first time (9089c84)

rustitude v0.4.1

15 May 22:08
Compare
Choose a tag to compare

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

  • 6 commits contributed to the release over the course of 1 calendar day.
  • 6 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Add package info into workspace (740a018)
    • Move rustitude into the crates directory and add to workspace (0973112)
    • Merge rustitude-core to crates subdirectory (9617a27)
    • More Cargo.lock and readme updates (64ec509)
    • Update Cargo.tomls (78b96b9)
    • Move rustitude to crates subdirectory (8f2f28c)

rustitude-gluex v0.2.1

15 May 23:31
Compare
Choose a tag to compare

Refactor

  • major move required to have rustitude function properly as a Rust crate. I set this up very wrong the first time

Commit Statistics

  • 1 commit contributed to the release.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Major move required to have rustitude function properly as a Rust crate. I set this up very wrong the first time (9089c84)

rustitude-gluex v0.2.0

15 May 00:10
Compare
Choose a tag to compare

Documentation

  • update links for rustitude-gluex readme
  • update links in readmes

Other

  • merge rustitude-core to crates subdirectory

Bug Fixes

  • need to set some dependency versions...
  • need to set some dependency versions...properly

Commit Statistics

  • 7 commits contributed to the release.
  • 5 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Need to set some dependency versions...properly (ee48e40)
    • Release rustitude-gluex v0.2.0, rustitude v0.4.0 (1369408)
    • Need to set some dependency versions... (2495107)
    • Release rustitude-core v1.0.0, rustitude-gluex v0.2.0, rustitude v0.4.0, safety bump 2 crates (23a8807)
    • Update links for rustitude-gluex readme (93dc0d6)
    • Update links in readmes (95f85ed)
    • Merge rustitude-core to crates subdirectory (9617a27)

rustitude-core v1.0.0

15 May 00:01
Compare
Choose a tag to compare

Documentation

  • update links in readmes

New Features

  • update ExtendedLogLikelihood call signature to make num_threads optional and default to 1

Other

  • more Cargo.lock and readme updates
  • Add rustitude-core to crates subdirectory

Commit Statistics

  • 4 commits contributed to the release.
  • 4 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Update ExtendedLogLikelihood call signature to make num_threads optional and default to 1 (ae5bd43)
    • Update links in readmes (95f85ed)
    • More Cargo.lock and readme updates (64ec509)
    • Add rustitude-core to crates subdirectory (fa66ff1)

v0.3.4

06 May 23:06
Compare
Choose a tag to compare

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

Commit Statistics

  • 13 commits contributed to the release over the course of 3 calendar days.
  • 3 days passed between releases.
  • 12 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details

v0.3.3

03 May 01:43
Compare
Choose a tag to compare

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

Commit Statistics

  • 4 commits contributed to the release.
  • 4 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Remove unused library in rustitude-gluex which prevented cross-compilation (158ddc2)
    • Update maturin.yml (f837054)
    • Add maturin github actions (db8b1a3)
    • Update pyproject.toml info (e0c32f7)

v0.3.2

02 May 22:02
Compare
Choose a tag to compare

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

Commit Statistics

  • 9 commits contributed to the release over the course of 1 calendar day.
  • 8 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details