This updates the code to correspond to the recent paper on neural importance sampling, https://arxiv.org/abs/2210.05686.
Main changes
* Rename `SamplesDataset` class to `Result`. This class contains a set of samples (generated using a `Sampler` class to sample from a trained network), which it can perform various operations on. In particular, all functionality relating to importance sampling is contained here.
* Add sampling of synthetic phase to as a method in `Result`. This generates a phase sample given all the other parameters, using the GW likelihood. It takes into account higher multipole modes in the model by caching the waveform modes, and reconstructing the polarizations at different phases.
* Make various improvements to importance sampling. When using GNPE, importance sampling now takes place in the joint space $(\theta, \hat\theta)$, where $\hat\theta$ denotes the GNPE proxy parameters.
* Add documentation.
Main components still missing
* Improved inference interface including Asimov integration
* Ability to change prior, data conditioning, waveform model, etc., during importance sampling
* Detector calibration marginalization
* Code for generating synthetic noise PSD datasets
* Tutorials
**Full Changelog**: https://github.com/dingo-gw/dingo-devel/compare/v0.2.0...v0.3.0