This project began as a learning experience: to code the C++ version (see Github: End2End_SLI) of the SLI in Rust. However, this has since become the main code for generating momentum probabilities and doing the statistical analysis section of the paper. Main differences from C++ code:
- Implemented multithreading using Rayon crate for iterators, so faster runs
- Was able to do more precise runs, and hence do faster comparisons between JSD plots.
- The C++ code library includes the
Environment
class that I used for training with the Libtorch DQNN implementation in the Holland Group. Here, we have a simpler structLattice
that differs slightly from theWavepacket
class in C++. - The Rust style docs are available as .html under docs/ folder.
- The Obsidian folder contains notes for project in Markdown.
- Adding augmented state evolution to code (done)
- Moving Bayesian updating to Rust from Python as well (mostly done)
- Code for
Jittery Lattice
(done) - Separate module for importing shaking sequences as static variables (done. However, a lot of old files archived in Data rely on entering hard coded sequences)
- Statistics module in Rust for calculating divergences etc.
The code is pretty simple.
The Rust code takes in a vector of shaking function amplitudes for the lattice, and generates final momentum probabilities for a range of acceleration and lattice depth values. To build the rust code, just use cargo build --release
within this directory, and to run cargo run --release
.
The code will generate a test.txt
file that contains the following info:
[acceleration index, lattice depth index, acceleration value, lattice depth value, P(p)]
The no. of values in N_STATES
constant.
There are three example notebooks for this:
- 1param Bayesian
- JSD plots for multiparameter
- Comparing Bayesian between two sequences
While the notebooks may illustrate multiple different ways of plotting, recommend using them only as illustrative examples. Use the Sequence2param.py
and Units.py
files when doing your own plots for consistency.